summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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";
};
}