diff --git a/flake.lock b/flake.lock index d007901..531c637 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1749155310, - "narHash": "sha256-t0HfHg/1+TbSra5s6nNM0o4tnb3uqWedShSpZXsUMYY=", + "lastModified": 1750372185, + "narHash": "sha256-lVBKxd9dsZOH1fA6kSE5WNnt8e+09fN+NL/Q3BjTWHY=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "94981cf75a9f11da0b6dd6a1abbd7c50a36ab2d3", + "rev": "7cef49d261cbbe537e8cb662485e76d29ac4cbca", "type": "github" }, "original": { @@ -40,11 +40,11 @@ ] }, "locked": { - "lastModified": 1749005807, - "narHash": "sha256-PQMJtU43C3HqgQa4iO/AzFOr3j8bbrkKh5og/A8bVLQ=", + "lastModified": 1749410315, + "narHash": "sha256-5H8MuMMSq1WnQcvb1FiDNkKP+uyeZ8HX5GRTMfEOyLI=", "owner": "lelgenio", "repo": "dzgui-nix", - "rev": "aa9eb93058ed0290d4244b5f63a9f28a42551293", + "rev": "49adbb1edfb3c25b0cd8256d35673394386065e7", "type": "github" }, "original": { @@ -61,11 +61,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1749143092, - "narHash": "sha256-IrVT37SUU8/B3X53rwEzDrx3djGLIfa8tmsyqVJxpR4=", + "lastModified": 1750737804, + "narHash": "sha256-wClGd2PhxdjjphR6wIgoiDcR+Gfg4/+FyseSOjIIzVU=", "owner": "rycee", "repo": "nur-expressions", - "rev": "d62d10f250ca6a37cbbe05a35a0e1e7ae3b4b5c2", + "rev": "aaaf4fec792bad465ea4a35c0be5bc2a54f33095", "type": "gitlab" }, "original": { @@ -136,11 +136,11 @@ ] }, "locked": { - "lastModified": 1749154018, - "narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=", + "lastModified": 1750783375, + "narHash": "sha256-oKccVOF1igIwTncVTHZ9RHgjOQEMbg8NK5am2IjOCCI=", "owner": "nix-community", "repo": "home-manager", - "rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111", + "rev": "d457fa3c764e53e7bdd7354467c605766407620d", "type": "github" }, "original": { @@ -195,11 +195,11 @@ ] }, "locked": { - "lastModified": 1749145600, - "narHash": "sha256-v2kY5RDk9oyo1x9m8u83GdklC96xlJ7ka1rrvZoYL78=", + "lastModified": 1750371717, + "narHash": "sha256-cNP+bVq8m5x2Rl6MTjwfQLCdwbVmKvTH7yqVc1SpiJM=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "80b754e38e836777ad3a9d5d1ffc3491b0332471", + "rev": "15c6f8f3a567fec9a0f732cd310a7ff456deef88", "type": "github" }, "original": { @@ -226,11 +226,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1749193279, - "narHash": "sha256-3bldatPCkZRKb8idCnua/8MiDqYidjxLkmXMvkpM1HE=", + "lastModified": 1750771433, + "narHash": "sha256-AG2TRRcc84066tAOdJ1hdy1ZbpR53UbqGxmaL3VecRc=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "c35c2fea409a845b1023151a2b642f4aa077dacc", + "rev": "aea81320015130bf850242d5a8695fcdcbf4f0c1", "type": "github" }, "original": { @@ -256,11 +256,11 @@ ] }, "locked": { - "lastModified": 1748526041, - "narHash": "sha256-QyUACXhQJ2+K0YxwEuAfpyCXqbdCCHj1jNAWJy+vUxw=", + "lastModified": 1750778528, + "narHash": "sha256-X0QpVEhpkhf0RvU0n5+qsBH3JIXY2uZ8m56HhP7FzU8=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "2eee96fe52fa0923c0aae647eb7901b5b51df3db", + "rev": "aa23323de3325e3026fc26f9c23205954be4d337", "type": "github" }, "original": { @@ -349,11 +349,11 @@ ] }, "locked": { - "lastModified": 1749155776, - "narHash": "sha256-t1PM0wxQLQwv2F2AW23uA7pm5giwmcgYEWbNIRct9r4=", + "lastModified": 1750371812, + "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "396e8aa1c06274835b69da7f9a015fff9a9b7522", + "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", "type": "github" }, "original": { @@ -378,11 +378,11 @@ ] }, "locked": { - "lastModified": 1749145882, - "narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=", + "lastModified": 1750371198, + "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676", + "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", "type": "github" }, "original": { @@ -403,11 +403,11 @@ ] }, "locked": { - "lastModified": 1749135356, - "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=", + "lastModified": 1750371096, + "narHash": "sha256-JB1IeJ41y7kWc/dPGV6RMcCUM0Xj2NEK26A2Ap7EM9c=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb", + "rev": "38f3a211657ce82a1123bf19402199b67a410f08", "type": "github" }, "original": { @@ -428,11 +428,11 @@ ] }, "locked": { - "lastModified": 1749145760, - "narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=", + "lastModified": 1750371869, + "narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6", + "rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd", "type": "github" }, "original": { @@ -451,11 +451,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1749121763, - "narHash": "sha256-TVFiyMBs+3KEzZVwf/n1zedUWzPrMPzud/2Jiho8dcE=", + "lastModified": 1750763263, + "narHash": "sha256-3JW7xEfobw0qXZsOZ0BwGV5+JMzOE+fZ3+v0ypOwKt0=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "c89df80b72b4e1802fd91a35f4857868c953c1c0", + "rev": "dabf86334f0eab8ced9a5e7219d34a28b055bb2a", "type": "github" }, "original": { @@ -466,11 +466,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1749195551, - "narHash": "sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM=", + "lastModified": 1750431636, + "narHash": "sha256-vnzzBDbCGvInmfn2ijC4HsIY/3W1CWbwS/YQoFgdgPg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "4602f7e1d3f197b3cb540d5accf5669121629628", + "rev": "1552a9f4513f3f0ceedcf90320e48d3d47165712", "type": "github" }, "original": { @@ -482,11 +482,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1749086602, - "narHash": "sha256-DJcgJMekoxVesl9kKjfLPix2Nbr42i7cpEHJiTnBUwU=", + "lastModified": 1750622754, + "narHash": "sha256-kMhs+YzV4vPGfuTpD3mwzibWUE6jotw5Al2wczI0Pv8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4792576cb003c994bd7cc1edada3129def20b27d", + "rev": "c7ab75210cb8cb16ddd8f290755d9558edde7ee1", "type": "github" }, "original": { @@ -498,11 +498,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1748995628, - "narHash": "sha256-bFufQGSAEYQgjtc4wMrobS5HWN0hDP+ZX+zthYcml9U=", + "lastModified": 1750646418, + "narHash": "sha256-4UAN+W0Lp4xnUiHYXUXAPX18t+bn6c4Btry2RqM9JHY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8eb3b6a2366a7095939cd22f0dc0e9991313294b", + "rev": "1f426f65ac4e6bf808923eb6f8b8c2bfba3d18c5", "type": "github" }, "original": { @@ -514,11 +514,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1748929857, - "narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=", + "lastModified": 1750506804, + "narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4", + "rev": "4206c4cb56751df534751b058295ea61357bbbaa", "type": "github" }, "original": { @@ -561,11 +561,11 @@ ] }, "locked": { - "lastModified": 1747372754, - "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", + "lastModified": 1749636823, + "narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", + "rev": "623c56286de5a3193aa38891a6991b28f9bab056", "type": "github" }, "original": { @@ -597,11 +597,11 @@ ] }, "locked": { - "lastModified": 1749091064, - "narHash": "sha256-TGtYjzRX0sueFhwYsnNNFF5TTKnpnloznpIghLzxeXo=", + "lastModified": 1750732748, + "narHash": "sha256-HR2b3RHsPeJm+Fb+1ui8nXibgniVj7hBNvUbXEyz0DU=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "12419593ce78f2e8e1e89a373c6515885e218acb", + "rev": "4b4494b2ba7e8a8041b2e28320b2ee02c115c75f", "type": "github" }, "original": { @@ -617,11 +617,11 @@ ] }, "locked": { - "lastModified": 1747603214, - "narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=", + "lastModified": 1750119275, + "narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=", "owner": "Mic92", "repo": "sops-nix", - "rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd", + "rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2", "type": "github" }, "original": { @@ -673,11 +673,11 @@ ] }, "locked": { - "lastModified": 1749155346, - "narHash": "sha256-KIkJu3zF8MF3DuGwzAmo3Ww9wsWXolwV30SjJRTAxYE=", + "lastModified": 1750372504, + "narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "44bf29f1df45786098920c655af523535a9191ae", + "rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92", "type": "github" }, "original": { diff --git a/home/jonas@comfy-station.nix b/home/jonas@comfy-station.nix index 3765728..6c4c98d 100644 --- a/home/jonas@comfy-station.nix +++ b/home/jonas@comfy-station.nix @@ -40,6 +40,12 @@ hive.doom.enableCopilot = true; hive.doom.withNixPkgs = true; hive.doom.withShellPkgs = true; + hive.programs.creative = { + enable = true; + image-management = true; + image-raw-processing = true; + video-editing-light = true; + }; # Make session variables available in systemd units # SEE: https://github.com/nix-community/home-manager/pull/5543 diff --git a/home/jonas@monolith.nix b/home/jonas@monolith.nix index f182041..0785d9b 100644 --- a/home/jonas@monolith.nix +++ b/home/jonas@monolith.nix @@ -15,12 +15,12 @@ hive.doom.withShellPkgs = true; hive.firefox = { enable = true; - plasmaIntegration = true; + plasmaIntegration = false; passFF = true; }; - hive.kdeconnect.enable = true; - hive.kdeconnect.indicatorOnly = true; - hive.nextcloud.enable = true; + hive.kdeconnect.enable = false; + hive.kdeconnect.indicatorOnly = false; + hive.nextcloud.enable = false; # kwallet bug hive.nix-scripts.enable = true; hive.ranger.enable = true; hive.themes.layan.enable = true; diff --git a/home/jroeger.nix b/home/jroeger.nix index c6d7085..86cd977 100644 --- a/home/jroeger.nix +++ b/home/jroeger.nix @@ -16,6 +16,10 @@ hive.doom.withNixPkgs = true; hive.doom.withShellPkgs = true; hive.doom.withCXXPkgs = true; + hive.programs.creative = { + enable = true; + video-editing-light = true; + }; # This value determines the Home Manager release that your configuration is # compatible with. This helps avoid breakage when a new Home Manager release diff --git a/hosts/monolith/configuration.nix b/hosts/monolith/configuration.nix index 627c3a6..a9897d9 100644 --- a/hosts/monolith/configuration.nix +++ b/hosts/monolith/configuration.nix @@ -51,15 +51,25 @@ hive.virt-manager.forUsers = ["jonas"]; hive.bluetooth.enable = true; hive.sound.enable = true; + hive.sound.noisetorch = true; hive.yubikey.enable = true; hive.services.kdeconnect.enable = true; hive.wg.client.enable = true; hive.wg.client.privateKeyFile = config.sops.secrets.wg-priv.path; hive.wg.client.peer = "monolith"; hive.programs.games.enable = true; + hive.programs.games.dayz = true; hive.programs.games.lutris = true; hive.programs.games.steam = true; hive.programs.games.wine = true; + hive.programs.creative = { + enable = true; + image-management = true; + image-editing = true; + image-raw-processing = true; + video-editing-light = true; + video-editing-heavy = true; + }; # system packages environment.systemPackages = with pkgs; [ @@ -69,34 +79,23 @@ borgbackup borgmatic chromium - davinci-resolve - digikam discord docker docker-compose - drawio feh - ffmpeg firefox - gimp git - hive.crossover - hive.transcode-davinci-resolve - inputs.dzgui-nix.packages.${pkgs.stdenv.system}.default insomnia - kdePackages.kdenlive - krita libreoffice - losslesscut-bin mosquitto mpv mupdf + nextcloud-client nh nix-index nix-output-monitor obsidian openhantek6022 - proton-caller qalculate-qt qtpass ranger diff --git a/modules/default.nix b/modules/default.nix index 4c106d9..9ea1834 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -22,6 +22,7 @@ ./hardware/sound.nix ./hardware/yubikey.nix ./networking/wireguard + ./programs/creative.nix ./programs/games.nix ./services/borg-server.nix ./services/kdeconnect.nix diff --git a/modules/desktop/dm/sddm.nix b/modules/desktop/dm/sddm.nix index d109d80..56fdd69 100644 --- a/modules/desktop/dm/sddm.nix +++ b/modules/desktop/dm/sddm.nix @@ -11,9 +11,5 @@ in { enable = true; wayland.enable = true; }; - environment.systemPackages = with pkgs; [ - kdePackages.kwallet - kdePackages.kwalletmanager - ]; }; } diff --git a/modules/hardware/sound.nix b/modules/hardware/sound.nix index 61336d9..95bc5d4 100644 --- a/modules/hardware/sound.nix +++ b/modules/hardware/sound.nix @@ -1,15 +1,28 @@ { config, lib, + pkgs, ... }: let cfg = config.hive.sound; in { options = { - hive.sound.enable = lib.mkOption { - type = lib.types.bool; - default = false; - description = "Enable sound with pipewire."; + hive.sound = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Enable sound with pipewire."; + }; + noisetorch = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Enable Noisetorch for noise cancellation."; + }; + noisetorch-threshold = lib.mkOption { + type = lib.types.int; + default = -1; + description = "Set the noise cancellation threshold for Noisetorch."; + }; }; }; config = lib.mkIf cfg.enable { @@ -28,5 +41,35 @@ in { # no need to redefine it in your config for now) #media-session.enable = true; }; + programs.noisetorch.enable = cfg.noisetorch; + systemd.user.services.noisetorch-autoload = lib.mkIf cfg.noisetorch { + description = "Automatically load Noisetorch on user login"; + after = ["pipewire.service"]; + requires = ["pipewire.service"]; + serviceConfig = { + Type = "oneshot"; + ExecStart = "${pkgs.writeShellScript "load-noisetorch" '' + set -euo pipefail + NOISETORCH="${pkgs.noisetorch}/bin/noisetorch" + WPCTL="${pkgs.wireplumber}/bin/wpctl" + GREP="${pkgs.gnugrep}/bin/grep" + AWK="${pkgs.gawk}/bin/awk" + HEAD="${pkgs.coreutils}/bin/head" + + sleep 2 + $NOISETORCH -i -t ${toString cfg.noisetorch-threshold}; + sleep 2 + FILTER_ID=$($WPCTL status | $GREP NoiseTorch | $AWK 'match($0, /[0-9]+(\.[0-9]+)?/) { print substr($0, RSTART, RLENGTH) }' | head -n1) + if [ -n "$FILTER_ID" ]; then + $WPCTL set-default $FILTER_ID + else + echo "Noisetorch filter not found, skipping setting default source." + fi + ''}"; + ExecStop = "${pkgs.noisetorch}/bin/noisetorch -u"; + RemainAfterExit = true; + }; + wantedBy = ["default.target"]; + }; }; } diff --git a/modules/home/nextcloud/default.nix b/modules/home/nextcloud/default.nix index 54feac4..183470a 100644 --- a/modules/home/nextcloud/default.nix +++ b/modules/home/nextcloud/default.nix @@ -1,6 +1,7 @@ { config, lib, + pkgs, ... }: let cfg = config.hive.nextcloud; @@ -12,6 +13,7 @@ in { services.nextcloud-client = { enable = true; startInBackground = true; + package = pkgs.nextcloud-client; }; }; } diff --git a/modules/home/themes/layan.nix b/modules/home/themes/layan.nix index f7f2e5a..aee12f9 100644 --- a/modules/home/themes/layan.nix +++ b/modules/home/themes/layan.nix @@ -20,7 +20,7 @@ in { pkgs.tela-circle-icon-theme ]; - qt.enable = true; + qt.enable = false; qt.style.name = "kvantum"; qt.style.package = pkgs.kdePackages.qtstyleplugin-kvantum; qt.platformTheme.name = "gtk"; diff --git a/modules/home/zsh/default.nix b/modules/home/zsh/default.nix index 412f00f..ab6c3c8 100644 --- a/modules/home/zsh/default.nix +++ b/modules/home/zsh/default.nix @@ -61,8 +61,8 @@ in { git htop killall - neofetch nh + nix-output-monitor nix-search-cli nix-tree nixpkgs-fmt diff --git a/modules/programs/creative.nix b/modules/programs/creative.nix new file mode 100644 index 0000000..033f7ba --- /dev/null +++ b/modules/programs/creative.nix @@ -0,0 +1,60 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.hive.programs.creative; +in { + options.hive.programs.creative = { + enable = lib.mkEnableOption "Enable creative programs (video/image editing, etc.)"; + image-management = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Enable image management tools. + ''; + }; + image-editing = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable image editing tools. + ''; + }; + image-raw-processing = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable Darktable for raw processing. + ''; + }; + video-editing-light = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable light video editing tools. + ''; + }; + video-editing-heavy = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable heavy video editing tools. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; + lib.optionals cfg.image-editing [gimp krita drawio] + ++ lib.optional cfg.image-management digikam + ++ lib.optionals cfg.image-raw-processing [darktable hdrmerge] + ++ lib.optionals cfg.video-editing-light [ffmpeg losslesscut-bin] + ++ lib.optionals cfg.video-editing-heavy [ + davinci-resolve + hive.transcode-davinci-resolve + kdePackages.kdenlive + ]; + }; +} diff --git a/modules/programs/games.nix b/modules/programs/games.nix index 1dc5b08..1a07e9d 100644 --- a/modules/programs/games.nix +++ b/modules/programs/games.nix @@ -1,5 +1,6 @@ { config, + inputs, lib, pkgs, ... @@ -15,6 +16,13 @@ in { Enable Steam support. ''; }; + dayz = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable DayZ tools. + ''; + }; lutris = lib.mkOption { type = lib.types.bool; default = false; @@ -48,10 +56,15 @@ in { ]; }) ++ lib.optional cfg.r2modman pkgs.r2modman + ++ lib.optionals cfg.dayz [ + pkgs.hive.crossover + inputs.dzgui-nix.packages.${pkgs.stdenv.system}.default + ] ++ lib.optionals cfg.wine [ pkgs.wine pkgs.winetricks - ]; + ] + ++ lib.optional (cfg.steam && cfg.wine) pkgs.proton-caller; programs.steam = lib.mkIf cfg.steam { enable = true;