aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar@gmail.com>2026-09-23 22:53:14 +0530
committerArpit Chakladar <arpitchakladar@gmail.com>2026-09-23 22:53:14 +0530
commitad96214c9ab94bce925000a6059e3c68e2ff6a22 (patch)
tree9d348b8cd63edbc0292e6cb6bdbdeca1177b0bff
parentadf653bceb4dc6684a30665c4a5ac4947cb6d8cc (diff)
parentca5995feff0c550a330b9b2c8a9cc17c7f48997c (diff)
downloadhome-manager-config-ad96214c9ab94bce925000a6059e3c68e2ff6a22.tar.gz
home-manager-config-ad96214c9ab94bce925000a6059e3c68e2ff6a22.zip
Merge branch 'sleep-and-idle'
-rw-r--r--modules/desktop/default.nix1
-rw-r--r--modules/desktop/swayidle/default.nix37
2 files changed, 38 insertions, 0 deletions
diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix
index 0f63c2d..6ad371d 100644
--- a/modules/desktop/default.nix
+++ b/modules/desktop/default.nix
@@ -12,6 +12,7 @@
./niri
./eww
./mako
+ ./swayidle
];
options.desktop = {
diff --git a/modules/desktop/swayidle/default.nix b/modules/desktop/swayidle/default.nix
new file mode 100644
index 0000000..e1acaa0
--- /dev/null
+++ b/modules/desktop/swayidle/default.nix
@@ -0,0 +1,37 @@
+# swayidle idle management daemon
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+{
+ options.desktop.swayidle = {
+ enable = lib.mkEnableOption "Enables swayidle.";
+ package = lib.mkOption {
+ type = lib.types.package;
+ readOnly = true;
+ default = pkgs.swayidle;
+ description = "The swayidle package to use.";
+ };
+ };
+
+ config = lib.mkIf config.desktop.swayidle.enable {
+ services.swayidle = {
+ enable = true;
+ package = config.desktop.swayidle.package;
+ systemdTargets = [ "graphical-session.target" ];
+ timeouts = [
+ {
+ timeout = 10 * 60; # 10 mins
+ command = "${lib.getExe config.desktop.niri.package} msg action power-off-monitors";
+ resumeCommand = "${lib.getExe config.desktop.niri.package} msg action power-on-monitors";
+ }
+ ];
+ events = {
+ "before-sleep" = "${lib.getExe config.desktop.niri.package} msg action power-off-monitors";
+ "after-resume" = "${lib.getExe config.desktop.niri.package} msg action power-on-monitors";
+ };
+ };
+ };
+}