Do not deploy the empty kanshi config

defaults/xdg/kanshi/config is a 0-byte placeholder, unused on Arch as
well, where kanshi reads ~/.config/kanshi/config instead. Deploying it
made kanshi fail to parse and restart in a loop. The unit now starts only
when a user config exists.
This commit is contained in:
nevaforget committed 2026-08-07 15:36:51 +02:00
1 parent d6c42526fb
commit f6140c07b6
2 files changed
+7 -1

No files matched your search

+4 -1
View File
@@ -65,7 +65,10 @@ in
"xdg/quickshell/moonarch".source = "${xdg}/quickshell/moonarch";
"xdg/foot/foot.ini".source = "${xdg}/foot/foot.ini";
"xdg/fastfetch/config.jsonc".source = "${xdg}/fastfetch/config.jsonc";
"xdg/kanshi/config".source = "${xdg}/kanshi/config";
# defaults/xdg/kanshi/config is an empty placeholder — on Arch too. kanshi
# rejects it ("failed to parse config file") and restarts in a loop, so it
# is not deployed. Monitor profiles are machine specific and belong in
# ~/.config/kanshi/config.
"xdg/Kvantum/kvantum.kvconfig".source = "${xdg}/Kvantum/kvantum.kvconfig";
"xdg/qt6ct/qt6ct.conf".source = "${xdg}/qt6ct/qt6ct.conf";
"xdg/gtk-3.0/settings.ini".source = "${xdg}/gtk-3.0/settings.ini";
+3
View File
@@ -34,6 +34,9 @@
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";
serviceConfig = {
Type = "simple";
ExecStart = lib.getExe pkgs.kanshi;