summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Keller <tjk@tjkeller.xyz>2026-06-15 15:29:59 -0500
committerTim Keller <tjk@tjkeller.xyz>2026-06-15 15:29:59 -0500
commitcba6c3560cf47932e426117c11878db8aebff33d (patch)
tree6a2153183bd6fe3e5879c88bc4d54b82ba0ff2e5
parent73bdaa872445403fa6b66124550864f092648f86 (diff)
downloadnixos-cba6c3560cf47932e426117c11878db8aebff33d.tar.xz
nixos-cba6c3560cf47932e426117c11878db8aebff33d.zip
move powerkeys options to option module. enable by default with desktop. only override hibernate key if suspend is disabled (who has a hibernate key?)
-rw-r--r--archetypes/profiles/desktop/default.nix7
-rw-r--r--nixos/powerkeys.nix17
-rw-r--r--nixos/suspend.nix3
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";
};
}