Commit 725f35cdd4b4

Vincent Demeester <vincent@sbr.pm>
2026-02-24 11:01:51
fix(swayidle): use niri DPMS commands on niri hosts
Made swayidle desktop-aware so DPMS power off/on commands use niri msg action instead of swaymsg on niri hosts.
1 parent 5808b4f
Changed files (1)
home
common
desktop
home/common/desktop/sway/swayidle.nix
@@ -1,4 +1,20 @@
-{ pkgs, ... }:
+{
+  pkgs,
+  desktop,
+  ...
+}:
+let
+  powerOffCmd =
+    if desktop == "niri" then
+      "${pkgs.niri}/bin/niri msg action power-off-monitors"
+    else
+      ''${pkgs.sway}/bin/swaymsg "output * power off"'';
+  powerOnCmd =
+    if desktop == "niri" then
+      "${pkgs.niri}/bin/niri msg action power-on-monitors"
+    else
+      ''${pkgs.sway}/bin/swaymsg "output * power on"'';
+in
 {
   home.packages = with pkgs; [
     swaylock
@@ -13,8 +29,8 @@
     timeouts = [
       {
         timeout = 600;
-        command = ''${pkgs.sway}/bin/swaymsg "output * power off"'';
-        resumeCommand = ''${pkgs.sway}/bin/swaymsg "output * power on"'';
+        command = powerOffCmd;
+        resumeCommand = powerOnCmd;
       }
     ];
   };