sddm icon indicating copy to clipboard operation
sddm copied to clipboard

SDDM ignores the cursor theme and uses Adwaita

Open Postnozet opened this issue 11 months ago • 24 comments

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

Postnozet avatar Mar 14 '24 15:03 Postnozet

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.

tmtvl avatar Mar 15 '24 12:03 tmtvl

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

Bingo90 avatar Mar 19 '24 19:03 Bingo90

same problem, cursorsize=18, cursortheme=breeze_cursors

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

Firestar-Reimu avatar Mar 23 '24 14:03 Firestar-Reimu

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

NecRaul avatar Apr 04 '24 11:04 NecRaul

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: https://github.com/sddm/sddm/pull/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.

Vogtinator avatar Apr 04 '24 20:04 Vogtinator

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.

xircon avatar Apr 06 '24 23:04 xircon

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.

Vogtinator avatar Apr 07 '24 11:04 Vogtinator

Does that work on wayland?

xircon avatar Apr 07 '24 14:04 xircon

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

Vogtinator avatar Apr 08 '24 07:04 Vogtinator

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.

xircon avatar Apr 08 '24 10:04 xircon

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.

Vogtinator avatar Apr 08 '24 13:04 Vogtinator

I confirm it's the same for me(

Timohal avatar Apr 10 '24 08:04 Timohal

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

barteqcz avatar Apr 22 '24 17:04 barteqcz

Still not fixed, tested with plasma 6.2.0

Firestar-Reimu avatar May 17 '24 10:05 Firestar-Reimu

https://github.com/sddm/sddm/pull/1904 is the fix.

Vogtinator avatar May 17 '24 10:05 Vogtinator

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

Firestar-Reimu avatar May 17 '24 10:05 Firestar-Reimu

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.

AlanIWBFT avatar May 24 '24 07:05 AlanIWBFT

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.

Vogtinator avatar May 24 '24 07:05 Vogtinator

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).

AlanIWBFT avatar May 24 '24 07:05 AlanIWBFT

@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.

Vogtinator avatar May 24 '24 07:05 Vogtinator

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?

AlanIWBFT avatar May 24 '24 08:05 AlanIWBFT

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 avatar May 24 '24 08:05 Vogtinator

why would it work for wayland?

kwin_wayland uses getenv explicitly.

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

Vogtinator avatar May 24 '24 08:05 Vogtinator

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

AlanIWBFT avatar May 25 '24 03:05 AlanIWBFT

Maybe check the directory of /usr/share/icons?

mistymyto avatar Jul 10 '24 17:07 mistymyto

I can confirm all those issues both on Arch Linux as well as in a virtual machine running KDE Neon.

Although on my Arch system it seems that the cursor in SDDM is always stays Adwaita, while in Neon it the cursor actually happens to be Breeze, but has the short change to Adwaita and back.

But I noticed that Adwaita cursor only on VM startup, for which I have configured my user to automatically login (so that I don't actually see SDDM). I didn't notice it when doing a logout and login again, except a minor size change of the cursor.

Most significant to me is the scaling problem for which I started looking for solutions (I didn't even pay attention to the cursor issue until I came here). This is the setting what I always used, and which used to work (making everything 150% size):

[X11]
ServerArguments=-dpi 144

My conclusion was that SDDM had changed to Wayland by default (as fractional and DPI scaling works very different there, as far as I understand) as a reason why this setting is broken, but that does not seem to be the case.

eduarddejong avatar Aug 11 '24 10:08 eduarddejong

It should be reopen, because nothing is fixed in wayland on ArchLinux with sddm and plasma.

NekoCompiler avatar Sep 24 '24 23:09 NekoCompiler

It should be reopen, because nothing is fixed in wayland on ArchLinux with sddm and plasma.

Let's keep this issue for X11, you can open another one for Wayland. FWIW, it works here...

Vogtinator avatar Sep 25 '24 06:09 Vogtinator

Let's keep this issue for X11, you can open another one for Wayland. FWIW, it works here...

It seems that this question is first opened regardless of X11/wayland

and many of us who comment in this issue uses wayland.

Firestar-Reimu avatar Sep 27 '24 15:09 Firestar-Reimu

Since there is no separate bug, this should be for both. I can confirm it's still broken when sddm runs in Wayland mode.

shmerl avatar Oct 10 '24 23:10 shmerl