Switch to niri - Episode 3: The (second?) purge

This commit is contained in:
Schrottkatze 2025-03-18 18:23:45 +01:00
parent a6e6f38484
commit cc53b33f8e
Signed by: schrottkatze
SSH key fingerprint: SHA256:FPOYVeBy3QP20FEM42uWF1Wa/Qhlk+L3S2+Wuau/Auo
24 changed files with 551 additions and 670 deletions

View file

@ -27,9 +27,7 @@
};
syncthing.enable = true;
kdeconnect.enable = true;
cloud.enable = true;
social.enable = true;
mail.enable = true;
gaming.enable = true;
};
};
@ -41,10 +39,6 @@
systemd.services."ModemManager".wants = ["NetworkManager.service"];
systemd.services."ModemManager".wantedBy = ["multi-user.target"];
environment.variables = {
VDPAU_DRIVER = lib.mkIf config.hardware.graphics.enable (lib.mkDefault "va_gl");
};
programs.wireshark.enable = true;
boot.resumeDevice = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
@ -78,18 +72,6 @@
networking.networkmanager.enable = true;
networking.hostName = "denkbrett";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave

View file

@ -1,4 +1,12 @@
{pkgs, ...}: {
{
pkgs,
lib,
config,
...
}: {
environment.variables = {
VDPAU_DRIVER = lib.mkIf config.hardware.graphics.enable (lib.mkDefault "va_gl");
};
hardware.graphics = {
extraPackages = with pkgs; [
intel-ocl

View file

@ -16,12 +16,14 @@
jade = {
hwKey.pamAuth.enable = true;
desktop = {
creative = {
obs = true;
videoEditing = true;
};
syncthing.enable = true;
kdeconnect.enable = true;
cloud.enable = true;
social.enable = true;
gaming.enable = true;
mail.enable = true;
};
};
boot = {

View file

@ -17,7 +17,7 @@ build-mac:
update-typst-configs:
#!/usr/bin/env nu
let file = './modules/desktop-environment/home/typst.nix';
let file = './modules/desktop-environment/media/typst.nix';
let $rev = http get https://forge.katzen.cafe/schrottkatze/typst-configs/commits/branch/main | query web -mq '.commit-list tr:first-of-type a.ui.sha.label' -a href | path basename | first;
./build-utils/templ-edit.nu edit $file REV $rev;
let $hash = nix-prefetch-url https://forge.katzen.cafe/schrottkatze/typst-configs/archive/main.tar.gz --unpack;

View file

@ -4,11 +4,13 @@
./eduroam.nix
./xdg-portals.nix
./home
./media
./dm.nix
./tlp.nix
./locale.nix
];
services.flatpak.enable = true;
services.upower = {
enable = true;
};
security.polkit.enable = true;
services.illum.enable = true;
services.upower.enable = true;
}

View file

@ -0,0 +1,355 @@
{pkgs, ...}: {
home.file = {
".tridactylrc" = {
text = ''
set editorcmd kitty hx %f +%l
set newtab about:blank
'';
};
};
programs.firefox = {
enable = true;
package = pkgs.firefox.override {
nativeMessagingHosts = [
pkgs.tridactyl-native
];
};
policies = {
DefaultDownloadDirectory = "\${home}/Downloads";
Extensions.Install = builtins.map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [
"ublock-origin"
"tridactyl-vim"
"privacy-badger17"
"gruvbox-dark-theme"
"torproject-snowflake"
"bitwarden-password-manager"
"terms-of-service-didnt-read"
"shinigami-eyes"
"darkreader"
"sponsorblock"
"youtube-mrbeastify"
"return-youtube-dislikes"
"multi-account-containers"
"tabby-cat-friend"
"indie-wiki-buddy"
];
Extensions.Uninstall = [
"google@search.mozilla.org"
"bing@search.mozilla.org"
"amazondotcom@search.mozilla.org"
"ebay@search.mozilla.org"
"twitter@search.mozilla.org"
];
"DisableFirefoxStudies" = true;
"DisableTelemetry" = true;
"DisableFeedbackCommands" = true;
"DisablePocket" = true;
};
profiles.jade = {
search = {
force = true;
default = "DuckDuckGo";
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["pkgs"];
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["opts"];
};
"Home manager Options" = {
urls = [
{
template = "https://home-manager-options.extranix.com/";
params = [
{
name = "query";
value = "{searchTerms}";
}
{
name = "release";
value = "master";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["hm"];
};
"NixOS Wiki" = {
urls = [
{
template = "https://nixos.wiki/index.php";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["nxwk"];
};
"Noogle" = {
urls = [
{
template = "https://noogle.dev/q";
params = [
{
name = "term";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["ngl"];
};
"lib.rs" = {
urls = [
{
template = "https://lib.rs/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
icon = "https://lib.rs/favicon.png";
definedAliases = ["libs"];
};
"rust docs" = {
urls = [
{
template = "https://docs.rs/releases/search";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "https://docs.rs/-/static/favicon.ico";
definedAliases = ["docs"];
};
"rust docs direct open" = {
urls = [
{
template = "https://docs.rs/{searchTerms}";
}
];
definedAliases = ["doc" "docd"];
};
"rust std docs" = {
urls = [
{
template = "https://docs.rust-lang.org/std/index.html";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
icon = "https://doc.rust-lang.org/favicon.ico";
definedAliases = ["std"];
};
"MDN" = {
urls = [
{
template = "https://developer.mozilla.org/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
};
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"Amazon.de".metaData.hidden = true;
};
};
settings = {
"devtools.editor.keymap" = "vim";
"devtools.toolbox.host" = "right";
"devtools.theme" = "dark";
"webgl.disabled" = false;
"browser.urlbar.decodeURLsOnCopy" = true;
"browser.urlbar.unitConversion.enabled" = true;
"browser.urlbar.suggest.calculator" = true;
"browser.compactmode.show" = true;
"browser.uidensity" = 1;
"screenshots.browser.component.enabled" = true;
"browser.aboutConfig.showWarning" = false;
"browser.aboutwelcome.showModal" = false;
"browser.aboutwelcome.enabled" = false;
"browser.preferences.moreFromMozilla" = false;
"browser.menu.showViewImageInfo" = true;
"browser.shopping.experience2023.active" = false;
"browser.shopping.experience2023.survey.enabled" = false;
"identity.fxaccounts.enabled" = true;
"browser.tabs.firefox-view" = true;
"browser.tabs.firefox-view-next" = true;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
"privacy.trackingprotection.emailtracking.enabled" = true;
"privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true;
"browser.ml.chat.enabled" = false;
"browser.ml.chat.hideLocalhost" = false;
"browser.ml.chat.prompt.prefix" = "";
"browser.ml.chat.prompts.0" = "";
"browser.ml.chat.prompts.1" = "";
"browser.ml.chat.prompts.2" = "";
"browser.ml.chat.prompts.3" = "";
"browser.ml.chat.provider" = "";
"browser.ml.chat.shortcuts" = false;
"browser.ml.chat.shortcuts.custom" = false;
"browser.ml.chat.shortcuts.longPress" = "";
"browser.ml.chat.sidebar" = false;
"geo.provider.network.logging.enabled" = true;
"extensions.getAddons.showPane" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"browser.discovery.enabled" = false;
"browser.shopping.experience2023.enabled" = false;
"datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "data:,";
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.updatePing.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.coverage.opt-out" = true;
"toolkit.coverage.opt-out" = true;
"toolkit.coverage.endpoint.base" = "";
"browser.ping-centre.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.telemetry" = false;
"app.shield.optoutstudies.enabled" = false;
"app.normandy.enabled" = false;
"app.normandy.api_url" = "";
"dom.private-attribution.submission.enabled" = false;
"browser.newtabpage.activity-stream.feeds.showWeather" = false;
"browser.newtabpage.activity-stream.feeds.weatherfeed" = false;
"browser.safebrowsing.malware.enabled" = false;
"browser.safebrowsing.phishing.enabled" = false;
"browser.safebrowsing.downloads.enabled" = false;
"browser.safebrowsing.downloads.remote.enabled" = false;
"browser.safebrowsing.downloads.remote.url" = "";
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
"browser.safebrowsing.allowOverride" = false;
"network.prefetch-next" = false;
"network.dns.disablePrefetch" = true;
"network.dns.disablePrefetchFromHTTPS" = true;
"network.predictor.enabled" = false;
"network.predictor.enable-prefetch" = false;
"network.http.speculative-parallel-limit" = 0;
"browser.places.speculativeConnect.enabled" = false;
"browser.send_pings" = false;
"browser.urlbar.pocket.featureGate" = false;
"browser.urlbar.weather.featureGate" = false;
"browser.urlbar.speculativeConnect.enabled" = false;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
"browser.search.suggest.enabled" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.trending.featureGate" = false;
"security.ssl.require_safe_negotiation" = true;
"security.remote_settings.crlite_filters.enabled" = true;
"security.pki.crlite_mode" = 2;
"dom.security.https_only_mode" = true;
"dom.security.https_only_mode_pbm" = true;
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
"browser.xul.error_pages.expert_bad_cert" = true;
"network.http.referer.XOriginTrimmingPolicy" = 2;
"privacy.userContext.enabled" = true;
"privacy.userContext.ui.enabled" = true;
"privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
"dom.disable_window_move_resize" = true;
"browser.uitour.enabled" = false;
"browser.uitour.url" = "";
"permissions.manager.defaultsUrl" = "";
"webchannel.allowObject.urlWhitelist" = "";
"network.IDN_show_punycode" = true;
"pdfjs.disabled" = false;
"pdfjs.enableScripting" = false;
"browser.tabs.searchclipboardfor.middleclick" = false;
"browser.download.useDownloadDir" = false;
"browser.download.alwaysOpenPanel" = false;
"browser.download.manager.addToRecentDocs" = false;
"browser.download.always_ask_before_handling_new_types" = true;
"privacy.resistFingerprinting" = true;
"privacy.resistFingerprinting.pbmode" = true;
"privacy.window.maxInnerWidth" = 1600;
"privacy.window.maxInnerHeight" = 900;
"privacy.resistFingerprinting.block_mozAddonManager" = true;
"privacy.resistFingerprinting.letterboxing" = false;
"widget.non-native-theme.enabled" = true;
"browser.link.open_newwindow" = 3;
"browser.link.open_newwindow.restriction" = 0;
"signon.rememberSignons" = false;
"dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
"browser.pagethumbnails.capturing_disabled" = true;
"geo.enabled" = false;
"full-screen-api.enabled" = false;
"permissions.default.geo" = 0;
"permissions.default.camera" = 0;
"permissions.default.microphone" = 0;
"permissions.default.desktop-notification" = 0;
"permissions.default.xr" = 0;
};
};
};
}

View file

@ -6,7 +6,7 @@
./terminal.nix
./layaway.nix
./swayidle.nix
./typst.nix
./browser.nix
./eww
./niri
];
@ -15,20 +15,12 @@
programs.wofi.enable = true;
programs.swaylock.enable = true;
services.network-manager-applet.enable = true;
xsession.enable = true;
services.gpg-agent = {
enable = true;
enableNushellIntegration = true;
enableSshSupport = true;
};
fonts.fontconfig = {
enable = true;
defaultFonts = {
emoji = [];
monospace = [];
sansSerif = ["Atkinson Hyperlegible"];
serif = [];
};
};
};
}

View file

@ -1,10 +1,11 @@
{...}: {
{pkgs, ...}: {
programs.niri.settings.binds = {
# spawn terminal
"Mod+Return".action.spawn = "kitty";
"Mod+Return".repeat = false;
"Mod+D".action.spawn = ["wofi" "-S" "drun" "--allow-images"];
"Mod+D".repeat = false;
"Mod+I".action.spawn = ["${pkgs.rofimoji}/bin/rofimoji" "--selector" "wofi" "-f" "alchemical_symbols" "anatolian_hieroglyphs" "emojis" "braille_patterns" "box_drawing" "chess_symbols" "emoticons" "geometric_shapes" "gothic" "greek_extended" "math" "mathematical_alphanumeric_symbols" "mathematical_operators" "miscellaneous_symbols" "miscellaneous_mathematical_symbols-a" "miscellaneous_mathematical_symbols-b" "miscellaneous_symbols_and_arrows" "miscellaneous_symbols_and_pictographs" "miscellaneous_technical" "modi" "modifier_tone_letters" "musical_symbols" "nerd_font" "number_forms" "shorthand_format_controls" "specials" "variation_selectors" "vertical_forms" "-a" "copy"];
"Mod+Shift+E".action.quit = [];
"Mod+Shift+Q".action.close-window = [];

View file

@ -1,4 +1,7 @@
{pkgs, ...}: {
home.packages = [
pkgs.libnotify
];
services.dunst = {
enable = true;
settings = {

View file

@ -0,0 +1,13 @@
{...}: {
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
}

View file

@ -0,0 +1,55 @@
{
pkgs,
pkgs-stable,
config,
lib,
...
}: let
cfg = config.jade.desktop.media;
in
with lib; {
imports = [
./obs.nix
./fonts.nix
];
options.jade.desktop.media.videoEditing = mkEnableOption "Enable Video editing software";
config = {
home-manager.users.jade = {pkgs, ...}: {
imports = [./typst.nix];
home.packages = with pkgs; [
# creative software basics
pastel
krita
gimp
drawing
inkscape-with-extensions
pixelorama
rawtherapee
scribus
audacity
openscad-unstable
openscad-lsp
imagemagick
ffmpeg_7-full
onlyoffice-bin_latest
# viewers
pkgs-stable.font-manager
yt-dlp
syncplay
vlc
mpv
kdePackages.okular
nomacs
jellyfin-media-player
(mkIf cfg.videoEditing [kdePackages.kdenlive glaxnimate])
];
};
};
}

View file

@ -0,0 +1,48 @@
{pkgs, ...}: {
nixpkgs.config.packageOverrides = pkgs: {
google-fonts = pkgs.google-fonts.overrideAttrs (oldAttrs: {
src = pkgs.fetchFromGitHub {
owner = "google";
repo = "fonts";
rev = "8a0041ea7b92e339a7ce13e4e1dadcc85cb8f5df";
sha256 = "sha256-9TzeihEKIEDRtDuv+NmLWjTpoGnBR+RP/jIBfB1O06U=";
};
installPhase = oldAttrs.installPhase + "mv $out/share/fonts/truetype $out/share/fonts/ttf";
});
};
fonts = {
packages = with pkgs; [
nerd-fonts.fira-code
nerd-fonts.departure-mono
google-fonts
montserrat
noto-fonts
atkinson-hyperlegible
arkpandora_ttf
liberation_ttf
caladea
carlito
garamond-libre
ocr-a
amiri
libertine
inter
b612
departure-mono
];
fontDir.enable = true;
};
home-manager.users.jade = {...}: {
fonts.fontconfig = {
enable = true;
defaultFonts = {
emoji = [];
monospace = [];
sansSerif = ["Atkinson Hyperlegible"];
serif = [];
};
};
};
}

View file

@ -0,0 +1,33 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.media.obs;
in
with lib; {
options.jade.desktop.media.obs = mkEnableOption "Enable OBS";
config = mkIf cfg.enable {
# OBS stuffs
environment.systemPackages = [
(pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];
})
];
boot = {
extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
'';
};
};
}

View file

@ -0,0 +1,20 @@
{pkgs, ...}: {
services.printing = {
enable = true;
drivers = with pkgs; [
gutenprint
gutenprintBin
hplip
brlaser
brgenml1lpr
brgenml1cupswrapper
ptouch-driver
epsonscan2
epson-escpr
epson-inkjet-printer-escpr2
epson_201207w
epson-alc1100
epson
];
};
}

View file

@ -1,23 +0,0 @@
{
config,
lib,
pkgs,
pkgs-stable,
...
}: let
cfg = config.jade.desktop.cloud;
in
with lib; {
options.jade.desktop.cloud = {
enable = mkEnableOption "Enable cloud things";
};
config = mkIf cfg.enable {
home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
fluent-reader
pkgs-stable.bitwarden
rofi-rbw
];
};
};
}

View file

@ -1,33 +0,0 @@
{
pkgs,
pkgs-stable,
...
}: {
home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
pastel
audacity
krita
gimp
inkscape-with-extensions
obs-studio
kdePackages.kdenlive
glaxnimate
pixelorama
scribus
openscad-unstable
openscad-lsp
pkgs-stable.font-manager
fontforge-gtk
onlyoffice-bin_latest
rawtherapee
];
};
}

View file

@ -7,18 +7,12 @@
with lib; {
imports = [
./gaming.nix
./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee
# TODO: more fine grained choices, not every setup needs fspy or rawtherapee
./syncthing.nix
./kdeconnect.nix
./themeing.nix
./cloud.nix
./networking.nix
./social.nix
./mail.nix
./fonts.nix
./firefox.nix
./x.nix
./obs.nix
];
programs.seahorse.enable = true;
@ -26,21 +20,6 @@ with lib; {
virtualisation.libvirtd.enable = true;
services = {
printing = {
enable = true;
drivers = [
pkgs.gutenprint
pkgs.gutenprintBin
pkgs.hplip
pkgs.brlaser
pkgs.brgenml1lpr
pkgs.brgenml1cupswrapper
pkgs.ptouch-driver
];
};
};
programs.xss-lock = {
enable = true;
lockerCommand = "${pkgs.i3lock}/bin/i3lock -c 1d2021";
@ -58,9 +37,6 @@ with lib; {
};
home-manager.users.jade = {pkgs, ...}: {
home.sessionVariables = {
"S10E_JRNL_FILE_LOC" = "/home/jade/Docs/jrnl.md";
};
programs.ssh = {
controlMaster = "yes";
};
@ -70,43 +46,15 @@ with lib; {
magic-wormhole-rs
yt-dlp
imagemagick
syncplay
# filemanager
xfce.thunar
xfce.tumbler
xfce.thunar-archive-plugin
file-roller
# media/file viewers
vlc
mpv
evince
nomacs
jellyfin-media-player
# from environment.systemPackages cleanup
virt-manager
ddccontrol-db
ffmpeg_7-full
# external
libnotify
rofimoji
xorg.xinput
arandr
flameshot
tesseract5
imagemagick
brightnessctl
drawing
];
xsession = {
enable = true;
};
};
}

View file

@ -1,380 +0,0 @@
{...}: {
home-manager.users.jade = {pkgs, ...}: {
home.file = {
".tridactylrc" = {
text = ''
set editorcmd kitty hx %f +%l
set newtab about:blank
'';
};
};
programs.firefox = {
enable = true;
package = pkgs.firefox.override {
nativeMessagingHosts = [
pkgs.tridactyl-native
];
};
policies = {
DefaultDownloadDirectory = "\${home}/Downloads";
Extensions.Install = builtins.map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [
"ublock-origin"
"tridactyl-vim"
"privacy-badger17"
"gruvbox-dark-theme"
"torproject-snowflake"
"bitwarden-password-manager"
"terms-of-service-didnt-read"
"shinigami-eyes"
"darkreader"
"sponsorblock"
"youtube-mrbeastify"
"return-youtube-dislikes"
"multi-account-containers"
"tabby-cat-friend"
"indie-wiki-buddy"
];
Extensions.Uninstall = [
"google@search.mozilla.org"
"bing@search.mozilla.org"
"amazondotcom@search.mozilla.org"
"ebay@search.mozilla.org"
"twitter@search.mozilla.org"
];
"DisableFirefoxStudies" = true;
"DisableTelemetry" = true;
"DisableFeedbackCommands" = true;
"DisablePocket" = true;
};
profiles.jade = {
search = {
force = true;
default = "DuckDuckGo";
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["pkgs"];
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["opts"];
};
"Home manager Options" = {
urls = [
{
template = "https://home-manager-options.extranix.com/";
params = [
{
name = "query";
value = "{searchTerms}";
}
{
name = "release";
value = "master";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["hm"];
};
"NixOS Wiki" = {
urls = [
{
template = "https://nixos.wiki/index.php";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["nxwk"];
};
"Noogle" = {
urls = [
{
template = "https://noogle.dev/q";
params = [
{
name = "term";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["ngl"];
};
"lib.rs" = {
urls = [
{
template = "https://lib.rs/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
icon = "https://lib.rs/favicon.png";
definedAliases = ["libs"];
};
"rust docs" = {
urls = [
{
template = "https://docs.rs/releases/search";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "https://docs.rs/-/static/favicon.ico";
definedAliases = ["docs"];
};
"rust docs direct open" = {
urls = [
{
template = "https://docs.rs/{searchTerms}";
}
];
definedAliases = ["doc" "docd"];
};
"rust std docs" = {
urls = [
{
template = "https://docs.rust-lang.org/std/index.html";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
icon = "https://doc.rust-lang.org/favicon.ico";
definedAliases = ["std"];
};
"MDN" = {
urls = [
{
template = "https://developer.mozilla.org/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
};
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"Amazon.de".metaData.hidden = true;
};
};
settings = {
"devtools.editor.keymap" = "vim";
"devtools.toolbox.host" = "right";
"devtools.theme" = "dark";
"webgl.disabled" = false;
"browser.urlbar.decodeURLsOnCopy" = true;
"browser.urlbar.unitConversion.enabled" = true;
"browser.urlbar.suggest.calculator" = true;
"browser.compactmode.show" = true;
"browser.uidensity" = 1;
"screenshots.browser.component.enabled" = true;
"browser.aboutConfig.showWarning" = false;
"browser.aboutwelcome.showModal" = false;
"browser.aboutwelcome.enabled" = false;
"browser.preferences.moreFromMozilla" = false;
"browser.menu.showViewImageInfo" = true;
"browser.shopping.experience2023.active" = false;
"browser.shopping.experience2023.survey.enabled" = false;
"identity.fxaccounts.enabled" = true;
"browser.tabs.firefox-view" = true;
"browser.tabs.firefox-view-next" = true;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
"privacy.trackingprotection.emailtracking.enabled" = true;
"privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true;
"browser.ml.chat.enabled" = false;
"browser.ml.chat.hideLocalhost" = false;
"browser.ml.chat.prompt.prefix" = "";
"browser.ml.chat.prompts.0" = "";
"browser.ml.chat.prompts.1" = "";
"browser.ml.chat.prompts.2" = "";
"browser.ml.chat.prompts.3" = "";
"browser.ml.chat.provider" = "";
"browser.ml.chat.shortcuts" = false;
"browser.ml.chat.shortcuts.custom" = false;
"browser.ml.chat.shortcuts.longPress" = "";
"browser.ml.chat.sidebar" = false;
"geo.provider.network.logging.enabled" = true;
"extensions.getAddons.showPane" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"browser.discovery.enabled" = false;
"browser.shopping.experience2023.enabled" = false;
"datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "data:,";
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.updatePing.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.coverage.opt-out" = true;
"toolkit.coverage.opt-out" = true;
"toolkit.coverage.endpoint.base" = "";
"browser.ping-centre.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.telemetry" = false;
"app.shield.optoutstudies.enabled" = false;
"app.normandy.enabled" = false;
"app.normandy.api_url" = "";
"dom.private-attribution.submission.enabled" = false;
"browser.newtabpage.activity-stream.feeds.showWeather" = false;
"browser.newtabpage.activity-stream.feeds.weatherfeed" = false;
"browser.safebrowsing.malware.enabled" = false;
"browser.safebrowsing.phishing.enabled" = false;
"browser.safebrowsing.downloads.enabled" = false;
"browser.safebrowsing.downloads.remote.enabled" = false;
"browser.safebrowsing.downloads.remote.url" = "";
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
"browser.safebrowsing.allowOverride" = false;
"network.prefetch-next" = false;
"network.dns.disablePrefetch" = true;
"network.dns.disablePrefetchFromHTTPS" = true;
"network.predictor.enabled" = false;
"network.predictor.enable-prefetch" = false;
"network.http.speculative-parallel-limit" = 0;
"browser.places.speculativeConnect.enabled" = false;
"browser.send_pings" = false;
"browser.urlbar.pocket.featureGate" = false;
"browser.urlbar.weather.featureGate" = false;
"browser.urlbar.speculativeConnect.enabled" = false;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
"browser.search.suggest.enabled" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.trending.featureGate" = false;
"security.ssl.require_safe_negotiation" = true;
"security.remote_settings.crlite_filters.enabled" = true;
"security.pki.crlite_mode" = 2;
"dom.security.https_only_mode" = true;
"dom.security.https_only_mode_pbm" = true;
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
"browser.xul.error_pages.expert_bad_cert" = true;
"network.http.referer.XOriginTrimmingPolicy" = 2;
"privacy.userContext.enabled" = true;
"privacy.userContext.ui.enabled" = true;
"privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
"dom.disable_window_move_resize" = true;
"browser.uitour.enabled" = false;
"browser.uitour.url" = "";
"permissions.manager.defaultsUrl" = "";
"webchannel.allowObject.urlWhitelist" = "";
"network.IDN_show_punycode" = true;
"pdfjs.disabled" = false;
"pdfjs.enableScripting" = false;
"browser.tabs.searchclipboardfor.middleclick" = false;
"browser.download.useDownloadDir" = false;
"browser.download.alwaysOpenPanel" = false;
"browser.download.manager.addToRecentDocs" = false;
"browser.download.always_ask_before_handling_new_types" = true;
"privacy.resistFingerprinting" = true;
"privacy.resistFingerprinting.pbmode" = true;
"privacy.window.maxInnerWidth" = 1600;
"privacy.window.maxInnerHeight" = 900;
"privacy.resistFingerprinting.block_mozAddonManager" = true;
"privacy.resistFingerprinting.letterboxing" = false;
"widget.non-native-theme.enabled" = true;
"browser.link.open_newwindow" = 3;
"browser.link.open_newwindow.restriction" = 0;
"signon.rememberSignons" = false;
"dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
"browser.pagethumbnails.capturing_disabled" = true;
"geo.enabled" = false;
"full-screen-api.enabled" = false;
"permissions.default.geo" = 0;
"permissions.default.camera" = 0;
"permissions.default.microphone" = 0;
"permissions.default.desktop-notification" = 0;
"permissions.default.xr" = 0;
"browser.newtabpage.pinned" = [
{
title = "Katzencafé";
url = "https://ck.katzen.cafe";
}
{
title = "Katzenschmiede";
url = "https://forge.katzen.cafe";
}
{
title = "CatPad";
url = "https://pad.katzen.cafe";
}
{
title = "Katzenwolke";
url = "https://wolke.katzen.cafe";
}
{
title = "Penpot";
url = "https://design.katzen.cafe";
}
];
};
};
};
};
}

View file

@ -1,33 +0,0 @@
{pkgs, ...}: {
nixpkgs.config.packageOverrides = pkgs: {
google-fonts = pkgs.google-fonts.overrideAttrs (oldAttrs: {
src = pkgs.fetchFromGitHub {
owner = "google";
repo = "fonts";
rev = "8a0041ea7b92e339a7ce13e4e1dadcc85cb8f5df";
sha256 = "sha256-9TzeihEKIEDRtDuv+NmLWjTpoGnBR+RP/jIBfB1O06U=";
};
installPhase = oldAttrs.installPhase + "mv $out/share/fonts/truetype $out/share/fonts/ttf";
});
};
fonts.packages = with pkgs; [
nerd-fonts.fira-code
nerd-fonts.departure-mono
google-fonts
montserrat
noto-fonts
atkinson-hyperlegible
arkpandora_ttf
liberation_ttf
caladea
carlito
garamond-libre
ocr-a
amiri
libertine
inter
b612
departure-mono
];
fonts.fontDir.enable = true;
}

View file

@ -1,77 +0,0 @@
{
config,
lib,
pkgs-stable,
...
}: let
cfg = config.jade.desktop.mail;
imap = {
host = "imap.migadu.com";
port = 993;
};
smtp = {
host = "smtp.migadu.com";
port = 465;
tls.enable = true;
};
in
with lib; {
options.jade.desktop.mail = {
enable = mkEnableOption "Enable thunderbird mail stuff";
};
config = mkIf cfg.enable {
home-manager.users.jade = {pkgs-stable, ...}: {
accounts.email.accounts = {
"Jade" = rec {
inherit imap smtp;
address = "jade@schrottkatze.de";
userName = address;
realName = "Jade";
thunderbird.enable = true;
primary = true;
};
"Logins" = rec {
inherit imap smtp;
address = "logins@schrottkatze.de";
userName = address;
realName = "Logins";
thunderbird.enable = true;
};
"Contact" = rec {
inherit imap smtp;
address = "contact@schrottkatze.de";
userName = address;
realName = "Jade";
thunderbird.enable = true;
};
"Schule" = rec {
inherit imap smtp;
address = "schule@schrottkatze.de";
userName = address;
realName = "Jade";
thunderbird.enable = true;
};
"Admin" = rec {
inherit imap smtp;
address = "admin@schrottkatze.de";
userName = address;
realName = "admin";
thunderbird.enable = true;
};
"CatchAll" = rec {
inherit imap smtp;
address = "catchall@schrottkatze.de";
userName = address;
realName = "Catch all";
thunderbird.enable = true;
};
};
programs.thunderbird = {
enable = true;
profiles.jade = {
isDefault = true;
};
};
};
};
}

View file

@ -62,7 +62,6 @@ in {
home.packages = with pkgs; [
networkmanagerapplet
mullvad-vpn
speedtest-cli
macchanger
];
};

View file

@ -1,23 +0,0 @@
{
pkgs,
config,
...
}: {
environment.systemPackages = [
(pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];
})
];
boot.extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
boot.extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
'';
security.polkit.enable = true;
}

View file

@ -1,11 +0,0 @@
{pkgs, ...}: {
services.xserver = {
enable = true;
desktopManager = {
xterm.enable = false;
};
};
security.polkit.enable = true;
}