diff --git a/flake.lock b/flake.lock index 816e6ad..be7bcbf 100644 --- a/flake.lock +++ b/flake.lock @@ -239,7 +239,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems_4" }, "locked": { "lastModified": 1705309234, @@ -257,7 +257,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_3" + "systems": "systems_5" }, "locked": { "lastModified": 1681202837, @@ -275,7 +275,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_4" + "systems": "systems_6" }, "locked": { "lastModified": 1710146030, @@ -293,7 +293,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_5" + "systems": "systems_7" }, "locked": { "lastModified": 1705309234, @@ -311,7 +311,7 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_7" + "systems": "systems_9" }, "locked": { "lastModified": 1685518550, @@ -378,11 +378,11 @@ ] }, "locked": { - "lastModified": 1714679908, - "narHash": "sha256-KzcXzDvDJjX34en8f3Zimm396x6idbt+cu4tWDVS2FI=", + "lastModified": 1714900398, + "narHash": "sha256-H7XYHpjk1G6dkA3AnbYrKtaTFjcCE7ul6nUVlVQxtsA=", "owner": "nix-community", "repo": "home-manager", - "rev": "9036fe9ef8e15a819fa76f47a8b1f287903fb848", + "rev": "fdaaf543bad047639ef0b356ea2e6caec2f1215c", "type": "github" }, "original": { @@ -441,50 +441,72 @@ "type": "github" } }, - "hyprland": { + "hypridle": { "inputs": { - "hyprcursor": "hyprcursor", - "hyprland-protocols": "hyprland-protocols", "hyprlang": "hyprlang", - "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": [ "nixpkgs" ], - "systems": "systems", - "wlroots": "wlroots", - "xdph": "xdph" + "systems": "systems_2" }, "locked": { - "lastModified": 1714837352, - "narHash": "sha256-QzzJTb+0CBqgAT0wKZsOt1rky5+u2zMUlNxbZcGj2VM=", + "lastModified": 1713472482, + "narHash": "sha256-7Ft5WZTMIjXOGgRCf31DZBwK6RK8xkeKlD5vFXz3gII=", "owner": "hyprwm", - "repo": "Hyprland", - "rev": "cba1ade848feac44b2eda677503900639581c3f4", + "repo": "hypridle", + "rev": "7cff4581a3753154fc5b41f39a098fad49b777b1", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "Hyprland", + "repo": "hypridle", "type": "github" } }, + "hyprland": { + "inputs": { + "hyprcursor": "hyprcursor", + "hyprlang": "hyprlang_2", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs_2", + "systems": "systems_3", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1714925760, + "narHash": "sha256-n/oEPNxO6lRVXGd3adnd22v5x5Lcz2/fSYUHRr84AgQ=", + "ref": "refs/heads/main", + "rev": "1ed1ce9506e65f76fe5236194516f23d662bba0b", + "revCount": 4615, + "submodules": true, + "type": "git", + "url": "https://github.com/hyprwm/Hyprland" + }, + "original": { + "submodules": true, + "type": "git", + "url": "https://github.com/hyprwm/Hyprland" + } + }, "hyprland-protocols": { "inputs": { "nixpkgs": [ "hyprland", + "xdph", "nixpkgs" ], "systems": [ "hyprland", + "xdph", "systems" ] }, "locked": { - "lastModified": 1691753796, - "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "lastModified": 1714869498, + "narHash": "sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "rev": "e06482e0e611130cd1929f75e8c1cf679e57d161", "type": "github" }, "original": { @@ -494,6 +516,28 @@ } }, "hyprlang": { + "inputs": { + "nixpkgs": [ + "hypridle", + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1713121246, + "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprlang_2": { "inputs": { "nixpkgs": [ "hyprland", @@ -606,11 +650,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1714754042, - "narHash": "sha256-UcnoAT91ewoikYFeJb1S3p4rVS0tfV7/juhrDkS6kvU=", + "lastModified": 1714860497, + "narHash": "sha256-o6iRn6GLH9GwA9opgUmqoqIvpfuUAhqrzt1ydxi2Pt4=", "owner": "neovim", "repo": "neovim", - "rev": "3a8265266e0c0fe31f34b7c0192e8ae7d83ae950", + "rev": "efb44e0cad294f51e330d57d7590d38de5cec62c", "type": "github" }, "original": { @@ -631,11 +675,11 @@ ] }, "locked": { - "lastModified": 1714780994, - "narHash": "sha256-Qfc+wUSIx2IGTjFiYYk3kq58Cxr88WcBWtly8qN7BGA=", + "lastModified": 1714867424, + "narHash": "sha256-tekhS8C242DvAWupClnda3ymXVRHGAwMIDIE06t8f50=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "25d2ee5f16920301f53e22f606b34d4a90e10d65", + "rev": "71b2e5cde3307497ad57529083cc677eca33abba", "type": "github" }, "original": { @@ -731,6 +775,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1714253743, + "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1706487304, "narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=", @@ -746,13 +806,13 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { - "lastModified": 1714635257, - "narHash": "sha256-4cPymbty65RvF1DWQfc+Bc8B233A1BWxJnNULJKQ1EY=", + "lastModified": 1714763106, + "narHash": "sha256-DrDHo74uTycfpAF+/qxZAMlP/Cpe04BVioJb6fdI0YY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "63c3a29ca82437c87573e4c6919b09a24ea61b0f", + "rev": "e9be42459999a253a9f92559b1f5b72e1b44c13d", "type": "github" }, "original": { @@ -762,7 +822,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1706487304, "narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=", @@ -780,11 +840,11 @@ }, "nixpkgs_stable": { "locked": { - "lastModified": 1714685007, - "narHash": "sha256-Q4ddhb5eC5pwci0QhAapFwnsc8X8H9ZMQiWpsofBsDc=", + "lastModified": 1714782413, + "narHash": "sha256-tbg0MEuKaPcUrnmGCu4xiY5F+7LW2+ECPKVAJd2HLwM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "383ffe076d9b633a2e97b6e4dd97fc15fcf30159", + "rev": "651b4702e27a388f0f18e1b970534162dec09aff", "type": "github" }, "original": { @@ -832,7 +892,7 @@ "nixpkgs" ], "rust-overlay": "rust-overlay_3", - "systems": "systems_6" + "systems": "systems_8" }, "locked": { "lastModified": 1714598496, @@ -855,23 +915,24 @@ "catppuccin": "catppuccin", "home-manager": "home-manager", "home-manager_stable": "home-manager_stable", + "hypridle": "hypridle", "hyprland": "hyprland", "kb-gui": "kb-gui", "lanzaboote": "lanzaboote", "neovim-nightly-overlay": "neovim-nightly-overlay", "nixos-generators": "nixos-generators", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nixpkgs_stable": "nixpkgs_stable", "rio-term": "rio-term", "spicetify-nix": "spicetify-nix", - "systems": "systems_8", + "systems": "systems_10", "waybar": "waybar" } }, "rust-overlay": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1709259239, @@ -915,7 +976,7 @@ "rust-overlay_3": { "inputs": { "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1714097613, @@ -967,7 +1028,7 @@ "type": "github" } }, - "systems_2": { + "systems_10": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -982,18 +1043,33 @@ "type": "github" } }, - "systems_3": { + "systems_2": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", + "type": "github" + } + }, + "systems_3": { + "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" } }, @@ -1028,7 +1104,6 @@ } }, "systems_6": { - "flake": false, "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1059,6 +1134,22 @@ } }, "systems_8": { + "flake": false, + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_9": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1094,29 +1185,9 @@ "type": "github" } }, - "wlroots": { - "flake": false, - "locked": { - "lastModified": 1713731601, - "narHash": "sha256-bdcKdtLkusvv85DNuJsajZLFeq7bXp+x5AGP1Sd4wD8=", - "owner": "hyprwm", - "repo": "wlroots-hyprland", - "rev": "5c1d51c5a2793480f5b6c4341ad0797052aec2ea", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "wlroots-hyprland", - "rev": "5c1d51c5a2793480f5b6c4341ad0797052aec2ea", - "type": "github" - } - }, "xdph": { "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], + "hyprland-protocols": "hyprland-protocols", "hyprlang": [ "hyprland", "hyprlang" diff --git a/flake.nix b/flake.nix index 2e26b85..3934706 100644 --- a/flake.nix +++ b/flake.nix @@ -40,11 +40,15 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + hypridle = { + url = "github:hyprwm/hypridle"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + catppuccin.url = "github:catppuccin/nix"; hyprland = { - url = "github:hyprwm/Hyprland/"; - inputs.nixpkgs.follows = "nixpkgs"; + url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; }; kb-gui = { diff --git a/modules/home-manager/swayidle.nix b/modules/home-manager/swayidle.nix index 66a6b70..5152fb2 100644 --- a/modules/home-manager/swayidle.nix +++ b/modules/home-manager/swayidle.nix @@ -3,6 +3,7 @@ lib, config, theme, + inputs, ... }: let suspendScript = pkgs.writeShellScript "suspend-script" '' @@ -54,34 +55,32 @@ in { ignore-empty-password = true; }; }; - services.swayidle = { - enable = true; - events = [ - { - event = "before-sleep"; - command = "${pkgs.swaylock-effects}/bin/swaylock -fF"; - } - { - event = "lock"; - command = "${pkgs.swaylock-effects}/bin/swaylock -fF"; - } - { - event = "lock"; - command = "${pkgs.gtklock}/bin/gtklock"; - } - ]; - timeouts = [ - { - timeout = 300; - command = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms off"; - resumeCommand = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms on"; - } - { - timeout = 310; - command = suspendScript.outPath; - } - ]; + + systemd.user.services.hypridle = { + Unit = { + Description = "Idle Daemon for Hyprland"; + }; + Service = { + Type = "simple"; + ExecStart = lib.getExe inputs.hypridle.packages.${pkgs.system}.hypridle; + Restart = "on-failure"; + }; + Install = { + WantedBy = ["hyprland-session.target"]; + }; }; - systemd.user.services.swayidle.Install.WantedBy = lib.mkForce ["hyprland-session.target"]; + xdg.configFile."hypr/hypridle.conf".text = '' + general { + lock_cmd = ${pkgs.swaylock-effects}/bin/swaylock -fF + before_sleep_cmd = ${pkgs.swaylock-effects}/bin/swaylock -fF # command ran before sleep + ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam) + } + + listener { + timeout = 300 # in seconds + on-timeout = ${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms off + on-resume = ${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms on + } + ''; }