aboutsummaryrefslogtreecommitdiff
path: root/modules/desktop/sway/swayidle.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/desktop/sway/swayidle.nix')
-rw-r--r--modules/desktop/sway/swayidle.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/modules/desktop/sway/swayidle.nix b/modules/desktop/sway/swayidle.nix
new file mode 100644
index 0000000..0708abc
--- /dev/null
+++ b/modules/desktop/sway/swayidle.nix
@@ -0,0 +1,45 @@
+{
+ config,
+ lib,
+ pkgs,
+ username,
+ ...
+}:
+
+{
+ options.nx.desktop.swayidle.enable = lib.mkEnableOption "Enable swayidle configuration" // {
+ default = config.nx.desktop.sway.enable;
+ };
+ config = lib.mkIf config.nx.desktop.swayidle.enable {
+ home-manager.users."${username}" = {
+ services.swayidle = {
+ enable = true;
+ timeouts = [
+ {
+ timeout = 300;
+ command = "${pkgs.swaylock}/bin/swaylock -f -c 000000";
+ }
+ {
+ timeout = 600;
+ command = "${pkgs.sway}/bin/swaymsg 'output * dpms off";
+ resumeCommand = "${pkgs.sway}/bin/swaymsg output * dpms on";
+ }
+ {
+ timeout = 900;
+ command = "${pkgs.systemd}/bin/systemctl suspend";
+ }
+ ];
+ events = [
+ {
+ event = "after-resume";
+ command = "${pkgs.sway}/bin/swaymsg output * dpms on";
+ }
+ {
+ event = "before-sleep";
+ command = "${pkgs.swaylock}/bin/swaylock -f -c 000000";
+ }
+ ];
+ };
+ };
+ };
+}