diff --git a/hosts/denkbrett/configuration.nix b/hosts/denkbrett/configuration.nix index ae72336..c41ba1a 100644 --- a/hosts/denkbrett/configuration.nix +++ b/hosts/denkbrett/configuration.nix @@ -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. It‘s perfectly fine and recommended to leave diff --git a/hosts/denkbrett/modules/graphics.nix b/hosts/denkbrett/modules/graphics.nix index e359044..dae70fb 100644 --- a/hosts/denkbrett/modules/graphics.nix +++ b/hosts/denkbrett/modules/graphics.nix @@ -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 diff --git a/hosts/monosodium-glutamate-g/configuration.nix b/hosts/monosodium-glutamate-g/configuration.nix index ed65d9f..f803286 100644 --- a/hosts/monosodium-glutamate-g/configuration.nix +++ b/hosts/monosodium-glutamate-g/configuration.nix @@ -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 = { diff --git a/justfile b/justfile index 9d972c9..1f26cbc 100644 --- a/justfile +++ b/justfile @@ -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; diff --git a/modules/desktop-environment/default.nix b/modules/desktop-environment/default.nix index a7ef2f3..51d9ee6 100644 --- a/modules/desktop-environment/default.nix +++ b/modules/desktop-environment/default.nix @@ -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; } diff --git a/modules/desktop-environment/home/browser.nix b/modules/desktop-environment/home/browser.nix new file mode 100644 index 0000000..afc8090 --- /dev/null +++ b/modules/desktop-environment/home/browser.nix @@ -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; + }; + }; + }; +} diff --git a/modules/desktop-environment/home/default.nix b/modules/desktop-environment/home/default.nix index 483b614..06847ca 100644 --- a/modules/desktop-environment/home/default.nix +++ b/modules/desktop-environment/home/default.nix @@ -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 = []; - }; - }; }; } diff --git a/modules/desktop-environment/home/niri/binds.nix b/modules/desktop-environment/home/niri/binds.nix index 9f8b60d..f0d3f62 100644 --- a/modules/desktop-environment/home/niri/binds.nix +++ b/modules/desktop-environment/home/niri/binds.nix @@ -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 = []; diff --git a/modules/desktop-environment/home/notifications.nix b/modules/desktop-environment/home/notifications.nix index 25126ff..8c5f9aa 100644 --- a/modules/desktop-environment/home/notifications.nix +++ b/modules/desktop-environment/home/notifications.nix @@ -1,4 +1,7 @@ {pkgs, ...}: { + home.packages = [ + pkgs.libnotify + ]; services.dunst = { enable = true; settings = { diff --git a/modules/desktop-environment/locale.nix b/modules/desktop-environment/locale.nix new file mode 100644 index 0000000..7319975 --- /dev/null +++ b/modules/desktop-environment/locale.nix @@ -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"; + }; +} diff --git a/modules/desktop-environment/media/default.nix b/modules/desktop-environment/media/default.nix new file mode 100644 index 0000000..760c884 --- /dev/null +++ b/modules/desktop-environment/media/default.nix @@ -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]) + ]; + }; + }; + } diff --git a/modules/desktop-environment/media/fonts.nix b/modules/desktop-environment/media/fonts.nix new file mode 100644 index 0000000..27a9253 --- /dev/null +++ b/modules/desktop-environment/media/fonts.nix @@ -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 = []; + }; + }; + }; +} diff --git a/modules/desktop-environment/media/obs.nix b/modules/desktop-environment/media/obs.nix new file mode 100644 index 0000000..d61f764 --- /dev/null +++ b/modules/desktop-environment/media/obs.nix @@ -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 + ''; + }; + }; + } diff --git a/modules/desktop-environment/home/typst.nix b/modules/desktop-environment/media/typst.nix similarity index 100% rename from modules/desktop-environment/home/typst.nix rename to modules/desktop-environment/media/typst.nix diff --git a/modules/desktop-environment/printing.nix b/modules/desktop-environment/printing.nix new file mode 100644 index 0000000..006ea0b --- /dev/null +++ b/modules/desktop-environment/printing.nix @@ -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 + ]; + }; +} diff --git a/modules/desktop/cloud.nix b/modules/desktop/cloud.nix deleted file mode 100644 index 15e3c3a..0000000 --- a/modules/desktop/cloud.nix +++ /dev/null @@ -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 - ]; - }; - }; - } diff --git a/modules/desktop/creative.nix b/modules/desktop/creative.nix deleted file mode 100644 index 32a2c3d..0000000 --- a/modules/desktop/creative.nix +++ /dev/null @@ -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 - ]; - }; -} diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 5aede2b..a069ad7 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -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; - }; }; } diff --git a/modules/desktop/firefox.nix b/modules/desktop/firefox.nix deleted file mode 100644 index b52c74c..0000000 --- a/modules/desktop/firefox.nix +++ /dev/null @@ -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"; - } - ]; - }; - }; - }; - }; -} diff --git a/modules/desktop/fonts.nix b/modules/desktop/fonts.nix deleted file mode 100644 index b686e8d..0000000 --- a/modules/desktop/fonts.nix +++ /dev/null @@ -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; -} diff --git a/modules/desktop/mail.nix b/modules/desktop/mail.nix deleted file mode 100644 index 253f9ac..0000000 --- a/modules/desktop/mail.nix +++ /dev/null @@ -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; - }; - }; - }; - }; - } diff --git a/modules/desktop/networking.nix b/modules/desktop/networking.nix index f0c60c7..d32d49b 100644 --- a/modules/desktop/networking.nix +++ b/modules/desktop/networking.nix @@ -62,7 +62,6 @@ in { home.packages = with pkgs; [ networkmanagerapplet mullvad-vpn - speedtest-cli macchanger ]; }; diff --git a/modules/desktop/obs.nix b/modules/desktop/obs.nix deleted file mode 100644 index 921d67e..0000000 --- a/modules/desktop/obs.nix +++ /dev/null @@ -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; -} diff --git a/modules/desktop/x.nix b/modules/desktop/x.nix deleted file mode 100644 index 04dad28..0000000 --- a/modules/desktop/x.nix +++ /dev/null @@ -1,11 +0,0 @@ -{pkgs, ...}: { - services.xserver = { - enable = true; - - desktopManager = { - xterm.enable = false; - }; - }; - - security.polkit.enable = true; -}