diff --git a/flake.lock b/flake.lock index 55293e3..04e0bcb 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,38 @@ { "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1782073106, + "narHash": "sha256-dnS5SaZlPqR1E0dPXaPc+lFkBwLUbAgbwsVMk7uA6dY=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "6d6e2384f381def4ea4ea81543cba4bbdac72457", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, "crane": { "locked": { "lastModified": 1754269165, @@ -97,6 +130,22 @@ } }, "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { "flake": false, "locked": { "lastModified": 1747046372, @@ -112,7 +161,7 @@ "type": "github" } }, - "flake-compat_2": { + "flake-compat_3": { "locked": { "lastModified": 1767039857, "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", @@ -127,7 +176,7 @@ "type": "github" } }, - "flake-compat_3": { + "flake-compat_4": { "locked": { "lastModified": 1733328505, "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", @@ -206,7 +255,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1731533236, @@ -224,7 +273,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_4" + "systems": "systems_5" }, "locked": { "lastModified": 1731533236, @@ -321,9 +370,358 @@ "type": "github" } }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1776511930, + "narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "39435900785d0c560c6ae8777d29f28617d031ef", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1782566056, + "narHash": "sha256-haEZcHzYrePnjFOYSWTbxm/Nrla0aPslJfmvdCvqtVc=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "c6e7b9f673f4360bc813d3dc75028f75ee88d3f8", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-guiutils": "hyprland-guiutils", + "hyprland-protocols": "hyprland-protocols", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "hyprwire": "hyprwire", + "nixpkgs": "nixpkgs_4", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems_2", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1784359482, + "narHash": "sha256-2EHBXr5rQ/wytZA3drczqyckSWsZ1C+5Kc815Pf0nys=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "55ce25bd67ab6f2ae7d60883f6c626be7d2ee12f", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-guiutils": { + "inputs": { + "aquamarine": [ + "hyprland", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprtoolkit": "hyprtoolkit", + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1782563850, + "narHash": "sha256-rs/EzgrgPHbCtJjFZN4aR1HYldH/0NtGAempWVpWQTs=", + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "rev": "5ba080ee036c30cb2485f2647ff8a61f7aa08178", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "type": "github" + } + }, + "hyprland-plugins": { + "inputs": { + "hyprland": [ + "hyprland" + ], + "nixpkgs": [ + "hyprland-plugins", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland-plugins", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1784102347, + "narHash": "sha256-piRpwar7VZI3YviYo0a/UMFz9+rLesfv3nRLGKxjVGg=", + "owner": "hyprwm", + "repo": "hyprland-plugins", + "rev": "7644cecdb947060682891a0db2a0cdc5c0b9e704", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-plugins", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1772460177, + "narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777320127, + "narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "090117506ddc3d7f26e650ff344d378c2ec329cc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprtoolkit": { + "inputs": { + "aquamarine": [ + "hyprland", + "hyprland-guiutils", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprland-guiutils", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprland-guiutils", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-guiutils", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland-guiutils", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "hyprland-guiutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-guiutils", + "systems" + ] + }, + "locked": { + "lastModified": 1782554491, + "narHash": "sha256-+p3MlyN/nqRefcf2IckPlGRUn9+hielqpS9XClbLleM=", + "owner": "hyprwm", + "repo": "hyprtoolkit", + "rev": "bdba25ced39ea39ab004a8f31593ba0b0ff1ca35", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprtoolkit", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1783002634, + "narHash": "sha256-xGqHIUK0wIZoW7SiMalwvO6uGOO/VrlQwoRobpE7dDI=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "41fb809557abd29a57151b6e1aaeabd05f9437e1", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777159683, + "narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwire": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1778410714, + "narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=", + "owner": "hyprwm", + "repo": "hyprwire", + "rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwire", + "type": "github" + } + }, "hytale-launcher": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1781228795, @@ -342,7 +740,7 @@ "impermanence": { "inputs": { "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1769548169, @@ -361,7 +759,7 @@ "lanzaboote": { "inputs": { "crane": "crane", - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "flake-parts": "flake-parts", "nixpkgs": [ "nixpkgs" @@ -408,7 +806,7 @@ "naersk": { "inputs": { "fenix": "fenix", - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1763384566, @@ -484,9 +882,9 @@ }, "nix-alien": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "nix-index-database": "nix-index-database", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1778849865, @@ -609,6 +1007,22 @@ } }, "nixpkgs_10": { + "locked": { + "lastModified": 1752077645, + "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "be9e214982e20b8310878ac2baa063a961c1bdf6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { "locked": { "lastModified": 1775710090, "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", @@ -654,6 +1068,22 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1784120854, + "narHash": "sha256-KesHgItiZPgGX740axSiQLcIQ8D24MDqNpkKYWIek8k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "753cc8a3a87467296ddd1fa93f0cc3e81120ee46", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1781074563, "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", @@ -669,7 +1099,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1768564909, "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", @@ -685,7 +1115,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1778443072, "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=", @@ -701,7 +1131,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1781074563, "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", @@ -717,7 +1147,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { "lastModified": 1780336545, "narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=", @@ -733,27 +1163,11 @@ "type": "github" } }, - "nixpkgs_9": { - "locked": { - "lastModified": 1752077645, - "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "be9e214982e20b8310878ac2baa063a961c1bdf6", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixvim": { "inputs": { "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_8", - "systems": "systems_3" + "nixpkgs": "nixpkgs_9", + "systems": "systems_4" }, "locked": { "lastModified": 1781287460, @@ -771,7 +1185,7 @@ }, "nps": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "flake-utils": "flake-utils_2", "naersk": "naersk", "nixpkgs": [ @@ -813,6 +1227,28 @@ "type": "github" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1783008725, + "narHash": "sha256-jGiy6+sxjNWXSjp25uoJuNfyH9zBK1PEDY0lVoL4ibQ=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "bca82caa46d5ec0f5d422c61fb1e30bc51313cbe", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -846,6 +1282,8 @@ "elephant": "elephant", "hardware": "hardware", "home-manager": "home-manager", + "hyprland": "hyprland", + "hyprland-plugins": "hyprland-plugins", "hytale-launcher": "hytale-launcher", "impermanence": "impermanence", "lanzaboote": "lanzaboote", @@ -854,7 +1292,7 @@ "nix-alien": "nix-alien", "nix-darwin": "nix-darwin", "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", "nixpkgs-stable": "nixpkgs-stable_2", "nixvim": "nixvim", "nps": "nps", @@ -938,6 +1376,21 @@ } }, "systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -952,7 +1405,7 @@ "type": "github" } }, - "systems_3": { + "systems_4": { "locked": { "lastModified": 1774449309, "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", @@ -968,7 +1421,7 @@ "type": "github" } }, - "systems_4": { + "systems_5": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -983,7 +1436,7 @@ "type": "github" } }, - "systems_5": { + "systems_6": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -1023,8 +1476,8 @@ "elephant": [ "elephant" ], - "nixpkgs": "nixpkgs_10", - "systems": "systems_5" + "nixpkgs": "nixpkgs_11", + "systems": "systems_6" }, "locked": { "lastModified": 1781164128, @@ -1040,6 +1493,47 @@ "type": "github" } }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1782644412, + "narHash": "sha256-/iSa/bL1QQFLv+uJ9gI0N87J8gOeZXvca7EjoPGKE6w=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "c01c99fc278ec68c82e9865923088f043c7c1621", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, "xwayland-satellite-stable": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index bf5cf6b..57782b9 100644 --- a/flake.nix +++ b/flake.nix @@ -57,6 +57,12 @@ niri.url = "github:sodiboo/niri-flake"; niri.inputs.nixpkgs.follows = "nixpkgs"; + # Hyprland + hyprland.url = "github:hyprwm/Hyprland"; + # hyprland.inputs.nixpkgs.follows = "nixpkgs"; + hyprland-plugins.url = "github:hyprwm/hyprland-plugins"; + hyprland-plugins.inputs.hyprland.follows = "hyprland"; + # Walker elephant.url = "github:abenz1267/elephant"; walker.url = "github:abenz1267/walker"; diff --git a/home/christoph/default.nix b/home/christoph/default.nix index 8de3465..1b70d84 100644 --- a/home/christoph/default.nix +++ b/home/christoph/default.nix @@ -79,34 +79,13 @@ in hyprland = { enable = nixosConfig.programs.hyprland.enable; - dunst.enable = !config.homemodules.hyprpanel.enable; # Disable for hyprpanel bars.enable = false; - dynamicCursor.enable = false; - trails.enable = true; - hyprspace.enable = false; # Always broken hyprpanel.enable = false; - caelestia.enable = false; keybindings = { main-mod = "SUPER"; bindings = lib.mergeAttrsList [ - # Use Rofi if we don't have caelestia - (lib.optionalAttrs (!config.homemodules.hyprland.caelestia.enable) { - "$mainMod, a" = ["exec, rofi -drun-show-actions -show drun"]; - "$mainMod, c" = ["exec, clipman pick --tool=rofi"]; - "$mainMod SHIFT, l" = ["exec, loginctl lock-session"]; - }) - - # Caelestia - (lib.optionalAttrs (config.homemodules.hyprland.caelestia.enable) { - "$mainMod, a" = ["exec, caelestia shell drawers toggle launcher"]; - # "$mainMod, c" = ["exec, caelestia clipboard"]; - "$mainMod SHIFT, l" = ["exec, caelestia shell lock lock"]; - - "$mainMod, escape" = ["exec, caelestia shell drawers toggle session"]; - }) - { # Applications "$mainMod, t" = ["exec, kitty"]; diff --git a/home/christoph/nixtop/default.nix b/home/christoph/nixtop/default.nix index f04637f..f8b9637 100644 --- a/home/christoph/nixtop/default.nix +++ b/home/christoph/nixtop/default.nix @@ -4,28 +4,28 @@ homemodules = { # TODO: Niri config (needs to modularize niri module) - # hyprland = { - # keyboard = { - # layout = "us"; - # variant = "altgr-intl"; - # option = "nodeadkeys"; - # }; - # - # monitors = { - # "eDP-1" = { - # width = 1920; - # height = 1080; - # rate = 60; - # x = 0; - # y = 0; - # scale = 1; - # }; - # }; - # - # workspaces = { - # "eDP-1" = [1 2 3 4 5 6 7 8 9]; - # }; - # }; + hyprland = { + keyboard = { + layout = "us"; + variant = "altgr-intl"; + option = "nodeadkeys"; + }; + + monitors = { + "eDP-1" = { + width = 1920; + height = 1080; + rate = 60; + x = 0; + y = 0; + scale = 1; + }; + }; + + workspaces = { + "eDP-1" = [1 2 3 4 5 6 7 8 9]; + }; + }; waybar.monitors = ["eDP-1"]; }; diff --git a/home/homemodules/hyprland/autostart.nix b/home/homemodules/hyprland/autostart.nix index e10a459..9981f7c 100644 --- a/home/homemodules/hyprland/autostart.nix +++ b/home/homemodules/hyprland/autostart.nix @@ -5,14 +5,8 @@ hyprland, }: builtins.concatLists [ - (lib.optionals hyprland.dunst.enable ["dunst"]) # Notifications (lib.optionals hyprland.hyprpanel.enable ["hyprpanel"]) # Panel - (lib.optionals hyprland.caelestia.enable ["caelestia shell"]) # Panel/Shell # TODO: Crashes on startup [ - # Start clipboard management - "wl-paste -t text --watch clipman store --no-persist" - "wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\"" - "hyprctl setcursor ${config.home.pointerCursor.name} ${builtins.toString config.home.pointerCursor.size}" "hyprsunset --identity" diff --git a/home/homemodules/hyprland/caelestia.nix b/home/homemodules/hyprland/caelestia.nix deleted file mode 100644 index 58cd927..0000000 --- a/home/homemodules/hyprland/caelestia.nix +++ /dev/null @@ -1,516 +0,0 @@ -{ - config, - hyprland, - color, -}: { - enable = hyprland.caelestia.enable; - - systemd = { - enable = false; # Start from hyprland autostart - target = "graphical-session.target"; - environment = []; - }; - - settings = { - appearance = { - anim = {durations = {scale = 1;};}; - font = { - family = { - clock = "Rubik"; - material = "Material Symbols Rounded"; - mono = color.font; - sans = color.font; - }; - size = {scale = 1;}; - }; - - padding = {scale = 1;}; - rounding = {scale = 1;}; - spacing = {scale = 1;}; - - transparency = { - base = 0.85; - enabled = false; - layers = 0.4; - }; - }; - - background = { - desktopClock = {enabled = false;}; - enabled = true; - - # Lags when visible on both monitors (different refresh rates?) - visualiser = { - autoHide = true; - blur = true; - enabled = false; - rounding = 1; - spacing = 1; - }; - }; - - bar = { - clock = {showIcon = true;}; - dragThreshold = 20; - - entries = [ - { - enabled = true; - id = "logo"; - } - { - enabled = true; - id = "workspaces"; - } - { - enabled = true; - id = "spacer"; - } - { - enabled = true; - id = "activeWindow"; - } - { - enabled = true; - id = "spacer"; - } - { - enabled = true; - id = "clock"; - } - { - enabled = true; - id = "tray"; - } - { - enabled = true; - id = "statusIcons"; - } - { - enabled = true; - id = "power"; - } - ]; - - persistent = true; - - popouts = { - activeWindow = true; - statusIcons = true; - tray = true; - }; - - scrollActions = { - brightness = false; - volume = true; - workspaces = true; - }; - - showOnHover = true; - - status = { - showAudio = true; - showBattery = false; - showBluetooth = true; - showKbLayout = false; - showLockStatus = true; - showMicrophone = false; - showNetwork = true; - }; - - tray = { - background = true; - compact = false; - iconSubs = []; - recolour = false; - }; - - workspaces = { - activeIndicator = true; - activeLabel = "󰮯"; - activeTrail = true; - label = "  "; - occupiedBg = false; - occupiedLabel = "󰮯"; - perMonitorWorkspaces = false; - showWindows = false; - shown = 10; - - # Pick them here: https://fonts.google.com/icons - specialWorkspaceIcons = [ - { - icon = "music_note"; - name = "rmpc"; - } - { - icon = "memory"; - name = "btop"; - } - { - icon = "mark_chat_unread"; - name = "ferdium"; - } - { - icon = "network_intelligence"; - name = "msty"; - } - ]; - }; - }; - - border = { - rounding = 25; - thickness = 10; - }; - - dashboard = { - dragThreshold = 50; - enabled = true; - mediaUpdateInterval = 500; - showOnHover = true; - }; - - general = { - apps = { - audio = ["kitty" "--title=NcpaMixer" "-e" "ncpamixer"]; - explorer = ["kitty" "--title=Yazi" "-e" "yazi"]; - playback = ["mpv"]; - terminal = ["kitty"]; - }; - - battery = { - criticalLevel = 3; - warnLevels = [ - { - icon = "battery_android_frame_2"; - level = 20; - message = "You might want to plug in a charger"; - title = "Low battery"; - } - { - icon = "battery_android_frame_1"; - level = 10; - message = "You should probably plug in a charger now"; - title = "Did you see the previous message?"; - } - { - critical = true; - icon = "battery_android_alert"; - level = 5; - message = "PLUG THE CHARGER RIGHT NOW!!"; - title = "Critical battery level"; - } - ]; - }; - - idle = { - inhibitWhenAudio = true; - lockBeforeSleep = true; - timeouts = [ - { - idleAction = "lock"; - timeout = 600; - } - { - # idleAction = "dpms off"; - # returnAction = "dpms on"; - idleAction = "echo 'idle'"; - returnAction = "echo 'return'"; - timeout = 10000; - } - { - # idleAction = ["systemctl" "suspend-then-hibernate"]; - idleAction = ["echo" "'idle'"]; - timeout = 20000; - } - ]; - }; - }; - - launcher = { - actionPrefix = ">"; - actions = [ - { - command = ["autocomplete" "calc"]; - dangerous = false; - description = "Do simple math equations (powered by Qalc)"; - enabled = true; - icon = "calculate"; - name = "Calculator"; - } - { - command = ["autocomplete" "scheme"]; - dangerous = false; - description = "Change the current colour scheme"; - enabled = true; - icon = "palette"; - name = "Scheme"; - } - { - command = ["autocomplete" "wallpaper"]; - dangerous = false; - description = "Change the current wallpaper"; - enabled = true; - icon = "image"; - name = "Wallpaper"; - } - { - command = ["autocomplete" "variant"]; - dangerous = false; - description = "Change the current scheme variant"; - enabled = true; - icon = "colors"; - name = "Variant"; - } - { - command = ["autocomplete" "transparency"]; - dangerous = false; - description = "Change shell transparency"; - enabled = false; - icon = "opacity"; - name = "Transparency"; - } - { - command = ["caelestia" "wallpaper" "-r"]; - dangerous = false; - description = "Switch to a random wallpaper"; - enabled = false; - icon = "casino"; - name = "Random"; - } - { - command = ["setMode" "light"]; - dangerous = false; - description = "Change the scheme to light mode"; - enabled = true; - icon = "light_mode"; - name = "Light"; - } - { - command = ["setMode" "dark"]; - dangerous = false; - description = "Change the scheme to dark mode"; - enabled = true; - icon = "dark_mode"; - name = "Dark"; - } - { - command = ["systemctl" "poweroff"]; - dangerous = true; - description = "Shutdown the system"; - enabled = true; - icon = "power_settings_new"; - name = "Shutdown"; - } - { - command = ["systemctl" "reboot"]; - dangerous = true; - description = "Reboot the system"; - enabled = true; - icon = "cached"; - name = "Reboot"; - } - { - command = ["loginctl" "terminate-user" ""]; - dangerous = true; - description = "Log out of the current session"; - enabled = true; - icon = "exit_to_app"; - name = "Logout"; - } - { - command = ["loginctl" "lock-session"]; - dangerous = false; - description = "Lock the current session"; - enabled = true; - icon = "lock"; - name = "Lock"; - } - { - command = ["systemctl" "suspend-then-hibernate"]; - dangerous = false; - description = "Suspend then hibernate"; - enabled = false; - icon = "bedtime"; - name = "Sleep"; - } - ]; - - dragThreshold = 50; - enableDangerousActions = true; - hiddenApps = []; - maxShown = 7; - maxWallpapers = 9; - showOnHover = false; - specialPrefix = "@"; - useFuzzy = { - actions = false; - apps = false; - schemes = false; - variants = false; - wallpapers = false; - }; - vimKeybinds = false; - }; - - lock = {recolourLogo = false;}; - - notifs = { - actionOnClick = false; - clearThreshold = 0.3; - defaultExpireTimeout = 5000; - expandThreshold = 20; - expire = true; - }; - - osd = { - enableBrightness = false; - enableMicrophone = true; - enabled = true; - hideDelay = 2000; - }; - - paths = { - mediaGif = "root:/assets/bongocat.gif"; - sessionGif = "root:/assets/kurukuru.gif"; - wallpaperDir = "~/NixFlake/wallpapers"; - }; - - services = { - audioIncrement = 0.1; - defaultPlayer = "MPD"; - gpuType = ""; - maxVolume = 1; - playerAliases = [ - { - from = "com.github.th_ch.youtube_music"; - to = "YT Music"; - } - ]; - smartScheme = true; - useFahrenheit = false; - useTwelveHourClock = false; - visualiserBars = 45; - weatherLocation = "Dortmund, Germany"; - }; - - session = { - commands = { - hibernate = ["systemctl" "hibernate"]; - logout = ["loginctl" "terminate-user" ""]; - reboot = ["systemctl" "reboot"]; - shutdown = ["systemctl" "poweroff"]; - }; - dragThreshold = 30; - enabled = true; - vimKeybinds = false; - }; - - sidebar = { - dragThreshold = 80; - enabled = true; - }; - - utilities = { - enabled = true; - maxToasts = 4; - toasts = { - audioInputChanged = true; - audioOutputChanged = true; - capsLockChanged = true; - chargingChanged = true; - configLoaded = true; - dndChanged = true; - gameModeChanged = true; - kbLayoutChanged = false; - nowPlaying = false; - numLockChanged = true; - vpnChanged = true; - }; - - vpn = { - enabled = false; - provider = [ - { - displayName = "Wireguard (Your VPN)"; - interface = "your-connection-name"; - name = "wireguard"; - } - ]; - }; - }; - }; - - cli = { - enable = hyprland.caelestia.enable; - - settings = { - record = {extraArgs = [];}; - - theme = { - enableBtop = false; - enableDiscord = false; - enableFuzzel = false; - enableGtk = false; - enableHypr = false; - enableQt = false; - enableSpicetify = false; - enableTerm = false; - }; - - toggles = { - communication = { - discord = { - command = ["discord"]; - enable = false; - match = [{class = "discord";}]; - move = true; - }; - whatsapp = { - enable = false; - match = [{class = "whatsapp";}]; - move = true; - }; - }; - - music = { - feishin = { - enable = false; - match = [{class = "feishin";}]; - move = true; - }; - spotify = { - command = ["spicetify" "watch" "-s"]; - enable = false; - match = [{class = "Spotify";} {initialTitle = "Spotify";} {initialTitle = "Spotify Free";}]; - move = true; - }; - }; - - sysmon = { - btop = { - command = ["kitty" "--title" "Btop" "-e" "btop"]; - enable = false; - match = [ - { - class = "btop"; - title = "Btop"; - workspace = {name = "special:sysmon";}; - } - ]; - }; - }; - - todo = { - todoist = { - command = ["todoist"]; - enable = false; - match = [{class = "Todoist";}]; - move = true; - }; - }; - }; - wallpaper = {postHook = "echo $WALLPAPER_PATH";}; - }; - }; -} diff --git a/home/homemodules/hyprland/default.nix b/home/homemodules/hyprland/default.nix index e61d2a0..a65c461 100644 --- a/home/homemodules/hyprland/default.nix +++ b/home/homemodules/hyprland/default.nix @@ -24,6 +24,11 @@ in { options.homemodules.hyprland = import ./options.nix {inherit lib mylib;}; + # TODO: Extract common niri/hyprland stuff to modules (e.g., dunst), so no configs are duplicated + # TODO: Remove unnecessary bullshit + # TODO: Switch to lua config + # TODO: Synchronize with niri mappings + config = lib.mkIf hyprland.enable { assertions = [ { @@ -34,10 +39,6 @@ in { assertion = builtins.hasAttr "hyprlock" nixosConfig.security.pam.services; message = "Can't enable Hyprland module without Hyprlock PAM service!"; } - { - assertion = hyprland.hyprpanel.enable != hyprland.caelestia.enable; - message = "Can't enable Hyprpanel and Caelestia at the same time!"; - } ]; gtk = { @@ -60,18 +61,17 @@ in { }; packages = with pkgs; [ - hyprpaper # Wallpaper setter hyprpicker # Color picker # hyprpolkitagent # Ugly polkit authentication GUI hyprland-qt-support hyprsunset # Blue light filter wl-clipboard - clipman # Clipboard manager (wl-paste) + # clipman # Clipboard manager (wl-paste) libnotify inotify-tools # Includes inotifywait - ncpamixer # Audio control + # ncpamixer # Audio control slurp # Region selector for screensharing grim # Grab images from compositor @@ -121,49 +121,27 @@ in { programs = { hyprlock = import ./hyprlock.nix {inherit config hyprland color;}; - caelestia = import ./caelestia.nix {inherit config hyprland color;}; }; services = { - dunst = import ./dunst.nix {inherit pkgs config hyprland color;}; hypridle = import ./hypridle.nix {inherit config hyprland color;}; - hyprpaper = import ./hyprpaper.nix {inherit config hyprland color;}; }; # Make sure the units only start when using Hyprland - systemd.user.services.dunst.Unit.After = lib.mkIf hyprland.dunst.enable (lib.mkForce ["hyprland-session.target"]); - systemd.user.services.dunst.Unit.PartOf = lib.mkIf hyprland.dunst.enable (lib.mkForce ["hyprland-session.target"]); - systemd.user.services.hypridle.Install.WantedBy = lib.mkIf (!hyprland.caelestia.enable) (lib.mkForce ["hyprland-session.target"]); - systemd.user.services.hypridle.Unit.After = lib.mkIf (!hyprland.caelestia.enable) (lib.mkForce ["hyprland-session.target"]); - systemd.user.services.hypridle.Unit.PartOf = lib.mkIf (!hyprland.caelestia.enable) (lib.mkForce ["hyprland-session.target"]); - systemd.user.services.hyprpaper.Install.WantedBy = lib.mkIf (!hyprland.caelestia.enable) (lib.mkForce ["hyprland-session.target"]); - systemd.user.services.hyprpaper.Unit.After = lib.mkIf (!hyprland.caelestia.enable) (lib.mkForce ["hyprland-session.target"]); - systemd.user.services.hyprpaper.Unit.PartOf = lib.mkIf (!hyprland.caelestia.enable) (lib.mkForce ["hyprland-session.target"]); + systemd.user.services.hypridle.Install.WantedBy = lib.mkForce ["hyprland-session.target"]; + systemd.user.services.hypridle.Unit.After = lib.mkForce ["hyprland-session.target"]; + systemd.user.services.hypridle.Unit.PartOf = lib.mkForce ["hyprland-session.target"]; wayland.windowManager.hyprland = { enable = true; package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; + configType = "hyprlang"; # TODO: lua systemd.enable = true; # Enable hyprland-session.target systemd.variables = ["--all"]; # Import PATH into systemd xwayland.enable = true; - plugins = builtins.concatLists [ - (lib.optionals - hyprland.bars.enable - [inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars]) - (lib.optionals - hyprland.dynamicCursor.enable - [inputs.hypr-dynamic-cursors.packages.${pkgs.stdenv.hostPlatform.system}.hypr-dynamic-cursors]) - (lib.optionals - hyprland.trails.enable - [inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprtrails]) - (lib.optionals - hyprland.hyprspace.enable - [inputs.hyprspace.packages.${pkgs.stdenv.hostPlatform.system}.Hyprspace]) - ]; - settings = import ./settings.nix { inherit lib diff --git a/home/homemodules/hyprland/dunst.nix b/home/homemodules/hyprland/dunst.nix deleted file mode 100644 index 2bd9656..0000000 --- a/home/homemodules/hyprland/dunst.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - pkgs, - config, - hyprland, - color, -}: { - enable = hyprland.dunst.enable; - - iconTheme.package = color.iconPackage; - iconTheme.name = color.iconTheme; - - settings = { - global = { - monitor = config.homemodules.waybar.monitor; - font = "${color.font} 11"; - offset = "10x10"; - background = color.hexS.base; - foreground = color.hexS.text; - frame_width = 2; - corner_radius = 6; - separator_color = "frame"; - }; - - urgency_low = { - frame_color = color.hexS.green; - }; - - urgency_normal = { - frame_color = color.hexS.green; - }; - - urgency_critical = { - frame_color = color.hexS.red; - }; - }; -} diff --git a/home/homemodules/hyprland/hypridle.nix b/home/homemodules/hyprland/hypridle.nix index b6315a0..ee7a8dd 100644 --- a/home/homemodules/hyprland/hypridle.nix +++ b/home/homemodules/hyprland/hypridle.nix @@ -3,7 +3,7 @@ hyprland, color, }: { - enable = !hyprland.caelestia.enable; + enable = true; settings = { general = { diff --git a/home/homemodules/hyprland/hyprland-nixinator.nix b/home/homemodules/hyprland/hyprland-nixinator.nix deleted file mode 100644 index e8c236f..0000000 --- a/home/homemodules/hyprland/hyprland-nixinator.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - keyboard = { - layout = "us"; - variant = "altgr-intl"; - option = "nodeadkeys"; - }; - - monitors = { - "DP-1" = { - width = 3440; - height = 1440; - rate = 165; - x = 1920; - y = 0; - scale = 1; - }; - - "DP-2" = { - width = 1920; - height = 1080; - rate = 60; - x = 0; - y = 0; - scale = 1; - }; - }; - - workspaces = { - "DP-1" = [1 2 3 4 5 6 7 8 9]; - "DP-2" = [10]; - }; - - autostart = { - delayed = [ - "fcitx5" - ]; - }; - - floating = [ - { - class = "fcitx"; - } - ]; -} diff --git a/home/homemodules/hyprland/hyprland.nix b/home/homemodules/hyprland/hyprland.nix deleted file mode 100644 index d935e16..0000000 --- a/home/homemodules/hyprland/hyprland.nix +++ /dev/null @@ -1,186 +0,0 @@ -{ - nixosConfig, - config, - lib, - pkgs, -}: { - enable = nixosConfig.programs.hyprland.enable; - dunst.enable = !config.homemodules.hyprpanel.enable; # Disable for hyprpanel - bars.enable = false; - dynamicCursor.enable = false; - trails.enable = true; - hyprspace.enable = false; # Always broken - hyprpanel.enable = false; - caelestia.enable = false; - - keybindings = { - main-mod = "SUPER"; - - bindings = lib.mergeAttrsList [ - # Use Rofi if we don't have caelestia - (lib.optionalAttrs (!config.homemodules.hyprland.caelestia.enable) { - "$mainMod, a" = ["exec, rofi -drun-show-actions -show drun"]; - "$mainMod, c" = ["exec, clipman pick --tool=rofi"]; - "$mainMod SHIFT, l" = ["exec, loginctl lock-session"]; - }) - - # Caelestia - (lib.optionalAttrs (config.homemodules.hyprland.caelestia.enable) { - "$mainMod, a" = ["exec, caelestia shell drawers toggle launcher"]; - # "$mainMod, c" = ["exec, caelestia clipboard"]; - "$mainMod SHIFT, l" = ["exec, caelestia shell lock lock"]; - - "$mainMod, escape" = ["exec, caelestia shell drawers toggle session"]; - }) - - { - # Applications - "$mainMod, t" = ["exec, kitty"]; - "$mainMod, e" = ["exec, kitty --title=Yazi yazi"]; - "$mainMod, n" = ["exec, neovide"]; - # "$mainMod, r" = ["exec, kitty --title=Rmpc rmpc"]; - "$mainMod CTRL, n" = ["exec, kitty --title=Navi navi"]; - "$mainMod SHIFT, n" = ["exec, neovide ${config.paths.dotfiles}/navi/christoph.cheat"]; - "$mainMod SHIFT, f" = ["exec, neovide ${config.paths.dotfiles}/flake.nix"]; - # "ALT, tab" = ["exec, rofi -show window"]; - - # Screenshots - "$mainMod, p" = ["exec, hyprpicker --autocopy --format=hex"]; - "$mainMod, s" = ["exec, grim -g \"$(slurp)\""]; - "$mainMod SHIFT, s" = ["exec, grim -g \"$(slurp)\" - | wl-copy"]; - - # Audio - ", XF86AudioRaiseVolume" = ["exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"]; - ", XF86AudioLowerVolume" = ["exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"]; - ", XF86AudioPlay" = ["exec, playerctl play-pause"]; - ", XF86AudioPrev" = ["exec, playerctl previous"]; - ", XF86AudioNext" = ["exec, playerctl next"]; - - # Brightness - ", XF86MonBrightnessDown" = ["exec, hyprctl hyprsunset gamma -10"]; - ", XF86MonBrightnessUp" = ["exec, hyprctl hyprsunset gamma +10"]; - "$mainMod, XF86MonBrightnessDown" = ["exec, hyprctl hyprsunset temperature 5750"]; - "$mainMod, XF86MonBrightnessUp" = ["exec, hyprctl hyprsunset identity"]; - - "CTRL ALT, f" = let - hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl"; - grep = "${pkgs.gnugrep}/bin/grep"; - awk = "${pkgs.gawk}/bin/gawk"; - notify = "${pkgs.libnotify}/bin/notify-send"; - - toggleMouseFocus = pkgs.writeScriptBin "hypr-toggle-mouse-focus" '' - CURRENT=$(${hyprctl} getoption input:follow_mouse | ${grep} int | ${awk} -F' ' '{print $2}') - - if [[ "$CURRENT" == "1" ]]; then - ${hyprctl} keyword input:follow_mouse 0 - ${notify} "Disabled Mouse Focus!" - else - ${hyprctl} keyword input:follow_mouse 1 - ${notify} "Enabled Mouse Focus!" - fi - ''; - in ["exec, ${toggleMouseFocus}/bin/hypr-toggle-mouse-focus"]; - - # "CTRL ALT, t" = ["exec, bash -c 'systemctl --user restart hyprpanel.service'"]; - } - ]; - - ws-bindings = { - # "" = ""; - "1" = "1"; - "2" = "2"; - "3" = "3"; - "4" = "4"; - "5" = "5"; - "6" = "6"; - "7" = "7"; - "8" = "8"; - "9" = "9"; - "10" = "0"; - }; - - special-ws-bindings = { - "ferdium" = "x"; - "msty" = "z"; - "btop" = "b"; - "rmpc" = "r"; - }; - }; - - autostart = { - immediate = [ - "kitty --hold fastfetch" - "zeal" - "nextcloud --background" - "protonvpn-app" - - # "kdeconnect-indicator" # started by services.kdeconnect.indicator - ]; - - delayed = [ - "keepassxc" # The tray doesn't work when started too early - ]; - - special-silent = { - "ferdium" = ["ferdium"]; - "msty" = ["msty"]; - "btop" = ["kitty --title=Btop btop"]; - "rmpc" = ["kitty --title=Rmpc rmpc"]; - }; - }; - - windowrules = [ - # Fix jetbrains tooltip flicker - "match:class ^(jetbrains-.*)$, match:title ^(win[0-9]+)$, float 1" - "match:class ^(jetbrains-.*)$, match:title ^(win[0-9]+)$, no_initial_focus 1" - ]; - - workspacerules = { - "1" = []; - "2" = ["Zotero" "neovide" "code-url-handler"]; - "3" = ["obsidian"]; - "4" = ["firefox" "Google-chrome" "chromium-browser" "org.qutebrowser.qutebrowser"]; - "5" = ["steam"]; - "6" = ["steam_app_(.+)"]; - "7" = ["signal"]; - "8" = ["tidal-hifi"]; - "9" = ["discord"]; - "10" = ["python3"]; - }; - - floating = [ - {class = "org.kde.polkit-kde-authentication-agent-1";} - { - class = "thunar"; - title = "File Operation Progress"; - } - {class = "ffplay";} - {class = "Unity";} - ]; - - transparent-opacity = "0.75"; - - transparent = [ - "kitty" - "Alacritty" - "discord" - "signal" - "vesktop" - "Spotify" - "tidal-hifi" - "obsidian" - "firefox" - "org.qutebrowser.qutebrowser" - "jetbrains-clion" - "jetbrains-idea" - "jetbrains-pycharm" - "jetbrains-rustrover" - "jetbrains-rider" - "jetbrains-webstorm" - "code-url-handler" - "neovide" - "steam" - "ferdium" - "Msty" - ]; -} diff --git a/home/homemodules/hyprland/hyprpaper.nix b/home/homemodules/hyprland/hyprpaper.nix deleted file mode 100644 index fd2454d..0000000 --- a/home/homemodules/hyprland/hyprpaper.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - config, - hyprland, - color, -}: { - enable = !hyprland.caelestia.enable; - - settings = { - ipc = "on"; - splash = false; - splash_offset = 2.0; - - # Wallpapers have to be preloaded to be displayed - preload = let - mkPreload = name: "${config.paths.nixflake}/wallpapers/${name}.jpg"; - in - color.wallpapers |> builtins.map mkPreload; - - wallpaper = let - mkWallpaper = monitor: - "${monitor}, " - + "${config.paths.nixflake}/wallpapers/${color.wallpaper}.jpg"; - in - hyprland.monitors - |> builtins.attrNames - |> builtins.map mkWallpaper; - }; -} diff --git a/home/homemodules/hyprland/options.nix b/home/homemodules/hyprland/options.nix index 5052d8f..4d95b00 100644 --- a/home/homemodules/hyprland/options.nix +++ b/home/homemodules/hyprland/options.nix @@ -5,13 +5,8 @@ }: { enable = lib.mkEnableOption "Hyprland Window Manager + Compositor"; - dunst.enable = lib.mkEnableOption "Enable Dunst notification daemon"; bars.enable = lib.mkEnableOption "Enable window bars"; - dynamicCursor.enable = lib.mkEnableOption "Enable dynamic cursors"; - trails.enable = lib.mkEnableOption "Enable dynamic window trails"; - hyprspace.enable = lib.mkEnableOption "Enable Hyprspace workspace overview"; hyprpanel.enable = lib.mkEnableOption "Enable Hyprpanel"; - caelestia.enable = lib.mkEnableOption "Enable Caelestia"; keyboard = { layout = lib.mkOption { diff --git a/home/homemodules/hyprland/settings.nix b/home/homemodules/hyprland/settings.nix index 5aaea83..9bc1d48 100644 --- a/home/homemodules/hyprland/settings.nix +++ b/home/homemodules/hyprland/settings.nix @@ -237,123 +237,5 @@ on_double_click = "hyprctl dispatch fullscreen 1"; }; }) - - (lib.optionalAttrs hyprland.dynamicCursor.enable { - dynamic-cursors = { - # enables the plugin - enabled = true; - - # sets the cursor behaviour, supports these values: - # tilt - tilt the cursor based on x-velocity - # rotate - rotate the cursor based on movement direction - # stretch - stretch the cursor shape based on direction and velocity - # none - do not change the cursors behaviour - mode = "rotate"; - - # minimum angle difference in degrees after which the shape is changed - # smaller values are smoother, but more expensive for hw cursors - threshold = 2; - - # for mode = rotate - rotate = { - # length in px of the simulated stick used to rotate the cursor - # most realistic if this is your actual cursor size - length = 20; - - # clockwise offset applied to the angle in degrees - # this will apply to ALL shapes - offset = 0.0; - }; - - # for mode = tilt - tilt = { - # controls how powerful the tilt is, the lower, the more power - # this value controls at which speed (px/s) the full tilt is reached - # the full tilt being 60° in both directions - limit = 1000; - - # relationship between speed and tilt, supports these values: - # linear - a linear function is used - # quadratic - a quadratic function is used (most realistic to actual air drag) - # negative_quadratic - negative version of the quadratic one, feels more aggressive - # see `activation` in `src/mode/utils.cpp` for how exactly the calculation is done - function = "negative_quadratic"; - - # time window (ms) over which the speed is calculated - # higher values will make slow motions smoother but more delayed - window = 100; - }; - - # configure shake to find - # magnifies the cursor if its is being shaken - shake = { - # enables shake to find - enabled = false; - - # use nearest-neighbour (pixelated) scaling when shaking - # may look weird when effects are enabled - nearest = true; - - # controls how soon a shake is detected - # lower values mean sooner - threshold = 3.0; - - # magnification level immediately after shake start - base = 1.5; - # magnification increase per second when continuing to shake - speed = 0.0; - # how much the speed is influenced by the current shake intensitiy - influence = 0.0; - - # maximal magnification the cursor can reach - # values below 1 disable the limit (e.g. 0) - limit = 0.0; - - # time in millseconds the cursor will stay magnified after a shake has ended - timeout = 1000; - - # show cursor behaviour `tilt`, `rotate`, etc. while shaking - effects = true; - - # enable ipc events for shake - # see the `ipc` section below - ipc = false; - }; - - # use hyprcursor to get a higher resolution texture when the cursor is magnified - # see the `hyprcursor` section below - hyprcursor = { - # use nearest-neighbour (pixelated) scaling when magnifing beyond texture size - # this will also have effect without hyprcursor support being enabled - # 0 / false - never use pixelated scaling - # 1 / true - use pixelated when no highres image - # 2 - always use pixleated scaling - nearest = true; - - # enable dedicated hyprcursor support - enabled = true; - - # resolution in pixels to load the magnified shapes at - # be warned that loading a very high-resolution image will take a long time and might impact memory consumption - # -1 means we use [normal cursor size] * [shake:base option] - resolution = -1; - - # shape to use when clientside cursors are being magnified - # see the shape-name property of shape rules for possible names - # specifying clientside will use the actual shape, but will be pixelated - fallback = "clientside"; - }; - }; - }) - - (lib.optionalAttrs hyprland.trails.enable { - hyprtrails = { - color = "rgb(${color.hex.accent})"; - }; - }) - - (lib.optionalAttrs hyprland.hyprspace.enable { - overview = {}; - }) ]; } diff --git a/system/default.nix b/system/default.nix index 913b52a..8d6b2de 100644 --- a/system/default.nix +++ b/system/default.nix @@ -318,8 +318,8 @@ with mylib.networking; { gpu-screen-recorder.enable = !headless; hyprland = { - enable = true; - # enable = !headless; + # enable = true; + enable = !headless; package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;