Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SDDM ignores the cursor theme and uses Adwaita #1894

Open
Postnozet opened this issue Mar 14, 2024 · 24 comments · May be fixed by #1904
Open

SDDM ignores the cursor theme and uses Adwaita #1894

Postnozet opened this issue Mar 14, 2024 · 24 comments · May be fixed by #1904
Labels

Comments

@Postnozet
Copy link

Desktop - KDE Plasma
OS - Arch
SDDM 0.21

My config file /etc/sddm.conf.d/kde_settings.conf

[Autologin]
Relogin=false
Session=
User=

[General]
HaltCommand=/usr/bin/systemctl poweroff
RebootCommand=/usr/bin/systemctl reboot

[Theme]
Current=breeze
CursorSize=24
CursorTheme=breeze_cursors
Font=Noto Sans,10,-1,0,400,0,0,0,0,0,0,0,0,0,0,1

[Users]
MaximumUid=60513
MinimumUid=1000

[X11]
ServerArguments=-dpi 0

cursor

@tmtvl
Copy link

tmtvl commented Mar 15, 2024

Seconded, also on Arch, with SDDM 0.21.0, exactly the same problem, tried with both Oxygen_Zion and breeze_cursors, but both cases just showed the Adwaita cursor.

@Bingo90
Copy link

Bingo90 commented Mar 19, 2024

Phew, I thought I was doing something wrong! (also on Arch, using Bibata Modern Classic)

@Firestar-Reimu
Copy link

Firestar-Reimu commented Mar 23, 2024

same problem, cursorsize=18, cursortheme=breeze_cursors

also, it cannot sync the hidpi settings 200% scaling of wayland

@NecRaul
Copy link

NecRaul commented Apr 4, 2024

Desktop - dwm
OS - Arch
SDDM 0.21.0-4

Same problem with these configs:

[General]
InputMethod=
Namespaces=
Numlock=on
HaltCommand=/usr/bin/systemctl poweroff
RebootCommand=/usr/bin/systemctl reboot

[Autologin]
Relogin=false
Session=
User=

[Theme]
Current=where_is_my_sddm_theme
CursorSize=24
CursorTheme=breeze_cursors
Font=Noto Sans,10,-1,5,50,0,0,0,0,0
DisableAvatarsThreshold=7
EnableAvatars=true
FacesDir=/usr/share/sddm/faces
ThemeDir=/usr/share/sddm/themes

[Users]
MaximumUid=60513
MinimumUid=1000
DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin
HideShells=
HideUsers=
RememberLastSession=true
RememberLastUser=true
ReuseSession=true

[Wayland]
EnableHiDPI=true
SessionCommand=/usr/share/sddm/scripts/wayland-session
SessionDir=/usr/share/wayland-sessions
SessionLogFile=.local/share/sddm/wayland-session.log

[X11]
DisplayCommand=/usr/share/sddm/scripts/Xsetup
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
EnableHiDPI=true
MinimumVT=1
ServerPath=/usr/bin/X
ServerArguments=-dpi 0
SessionCommand=/usr/share/sddm/scripts/Xsession
SessionDir=/usr/share/xsessions
SessionLogFile=.local/share/sddm/xorg-session.log
UserAuthFile=.Xauthority
XauthPath=/usr/bin/xauth
XephyrPath=/usr/bin/Xephyr

@Vogtinator Vogtinator added the bug label Apr 4, 2024
@Vogtinator Vogtinator linked a pull request Apr 4, 2024 that will close this issue
@Vogtinator
Copy link
Contributor

I debugged this a bit.

The reason is that Qt 6 switched from using libXcursor to xcb-util-cursor (https://bugreports.qt.io/browse/QTBUG-67373), which does not look at the XCURSOR_THEME environment variable anymore. There does not appear to be a way to set the theme other than Xcursor.theme so needs a call to xrdb: #1904

IMO a Qt bug that it no longer respects the application/platform cursor setting, but in most cases the resource is set appropriately already anyway.

@xircon
Copy link

xircon commented Apr 6, 2024

Put your cursor theme in /usr/share/icons/default/index.theme

[Icon Theme]
Inherits=Bibata-Rainbow-Modern

I think I just read the entire internet, trying to sort this! Saw a comment (Endeavour forum) about ~/.icons/default/index.theme which lead me to this.

@Vogtinator
Copy link
Contributor

If you want a workaround, don't do that.

Instead, put echo 'Xcursor.theme: Bibata-Rainbow-Modern' | xrdb -nocpp -merge into the sddm Xsetup script.

@xircon
Copy link

xircon commented Apr 7, 2024

Does that work on wayland?

@Vogtinator
Copy link
Contributor

If you use kwin_wayland as compositor, the cursor theme should already be set correctly. No idea which other compositors honor XCURSOR_THEME.

@xircon
Copy link

xircon commented Apr 8, 2024

Nope, cursor started off as bibata, then becomes adwaita, log-in and it becomes bibata. This fix worked for me, I now have a consistent theme.

@Vogtinator
Copy link
Contributor

Nope, cursor started off as bibata, then becomes adwaita

Ok, so the compositor uses the right cursor but sddm-greeter unsets it again. Both should have XCURSOR_THEME set and use it. Needs a closer look I guess.

@Timohal
Copy link

Timohal commented Apr 10, 2024

I confirm it's the same for me(

@barteqcz
Copy link

barteqcz commented Apr 22, 2024

Hello, I'm having the exact same problem. Breeze cursor displays for a second, and then it reverts back to Adwaita.

Arch Linux
KDE Plasma 6.0.4
SDDM 0.21.0

@Firestar-Reimu
Copy link

Still not fixed, tested with plasma 6.2.0

@Vogtinator
Copy link
Contributor

#1904 is the fix.

@Firestar-Reimu
Copy link

Can your PR fix the "cursor size too small on HiDPI settings" problem?

@AlanIWBFT
Copy link

Well, there is actually another problem. For some reason 'Apply Plasma Settings' doesn't want to put the mouse settings into /var/lib/sddm/.config/kcminputrc. The solution is to switch to another mouse theme, save, then apply plasma settings, then switch back save and apply again. Now you should have an entry in kcminputrc saying

[Mouse]
cursorTheme=breeze_cursors

And your problem should be fixed. For newly installed OSes, you should less likely run into this problem. I suspect there is some caching mechanism broken for machines upgraded from old systems.

@Vogtinator
Copy link
Contributor

Hm, /var/lib/sddm/.config/kcminputrc should not be used to set the cursor theme. That way SDDM's option won't have any effect.

@AlanIWBFT
Copy link

Yet I can confirm that once the cursor setting in kcminputrc is deleted, the cursor reverts to adwaita. I'm using sddm-wayland-plasma on f40. Your PR is about sddm on X11 right? In /etc/sddm.conf.d/kde_settings.conf we do have CursorTheme=breeze_cursors, it just doesn't do anything (even after the cursor setting is deleted in kcminputrc).

@Vogtinator
Copy link
Contributor

@AlanIWBFT The PR only affects X11, correct.

On wayland it should already work as the compositor should be started with XCURSOR_THEME set. If not, that's a bug.

@AlanIWBFT
Copy link

And unfortunately XCURSOR_THEME is set, but the mouse is still adwaita:
xcu
xcu2
but hold up, didn't you say XCURSOR_THEME is no longer respected? why would it work for wayland?

@Vogtinator
Copy link
Contributor

but hold up, didn't you say XCURSOR_THEME is no longer respected?

Not by Qt 6 using xcb, as it uses libxcb-cursor instead of libXcursor now.

why would it work for wayland?

kwin_wayland uses getenv explicitly.

@Vogtinator
Copy link
Contributor

why would it work for wayland?

kwin_wayland uses getenv explicitly.

And so does Qt 6, through the MouseCursorTheme platform theme hint.

@AlanIWBFT
Copy link

So, what's the consensus now? sddm under wayland has a bug that ignores XCURSOR_THEME?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants