fix(desktop): point ~/.icons/default at the cursor theme

Steam gets XCURSOR_THEME from the session variables and still drew the
core pointer: parts of it resolve the theme literally named 'default'
instead of reading the variable. Xcursor looks that name up along
XCURSOR_PATH, where ~/.icons comes first, so a link there covers those
lookups as well.
This commit is contained in:
nevaforget committed 2026-09-09 18:10:16 +02:00
1 parent 709b80e65c
commit 6ff21d69d5
1 file changed
+10 -3
+10 -3
View File
@@ -408,9 +408,8 @@ in
environment.sessionVariables.QT_STYLE_OVERRIDE = "kvantum";
# Same gap, cursors: niri's cursor block reaches xwayland-satellite, so X11
# clients have a themed pointer available, but Steam is started by the user
# manager and arrives with XCURSOR_PATH alone. Xcursor then falls back to
# ~/.icons/default, which does not exist here, and draws the core theme.
# clients have a themed pointer available, but everything under the user
# manager arrives with XCURSOR_PATH alone and has no theme name to look up.
# The name matches modules/greetd.nix, so greeter and session agree.
environment.sessionVariables.XCURSOR_THEME = "Sweet-cursors";
environment.sessionVariables.XCURSOR_SIZE = "24";
@@ -429,5 +428,13 @@ in
# otherwise ignore the monitor.kdl it writes next to it.
"C %h/.config/niri/config.kdl 0644 - - - ${niriUserConfig}"
"C %h/.zshrc 0644 - - - ${userZshrc}"
# Steam gets XCURSOR_THEME from the block above — verified in its own
# environment — and still drew the core pointer, so parts of it resolve the
# theme literally named 'default' rather than the variable. Xcursor looks
# that name up along XCURSOR_PATH like any other, and ~/.icons is first,
# so pointing it at the theme covers those lookups too. 'L+' replaces the
# link on every activation, unlike the 'C' rules above, which keeps it
# following the theme instead of freezing at today's one.
"L+ %h/.icons/default - - - - /run/current-system/sw/share/icons/Sweet-cursors"
];
}