Commit 317aa20e8958
Changed files (1)
home
common
desktop
sway
home/common/desktop/sway/swayidle.nix
@@ -16,17 +16,19 @@ let
# The lock screen wallpaper effectively blanks external monitors instead.
# Dynamically detect the eDP output name (eDP-1, eDP-2, etc.) since it
# varies across laptops.
+ # On NixOS, use the nix-built niri; on non-NixOS (Fedora CSB), use system niri
+ niriCmd = if builtins.pathExists "/etc/NIXOS" then "${pkgs.niri}/bin/niri" else "niri";
niriPowerOffScript = pkgs.writeShellScript "niri-power-off-monitors" ''
- edp=$(${pkgs.niri}/bin/niri msg outputs | ${pkgs.gnugrep}/bin/grep -oP 'eDP-\d+')
+ edp=$(${niriCmd} msg outputs | ${pkgs.gnugrep}/bin/grep -oP 'eDP-\d+')
if [ -n "$edp" ]; then
- ${pkgs.niri}/bin/niri msg output "$edp" off
+ ${niriCmd} msg output "$edp" off
fi
'';
niriPowerOnScript = pkgs.writeShellScript "niri-power-on-monitors" ''
# Re-enable all outputs first, then let kanshi apply the correct profile
# (e.g. disabling eDP when docked)
- for output in $(${pkgs.niri}/bin/niri msg outputs | ${pkgs.gnugrep}/bin/grep '^Output' | ${pkgs.gnugrep}/bin/grep -oP '\(\K[^)]+(?=\))'); do
- ${pkgs.niri}/bin/niri msg output "$output" on
+ for output in $(${niriCmd} msg outputs | ${pkgs.gnugrep}/bin/grep '^Output' | ${pkgs.gnugrep}/bin/grep -oP '\(\K[^)]+(?=\))'); do
+ ${niriCmd} msg output "$output" on
done
${pkgs.systemd}/bin/systemctl --user restart kanshi
'';