diff --git a/nix/flake.lock b/nix/flake.lock index af2eee91..33a81dfa 100644 --- a/nix/flake.lock +++ b/nix/flake.lock @@ -517,6 +517,19 @@ "type": "github" } }, + "nixpkgs_4": { + "locked": { + "lastModified": 1711333969, + "narHash": "sha256-5PiWGn10DQjMZee5NXzeA6ccsv60iLu+Xtw+mfvkUAs=", + "path": "/nix/store/161i7cxz0w0raqmrj88z86cj66babp9z-source", + "rev": "57e6b3a9e4ebec5aa121188301f04a6b8c354c9b", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, "root": { "inputs": { "alejandra": "alejandra", @@ -529,7 +542,8 @@ "hyprlock": "hyprlock", "nix-homebrew": "nix-homebrew", "nixpkgs": "nixpkgs_3", - "snowfall-lib": "snowfall-lib" + "snowfall-lib": "snowfall-lib", + "wallpapers-nix": "wallpapers-nix" } }, "rust-analyzer-src": { @@ -661,6 +675,24 @@ "type": "github" } }, + "wallpapers-nix": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1712154137, + "narHash": "sha256-lVJq5t53BJJaAAPiHh++F38UjwVTem3Vy7ajVNaxsU0=", + "owner": "sbulav", + "repo": "wallpapers-nix", + "rev": "8a4a30599ac2f452bb2e2717cd5b815d1a56f036", + "type": "github" + }, + "original": { + "owner": "sbulav", + "repo": "wallpapers-nix", + "type": "github" + } + }, "wlroots": { "flake": false, "locked": { diff --git a/nix/flake.nix b/nix/flake.nix index 4c91fa1c..7b4ea588 100644 --- a/nix/flake.nix +++ b/nix/flake.nix @@ -48,6 +48,10 @@ url = "github:kamadorueda/alejandra/3.0.0"; inputs.nixpkgs.follows = "nixpkgs"; }; + + wallpapers-nix = { + url = "github:sbulav/wallpapers-nix"; + }; }; outputs = inputs: let diff --git a/nix/homes/x86_64-linux/sab@nz/default.nix b/nix/homes/x86_64-linux/sab@nz/default.nix index 61606200..2559b42d 100644 --- a/nix/homes/x86_64-linux/sab@nz/default.nix +++ b/nix/homes/x86_64-linux/sab@nz/default.nix @@ -1,12 +1,13 @@ { lib, - pkgs, config, - osConfig ? {}, - format ? "unknown", + inputs, + pkgs, ... }: -with lib.custom; { +with lib.custom; let + wallpapers = inputs.wallpapers-nix.packages.${pkgs.system}.catppuccin; +in { custom = { user = { enable = true; @@ -26,6 +27,7 @@ with lib.custom; { wlogout = enabled; hyprlock = disabled; wezterm = enabled; + wallpaper = "${wallpapers}/share/wallpapers/catppuccin/bench.png"; }; }; @@ -47,4 +49,5 @@ with lib.custom; { vault = enabled; }; }; + home.stateVersion = "23.11"; } diff --git a/nix/modules/home/desktop/addons/hyprlock/default.nix b/nix/modules/home/desktop/addons/hyprlock/default.nix index b76db36d..6115928b 100644 --- a/nix/modules/home/desktop/addons/hyprlock/default.nix +++ b/nix/modules/home/desktop/addons/hyprlock/default.nix @@ -1,9 +1,7 @@ { inputs, - options, config, lib, - pkgs, ... }: with lib; @@ -43,7 +41,7 @@ in { backgrounds = [ { - path = "/home/sab/Pictures/wallpaper.png"; + path = config.custom.desktop.addons.wallpaper; } ]; }; diff --git a/nix/modules/home/desktop/addons/hyprpaper/default.nix b/nix/modules/home/desktop/addons/hyprpaper/default.nix index cdedeb7c..4e11f072 100644 --- a/nix/modules/home/desktop/addons/hyprpaper/default.nix +++ b/nix/modules/home/desktop/addons/hyprpaper/default.nix @@ -8,7 +8,7 @@ with lib; with lib.custom; let cfg = config.custom.desktop.addons.hyprpaper; - wallpaper = /home/sab/Pictures/cityscape2.jpg; + wallpaper = config.custom.desktop.addons.wallpaper; in { options.custom.desktop.addons.hyprpaper = with types; { enable = mkBoolOpt false "Whether to enable the hyprpaper config"; diff --git a/nix/modules/home/desktop/addons/swaylock/default.nix b/nix/modules/home/desktop/addons/swaylock/default.nix index e4cd0090..3c1cbe1d 100644 --- a/nix/modules/home/desktop/addons/swaylock/default.nix +++ b/nix/modules/home/desktop/addons/swaylock/default.nix @@ -18,7 +18,7 @@ in { enable = true; package = pkgs.swaylock-effects; settings = { - image = "$HOME/Pictures/wallpaper.png"; + image = config.custom.desktop.addons.wallpaper; color = "000000ff"; font-size = "24"; indicator-idle-visible = true; diff --git a/nix/modules/home/desktop/addons/wallpaper/default.nix b/nix/modules/home/desktop/addons/wallpaper/default.nix new file mode 100644 index 00000000..5fc001c0 --- /dev/null +++ b/nix/modules/home/desktop/addons/wallpaper/default.nix @@ -0,0 +1,17 @@ +{ + inputs, + pkgs, + config, + lib, + ... +}: +with lib; +with lib.custom; let + # cfg = config.system.wallpaper; +in { + options.custom.desktop.addons.wallpaper = mkOption { + type = types.oneOf [types.package types.path types.str]; + default = inputs.wallpapers-nix.packages.${pkgs.system}.catppuccin; + description = "The wallpaper to use."; + }; +} diff --git a/nix/modules/nixos/desktop/addons/regreet/default.nix b/nix/modules/nixos/desktop/addons/regreet/default.nix index c315a217..b7c68221 100644 --- a/nix/modules/nixos/desktop/addons/regreet/default.nix +++ b/nix/modules/nixos/desktop/addons/regreet/default.nix @@ -8,6 +8,7 @@ with lib; with lib.custom; let cfg = config.custom.desktop.addons.regreet; + wallpaper = options.system.wallpaper.value; greetdSwayConfig = pkgs.writeText "greetd-sway-config" '' exec "dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP" input "type:touchpad" { @@ -45,7 +46,7 @@ in { settings = { background = { - path = /home/sab/Pictures/wallpaper.png; + path = wallpaper; fit = "Cover"; }; GTK = { diff --git a/nix/modules/nixos/system/wallpaper/default.nix b/nix/modules/nixos/system/wallpaper/default.nix new file mode 100644 index 00000000..34017aa7 --- /dev/null +++ b/nix/modules/nixos/system/wallpaper/default.nix @@ -0,0 +1,17 @@ +{ + inputs, + pkgs, + config, + lib, + ... +}: +with lib; +with lib.custom; let + # cfg = config.system.wallpaper; +in { + options.system.wallpaper = mkOption { + type = types.oneOf [types.package types.path types.str]; + default = inputs.wallpapers-nix.packages.${pkgs.system}.catppuccin; + description = "The wallpaper to use."; + }; +} diff --git a/nix/systems/x86_64-linux/nz/default.nix b/nix/systems/x86_64-linux/nz/default.nix index 24ab81c7..eb666e76 100644 --- a/nix/systems/x86_64-linux/nz/default.nix +++ b/nix/systems/x86_64-linux/nz/default.nix @@ -1,6 +1,12 @@ -{pkgs, ...}: { +{ + pkgs, + inputs, + ... +}: let + wallpapers = inputs.wallpapers-nix.packages.${pkgs.system}.catppuccin; +in { imports = [./hardware-configuration.nix]; - + system.wallpaper = "${wallpapers}/share/wallpapers/catppuccin/bench.png"; # Enable Bootloader system.boot.efi.enable = true; system.battery.enable = true; # Only for laptops, they will still work without it, just improves battery life