From cba6c3560cf47932e426117c11878db8aebff33d Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Mon, 15 Jun 2026 15:29:59 -0500 Subject: move powerkeys options to option module. enable by default with desktop. only override hibernate key if suspend is disabled (who has a hibernate key?) --- archetypes/profiles/desktop/default.nix | 7 ++++--- nixos/powerkeys.nix | 17 ++++++++++++----- nixos/suspend.nix | 3 +++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/archetypes/profiles/desktop/default.nix b/archetypes/profiles/desktop/default.nix index d64ded5..5a3443d 100644 --- a/archetypes/profiles/desktop/default.nix +++ b/archetypes/profiles/desktop/default.nix @@ -32,13 +32,14 @@ }; services = { + _geoclue2.enable = mkDesktop true; + _pipewire.enable = mkDesktop true; + _printing.enable = mkDesktop true; xserver = { windowManager._awesome.enable = mkDesktop true; enableTearFree = mkDesktop true; }; - _geoclue2.enable = mkDesktop true; - _pipewire.enable = mkDesktop true; - _printing.enable = mkDesktop true; + logind._safePowerKey.enable = mkDesktop true; openssh = { enable = mkDesktop true; settings.X11Forwarding = mkDesktop true; diff --git a/nixos/powerkeys.nix b/nixos/powerkeys.nix index 6ec6b4c..e7c6275 100644 --- a/nixos/powerkeys.nix +++ b/nixos/powerkeys.nix @@ -1,7 +1,14 @@ -{ - services.logind.settings.Login = { - HandleHibernateKey = "suspend"; - HandlePowerKey = "ignore"; - HandlePowerKeyLongPress = "poweroff"; +{ lib, config, ... }: let + cfg = config.services.logind._safePowerKey; +in { + options.services.logind._safePowerKey = { + enable = lib.mkEnableOption "do not immediately shutdown when powerkey is pressed"; + }; + + config = lib.mkIf config.enable = { + services.logind.settings.Login = { + HandlePowerKey = "ignore"; # Allow for powerkey to activate power script + HandlePowerKeyLongPress = "poweroff"; + }; }; } diff --git a/nixos/suspend.nix b/nixos/suspend.nix index 11404de..0e719ab 100644 --- a/nixos/suspend.nix +++ b/nixos/suspend.nix @@ -14,5 +14,8 @@ in { unitConfig.DefaultDependencies = "no"; }; }) ["sleep" "suspend" "hibernate" "hybrid-sleep"]); + + # Hibernate key => suspend + services.logind.settings.Login.HandleHibernateKey = "suspend"; }; } -- cgit v1.2.3