From 78651a2d1eee0f3af9a73df1f439bb035d0c024e Mon Sep 17 00:00:00 2001 From: foglar Date: Wed, 19 Feb 2025 08:37:59 +0100 Subject: [PATCH] hypridle cleanup --- nixos/home/desktop/hyprland/dependencies.nix | 39 +--------------- nixos/home/desktop/hyprland/hypridle.nix | 47 ++++++++++++++++++++ nixos/home/desktop/hyprland/hyprland.nix | 2 + 3 files changed, 50 insertions(+), 38 deletions(-) create mode 100644 nixos/home/desktop/hyprland/hypridle.nix diff --git a/nixos/home/desktop/hyprland/dependencies.nix b/nixos/home/desktop/hyprland/dependencies.nix index 5241ee9..6c2e880 100644 --- a/nixos/home/desktop/hyprland/dependencies.nix +++ b/nixos/home/desktop/hyprland/dependencies.nix @@ -8,48 +8,11 @@ ".local/share/icons/kogami/keyboard.svg".source = ../../../../config/icons/keyboard.svg; }; - services.playerctld.enable = true; #services.mpd = { # enable = true; # musicDirectory = /home/shinya/Music; #}; - services.hypridle = { - enable = true; - settings = { - general = { - lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances. - before_sleep_cmd = "loginctl lock-session"; # lock before suspend. - after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display. - }; - - listener = [ - { - timeout = 90; # 1.5min. - on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor. - on-resume = "brightnessctl -r"; # monitor backlight restore. - } - - # turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. - { - timeout = 120; # 3min - on-timeout = "loginctl lock-session"; # lock screen when timeout has passed - } - - { - timeout = 210; # 3.5min - on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed - on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired. - } - - { - timeout = 1800; # 30min - on-timeout = "systemctl suspend"; # suspend pc - } - ]; - }; - }; - home.packages = (with pkgs; [ hypridle @@ -111,7 +74,7 @@ (writeShellScriptBin "keyboardswitch" '' hyprctl switchxkblayout all next layMain=$(hyprctl -j devices | ${pkgs.jq}/bin/jq '.keyboards' | ${pkgs.jq}/bin/jq '.[] | select (.main == true)' | awk -F '"' '{if ($2=="active_keymap") print $4}') - ${libnotify}/bin/notify-send -a "t1" -r 91190 -t 800 "$layMain" -i ~/.local/share/icons/kogami/keyboard.svg + ${libnotify}/bin/notify-send -a "t1" -r 91190 -t 800 -e "$layMain" -i ~/.local/share/icons/kogami/keyboard.svg '') (writeShellScriptBin "background-switch-random" '' diff --git a/nixos/home/desktop/hyprland/hypridle.nix b/nixos/home/desktop/hyprland/hypridle.nix new file mode 100644 index 0000000..5004a67 --- /dev/null +++ b/nixos/home/desktop/hyprland/hypridle.nix @@ -0,0 +1,47 @@ +{ + lib, + config, + ... +}: { + options = { + desktop.hyprland.hypridle.enable = lib.mkEnableOption "hypridle"; + }; + + config = lib.mkIf config.desktop.hyprland.hypridle.enable { + services.hypridle = { + enable = true; + settings = { + general = { + lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances. + before_sleep_cmd = "loginctl lock-session"; # lock before suspend. + after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display. + }; + + listener = [ + { + timeout = 90; # 1.5min. + on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor. + on-resume = "brightnessctl -r"; # monitor backlight restore. + } + + # turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. + { + timeout = 120; # 3min + on-timeout = "loginctl lock-session"; # lock screen when timeout has passed + } + + { + timeout = 210; # 3.5min + on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed + on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired. + } + + { + timeout = 1800; # 30min + on-timeout = "systemctl suspend"; # suspend pc + } + ]; + }; + }; + }; +} diff --git a/nixos/home/desktop/hyprland/hyprland.nix b/nixos/home/desktop/hyprland/hyprland.nix index d62219d..27e5c95 100644 --- a/nixos/home/desktop/hyprland/hyprland.nix +++ b/nixos/home/desktop/hyprland/hyprland.nix @@ -27,6 +27,7 @@ clipboard.enable = lib.mkDefault true; }; hyprlock.enable = lib.mkDefault true; + hypridle.enable = lib.mkDefault true; wlogout.enable = lib.mkDefault true; }; @@ -45,6 +46,7 @@ # Services for the Hyprland module services.network-manager-applet.enable = true; + services.playerctld.enable = true; #services.dunst.enable = true; services.swaync = { enable = true;