diff --git a/home/christoph/default.nix b/home/christoph/default.nix index 055fecd7..1f42cd17 100644 --- a/home/christoph/default.nix +++ b/home/christoph/default.nix @@ -84,7 +84,7 @@ hyprland = { enable = !headless; dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel - wallpaper = "Foggy-Lake"; + wallpaper = "City-Outlook"; keybindings = { main-mod = "SUPER"; diff --git a/home/modules/hyprland/default.nix b/home/modules/hyprland/default.nix index 1873c446..c655d314 100644 --- a/home/modules/hyprland/default.nix +++ b/home/modules/hyprland/default.nix @@ -227,7 +227,7 @@ in { background = [ { - path = "~/NixFlake/wallpapers/${hyprland.theme}.png"; + path = "${config.paths.nixflake}/wallpapers/${hyprland.wallpaper}.jpg"; blur_passes = 3; blur_size = 10; monitor = ""; @@ -293,11 +293,15 @@ in { splash = false; splash_offset = 2.0; - preload = "${config.paths.nixflake}/wallpapers/${hyprland.theme}.png"; + # Wallpapers have to be preloaded to be displayed + preload = let + mkPreload = name: "${config.paths.nixflake}/wallpapers/${name}.jpg"; + in + hyprland.wallpapers |> builtins.map mkPreload; wallpaper = let mkWallpaper = monitor: "${monitor}, " - + "${config.paths.nixflake}/wallpapers/${hyprland.theme}.png"; + + "${config.paths.nixflake}/wallpapers/${hyprland.wallpaper}.jpg"; in hyprland.monitors |> builtins.attrNames diff --git a/home/modules/hyprland/options.nix b/home/modules/hyprland/options.nix index 44fd6051..0a558e46 100644 --- a/home/modules/hyprland/options.nix +++ b/home/modules/hyprland/options.nix @@ -2,7 +2,7 @@ lib, mylib, ... -}: { +}: rec { enable = lib.mkEnableOption "Hyprland Window Manager + Compositor"; kb-layout = lib.mkOption { @@ -17,10 +17,32 @@ description = "Keyboard layout variant"; }; - theme = lib.mkOption { - type = lib.types.str; + # A bit dumb, but I want a single location where those are defined. + # Only supposed to be set from here. + wallpapers = lib.mkOption { + type = lib.types.listOf lib.types.str; + description = "Available wallpapers"; + + # Run eza -1 | sd ".png" "" | sd "^" "\"" | sd "\$" "\"" | sd "\"\"" "" | wl-copy + # in ~/NixFlake/wallpapers/ + default = [ + "Blade-Runner-Atari" + "Blade-Runner-Coca-Cola" + "Blade-Runner-Downwards" + "Blade-Runner-Upwards" + "City-Outlook" + "Cozy-Bedroom" + "Everest-Fishing" + "Foggy-Lake" + "Three-Bears" + ]; + }; + + wallpaper = lib.mkOption { + type = lib.types.enum wallpapers.default; example = "Three-Bears"; - description = "Wallpaper and colorscheme to use"; + description = "Wallpaper to use"; + default = "Foggy-Lake"; }; dunst.enable = lib.mkEnableOption "Enable dunst notification daemon"; diff --git a/home/modules/rofi/default.nix b/home/modules/rofi/default.nix index 5d35cee3..881fb526 100644 --- a/home/modules/rofi/default.nix +++ b/home/modules/rofi/default.nix @@ -66,13 +66,13 @@ in { "error-message" = { background-color = mkLiteral trans; - margin = mkLiteral "0px 0px 20px 0px"; + margin = mkLiteral "0px 0px 10px 0px"; }; "textbox" = { background-color = mkLiteral trans; padding = 6; - margin = mkLiteral "20px 20px 0px 20px"; + margin = mkLiteral "10px 10px 0px 10px"; border-radius = 3; }; @@ -86,12 +86,12 @@ in { padding = 6; text-color = mkLiteral color.hexS.accentText; border-radius = 3; - margin = mkLiteral "20px 0px 0px 20px"; + margin = mkLiteral "10px 0px 0px 10px"; }; "entry" = { padding = 6; - margin = mkLiteral "20px 20px 0px 10px"; + margin = mkLiteral "10px 10px 0px 5px"; text-color = mkLiteral color.hexS.text; background-color = mkLiteral trans; border = mkLiteral "2 solid 2 solid 2 solid 2 solid"; @@ -102,7 +102,7 @@ in { "listview" = { # border = mkLiteral "0px 0px 0px"; padding = 0; - margin = mkLiteral "10px 20px 20px 20px"; + margin = mkLiteral "5px 10px 10px 10px"; columns = 1; background-color = mkLiteral trans; border = mkLiteral "2 solid 2 solid 2 solid 2 solid"; @@ -130,6 +130,21 @@ in { }; modules.hyprland.keybindings = let + vpn-menu = + pkgs.writeScript + "rofi-menu-vpn" + (builtins.readFile ./menus/vpn.fish); + + keybinds-menu = + pkgs.writeScript + "rofi-menu-keybinds" + (builtins.readFile ./menus/keybinds.fish); + + lectures-menu = + pkgs.writeScript + "rofi-menu-lectures" + (builtins.readFile ./menus/lectures.fish); + power-menu = mylib.rofi.mkSimpleMenu "power" @@ -142,15 +157,32 @@ in { " Exit Hyprland" = "hyprctl dispatch exit"; }; - vpn-menu = pkgs.writeScript "rofi-menu-vpn" (builtins.readFile ./menus/vpn.fish); - keybinds-menu = pkgs.writeScript "rofi-menu-keybinds" (builtins.readFile ./menus/keybinds.fish); - lectures-menu = pkgs.writeScript "rofi-menu-lectures" (builtins.readFile ./menus/lectures.fish); + wallpaper-menu = let + setWallpaperOnMonitor = name: monitor: + "hyprctl hyprpaper wallpaper " + + "${monitor},${config.paths.nixflake}/wallpapers/${name}.png"; + + setWallpaperOnMonitors = monitors: name: { + ${name} = + monitors + |> builtins.map (setWallpaperOnMonitor name) + |> builtins.concatStringsSep " && "; + }; + + monitors = builtins.attrNames config.modules.hyprland.monitors; + in + mylib.rofi.mkSimpleMenu + "wall" + (config.modules.hyprland.wallpapers + |> builtins.map (setWallpaperOnMonitors monitors) + |> lib.mergeAttrsList); in { bindings = lib.mergeAttrsList [ { "$mainMod, escape" = ["exec, \"${power-menu}\""]; - "$mainMod, M" = ["exec, \"${keybinds-menu}\""]; - # "$mainMod, O" = ["exec, \"${lectures-menu}\""]; + "$mainMod, m" = ["exec, \"${keybinds-menu}\""]; + "$mainMod, w" = ["exec, \"${wallpaper-menu}\""]; + # "$mainMod, o" = ["exec, \"${lectures-menu}\""]; } (lib.optionalAttrs (!nixosConfig.modules.network.useNetworkManager) { "$mainMod, U" = ["exec, \"${vpn-menu}\""]; diff --git a/wallpapers/Birdwatching-Sunset.png b/wallpapers/Birdwatching-Sunset.png deleted file mode 100644 index aad0b78e..00000000 Binary files a/wallpapers/Birdwatching-Sunset.png and /dev/null differ diff --git a/wallpapers/Blade-Runner-Downwards.jpg b/wallpapers/Blade-Runner-Downwards.jpg new file mode 100644 index 00000000..54a91a3a --- /dev/null +++ b/wallpapers/Blade-Runner-Downwards.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3a5ab0dfe0e127862573ed244df83abc448304300fa4b9bc582af10fdb268fe +size 1689425 diff --git a/wallpapers/Blade-Runner-Upwards.jpg b/wallpapers/Blade-Runner-Upwards.jpg new file mode 100644 index 00000000..25ef0678 --- /dev/null +++ b/wallpapers/Blade-Runner-Upwards.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:195d42336d16a4a911d74e6fe41468b28d70b76e0d7b9ddc26237307cc2d7f51 +size 2964443 diff --git a/wallpapers/City-Outlook.jpg b/wallpapers/City-Outlook.jpg new file mode 100644 index 00000000..a8558081 --- /dev/null +++ b/wallpapers/City-Outlook.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9c7c82926aa77dc1f2dcdfe2308fe9f6eec041de7bc0a09633b565533c5c4d8 +size 5146689 diff --git a/wallpapers/Everest-Fishing.jpg b/wallpapers/Everest-Fishing.jpg new file mode 100644 index 00000000..44c938c0 --- /dev/null +++ b/wallpapers/Everest-Fishing.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:954a933744c9aeea37ac40c24f0b6803a79ae7e09d36310e571fa5079ca22b37 +size 714071 diff --git a/wallpapers/Everest-Fishing.png b/wallpapers/Everest-Fishing.png deleted file mode 100644 index d2ae2a28..00000000 Binary files a/wallpapers/Everest-Fishing.png and /dev/null differ diff --git a/wallpapers/Foggy-Lake.jpg b/wallpapers/Foggy-Lake.jpg new file mode 100644 index 00000000..acca3459 --- /dev/null +++ b/wallpapers/Foggy-Lake.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0171e7ba45700f5a5bc46391133fa1b0ccfeb862f84943b07138c4518ab8ab99 +size 646865 diff --git a/wallpapers/Foggy-Lake.png b/wallpapers/Foggy-Lake.png deleted file mode 100644 index b55c8d36..00000000 Binary files a/wallpapers/Foggy-Lake.png and /dev/null differ diff --git a/wallpapers/Three-Bears.jpg b/wallpapers/Three-Bears.jpg new file mode 100644 index 00000000..4a11cdfd --- /dev/null +++ b/wallpapers/Three-Bears.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:074107e553975e3852712606c6572bd92f764221cfb46ca1437f5c888283a740 +size 737140 diff --git a/wallpapers/Three-Bears.png b/wallpapers/Three-Bears.png deleted file mode 100644 index 8f97ba13..00000000 Binary files a/wallpapers/Three-Bears.png and /dev/null differ