feat(desktop): nwg-displays writes niri outputs, kanshi dropped
The port swapped moonarch's wdisplays-persistent for the nixpkgs wdisplays, which cannot save -- so the kanshi config stayed empty and its unit was skipped on every boot. nwg-displays supports niri and writes the layout to ~/.config/niri/monitor.kdl, which niri applies itself. niri prefers a home config and does not merge, so config.kdl is seeded with an include of /etc/niri/config.kdl, like moonarch does for stasis.rune.
This commit is contained in:
1 parent
058ec5c98d
commit
f4b8b5dd50
4 files changed
+66
-37
No files matched your search
+6
-25
@@ -112,30 +112,6 @@ in
|
||||
# --- Firewall, replaces the ufw calls in post-install.sh ---
|
||||
networking.firewall.enable = true;
|
||||
|
||||
# --- Session services ---
|
||||
#
|
||||
# Rebuilt rather than copied: the upstream units reference /usr/bin/,
|
||||
# which does not exist under Nix.
|
||||
|
||||
systemd.user.services.kanshi = {
|
||||
description = "Dynamic display configuration";
|
||||
partOf = [ "graphical-session.target" ];
|
||||
after = [ "graphical-session.target" ];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
# Without a config kanshi exits with a parse error and, with
|
||||
# Restart=on-failure, spins. Monitor profiles are per machine.
|
||||
unitConfig.ConditionPathExists = "%h/.config/kanshi/config";
|
||||
# The config is read, never written, so ProtectSystem=strict is enough and
|
||||
# no exception for %h is needed. Not exercised at runtime here: this host
|
||||
# has no kanshi config, so the condition skips the unit.
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = lib.getExe pkgs.kanshi;
|
||||
Restart = "on-failure";
|
||||
RestartSec = 3;
|
||||
} // waylandClientHardening;
|
||||
};
|
||||
|
||||
# --- System services from defaults/etc/systemd/system/ ---
|
||||
#
|
||||
# Rebuilt rather than copied, same reason as the user units: the originals
|
||||
@@ -166,6 +142,11 @@ in
|
||||
} // sysfsWriterHardening;
|
||||
};
|
||||
|
||||
# --- Session services ---
|
||||
#
|
||||
# Rebuilt rather than copied: the upstream units reference /usr/bin/,
|
||||
# which does not exist under Nix.
|
||||
|
||||
# The bar, launcher and every popout. A unit rather than a spawn-at-startup so
|
||||
# a crash does not leave the session without a bar until the next login.
|
||||
systemd.user.services.quickshell = {
|
||||
@@ -262,7 +243,7 @@ in
|
||||
systemd.user.services.wlsunset = {
|
||||
description = "Wlsunset night light (blue light filter)";
|
||||
partOf = [ "graphical-session.target" ];
|
||||
after = [ "graphical-session.target" "kanshi.service" ];
|
||||
after = [ "graphical-session.target" ];
|
||||
wantedBy = [ ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
|
||||
Reference in new issue
Block a user