From bf792236bc259ffe0901a4c36d2ece5766c8293a Mon Sep 17 00:00:00 2001 From: SebastianStork Date: Fri, 12 Apr 2024 01:18:09 +0200 Subject: [PATCH] Enable hyprlock and hypridle --- flake.lock | 138 ++++++++++++++++++++++++++++++++++- flake.nix | 10 +++ modules/home/de/hyprland.nix | 34 +++++++++ 3 files changed, 180 insertions(+), 2 deletions(-) diff --git a/flake.lock b/flake.lock index f219320..4c378a3 100644 --- a/flake.lock +++ b/flake.lock @@ -69,13 +69,35 @@ "type": "github" } }, + "hypridle": { + "inputs": { + "hyprlang": "hyprlang", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1710180874, + "narHash": "sha256-ZSn3wXQuRz36Ta/L+UCFKuUVG6QpwK2QmRkPjpQprU4=", + "owner": "hyprwm", + "repo": "Hypridle", + "rev": "4395339a2dc410bcf49f3e24f9ed3024fdb25b0a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hypridle", + "type": "github" + } + }, "hyprland": { "inputs": { "hyprcursor": "hyprcursor", "hyprland-protocols": "hyprland-protocols", - "hyprlang": "hyprlang", + "hyprlang": "hyprlang_2", "nixpkgs": "nixpkgs", - "systems": "systems", + "systems": "systems_2", "wlroots": "wlroots", "xdph": "xdph" }, @@ -119,6 +141,27 @@ } }, "hyprlang": { + "inputs": { + "nixpkgs": [ + "hypridle", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1708212860, + "narHash": "sha256-nW3Zrhh9RJcMTvOcXAaKADnJM/g6tDf3121lJtTHnYo=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "11d5ccda071c153dfdc18ef65338956a51cef96a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprlang_2": { "inputs": { "nixpkgs": [ "hyprland", @@ -143,6 +186,50 @@ "type": "github" } }, + "hyprlang_3": { + "inputs": { + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": "systems_3" + }, + "locked": { + "lastModified": 1711250455, + "narHash": "sha256-LSq1ZsTpeD7xsqvlsepDEelWRDtAhqwetp6PusHXJRo=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "b3e430f81f3364c5dd1a3cc9995706a4799eb3fa", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprlock": { + "inputs": { + "hyprlang": "hyprlang_3", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_4" + }, + "locked": { + "lastModified": 1712766257, + "narHash": "sha256-vTB9Wz7Iqse3G3QeTsNIEL4U+foZHcrJO1F6o8RC3W8=", + "owner": "hyprwm", + "repo": "Hyprlock", + "rev": "eb1123fa2ec5030448ac35280375d666d48f64de", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprlock", + "type": "github" + } + }, "nh": { "inputs": { "nixpkgs": [ @@ -235,7 +322,9 @@ "inputs": { "disko": "disko", "home-manager": "home-manager", + "hypridle": "hypridle", "hyprland": "hyprland", + "hyprlock": "hyprlock", "nh": "nh", "nix-index-database": "nix-index-database", "nixpkgs": "nixpkgs_2", @@ -278,6 +367,51 @@ "type": "github" } }, + "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": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_4": { + "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" + } + }, "wlroots": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 127c42c..2632897 100644 --- a/flake.nix +++ b/flake.nix @@ -28,6 +28,16 @@ }; hyprland.url = "github:hyprwm/Hyprland"; + + hyprlock = { + url = "github:hyprwm/Hyprlock"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + hypridle = { + url = "github:hyprwm/Hypridle"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = {nixpkgs, ...} @ inputs: let diff --git a/modules/home/de/hyprland.nix b/modules/home/de/hyprland.nix index 692caa5..208cbf5 100644 --- a/modules/home/de/hyprland.nix +++ b/modules/home/de/hyprland.nix @@ -1,4 +1,5 @@ { + inputs, config, pkgs, lib, @@ -6,6 +7,11 @@ }: let cfg = config.myConfig.de; in { + imports = [ + inputs.hyprlock.homeManagerModules.hyprlock + inputs.hypridle.homeManagerModules.hypridle + ]; + options.myConfig.de.hyprland.enable = lib.mkEnableOption ""; config = lib.mkIf cfg.hyprland.enable { @@ -16,6 +22,34 @@ in { splash=false ''; + programs.hyprlock = { + enable = true; + }; + + services.hypridle = let + hyprlockExe = "${lib.getExe inputs.hyprlock.packages.${pkgs.system}.default}"; + in { + enable = true; + lockCmd = "pidof ${hyprlockExe} || ${hyprlockExe}"; + beforeSleepCmd = "loginctl lock-session"; + afterSleepCmd = "hyprctl dispatch dpms on"; + listeners = [ + { + timeout = 300; + onTimeout = "hyprctl dispatch dpms off"; + onResume = "hyprctl dispatch dpms on"; + } + { + timeout = 600; + onTimeout = "loginctl lock-session"; + } + { + timeout = 1200; + onTimeout = "systemctl suspend"; + } + ]; + }; + myConfig.rofi.enable = true; services.cliphist.enable = true;