Skip to main content
Topic: Cursor squashed under XLibre (Read 4159 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Cursor squashed under XLibre

Moved to XLibre, everything seems to work except cursor. Since scrot -p renders cursor as it should be, I had to take photo from my phone to show what's happening. My setup was the same for ages and working well. I am using startx.

In .xinit I have:

Code: [Select]
xrdb ~/.Xresources												# X resource database
xsetroot -cursor_name left_ptr # Cursor on empty desktop

In .Xresources:

Code: [Select]
Xcursor.theme: "Bibata Red"
Xcursor.size: 32

Switching cursor back and forth with lxappearance, each cursor is 'squashed' as on screenshot, along Y axis, upper half being cursor 1/2 high, bottom half containing vertical lines. On screenshot lxapperance shows how cursor should look like (along the top), and how it looks like, bit below (squashed with lines). Restart doesn't help.

Forgot:
- I am using picom but with or without it cursor is the same.
- I am using dwm.

Re: Cursor squashed under XLibre

Reply #1
Are you using Nouveau with the modesetting driver? In that case, the cursor being broken is a known bug, but I'm pretty sure it's a bug on XOrg as well.

In case you're using Nouveau, if you have xf86-video-nouveau installed, that might not work because that package is compiled for XOrg, and it might fail initialization with XLibre, which will fallback to modesetting. You have to install xlibre-xf86-video-nouveau instead.

Re: Cursor squashed under XLibre

Reply #2
Are you using Nouveau with the modesetting driver? In that case, the cursor being broken is a known bug, but I'm pretty sure it's a bug on XOrg as well.

In case you're using Nouveau, if you have xf86-video-nouveau installed, that might not work because that package is compiled for XOrg, and it might fail initialization with XLibre, which will fallback to modesetting. You have to install xlibre-xf86-video-nouveau instead.

I have installed xlibre-xf86-video-nouveau 1.0.18.1-1.1 and all xorg packages replaced with XLibre counterparts. Switching back to xorg and cursor is back to normal.

Re: Cursor squashed under XLibre

Reply #3
Are you using Nouveau with the modesetting driver? In that case, the cursor being broken is a known bug, but I'm pretty sure it's a bug on XOrg as well.

In case you're using Nouveau, if you have xf86-video-nouveau installed, that might not work because that package is compiled for XOrg, and it might fail initialization with XLibre, which will fallback to modesetting. You have to install xlibre-xf86-video-nouveau instead.

I have installed xlibre-xf86-video-nouveau 1.0.18.1-1.1 and all xorg packages replaced with XLibre counterparts. Switching back to xorg and cursor is back to normal.
Just to confirm, you are on Nvidia, and you are using the Nouveau driver, the one built into Linux, right?

If you don't know which driver you're using, you can run "lspci -k | grep -A3 VGA".

Re: Cursor squashed under XLibre

Reply #4
I have that laptop with hybrid AMD/NVIDIA cards:

Code: [Select]
❯ lspci -k | grep -A3 VGA
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
DeviceName: NVIDIA Graphics Device
Subsystem: Hewlett-Packard Company Device 88dd
Kernel driver in use: nouveau
--
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)
DeviceName:  Onboard IGD
Subsystem: Hewlett-Packard Company Device 88dd
Kernel driver in use: amdgpu

List of xorg packages:
Code: [Select]
xf86-input-libinput
xf86-input-vmmouse
xf86-video-amdgpu
xf86-video-ati
xf86-video-dummy
xf86-video-fbdev
xf86-video-intel
xf86-video-nouveau
xf86-video-sisusb
xf86-video-vesa
xf86-video-vmware
xf86-video-voodoo
xorg-server
xorg-server-common

Replaced with same list of XLibre packages:
Code: [Select]
xlibre-xf86-input-libinput 1.5.0.1-1.3
xlibre-xf86-input-vmmouse 13.2.0.1-1.1
xlibre-xf86-video-amdgpu 23.0.0.1-1.1
xlibre-xf86-video-ati 22.0.0.1-1.1
xlibre-xf86-video-dummy 0.4.1.1-1.1
xlibre-xf86-video-fbdev 0.5.1.1-1.1
xlibre-xf86-video-intel 3.0.0.1-1.1
xlibre-xf86-video-nouveau 1.0.18.1-1.1
xlibre-xf86-video-sisusb 0.9.7.1-1.1
xlibre-xf86-video-vesa 2.6.0.1-1.1
xlibre-xf86-video-vmware 13.4.0.1-1.1
xlibre-xf86-video-voodoo 1.2.6.1-1.1
xlibre-xserver 25.0.0.4-1
xlibre-xserver-common 25.0.0.4-1

Re: Cursor squashed under XLibre

Reply #5
Probably I'm just wrong and the Nvidia cursor bag is only in XLibre, or maybe it's a different bug entirely. If it's the former, the fix will come, but it's probably not gonna happen in the 25.0.0.x series, 25.0.1.x should enable modesetting with dmabuf for Nvidia proprietary and fix the bug.

May I see the XLibre startup log? It's in ~/.local/share/xorg/Xorg.0.log (which XOrg has overwritten if you're currently in an XOrg session, so you should reboot into an XLibre one).

Re: Cursor squashed under XLibre

Reply #6
I'm on proprietary 575.64.03 w/ GTX 1060 6GB on i3wm + picom and my cursor is fine, so it must be nouveau related bug.
EDIT: Adding picture:

Spoiler (click to show/hide)

Re: Cursor squashed under XLibre

Reply #7
I have a laptop with Nvidia card, using nouveau driver. The cursor works fine.

Remove the Xcursor lines in .Xresources file and tyy to set the cursor theme with lxapperance-gtk3.

Re: Cursor squashed under XLibre

Reply #8
What is the current thing to upload Xorg.0.log somewhere? Pastebin doesn't allow uploads and I can't find a way to attach log to this message? Oh and textbin wants me to remove all 'XVideo' references from the log which is full of them...

@calvinh With lxapperance or lxapperance-gtk3, I have several cursor themes and as soon as I select any I see squashed left ptr pointer for that theme, with lines, same as on screenshot above.

Re: Cursor squashed under XLibre

Reply #9
What is the current thing to upload Xorg.0.log somewhere? Pastebin doesn't allow uploads and I can't find a way to attach log to this message? Oh and textbin wants me to remove all 'XVideo' references from the log which is full of them...

@calvinh With lxapperance or lxapperance-gtk3, I have several cursor themes and as soon as I select any I see squashed left ptr pointer for that theme, with lines, same as on screenshot above.
As far as I'm concerned, any random file sharing site, or just copy-pasting the log into a code block in a reply will work, but there is an official Artix pastebin ( https://paste.artixlinux.org/ ), or you can also use wgetpaste (it's in extra).

Since we're at it, can you post two logs? One for the XOrg session and one for the XLibre session, so we can see if we can spot any differences.

Re: Cursor squashed under XLibre

Reply #10
Remove the Xcursor lines in .Xresources file and tyy to set the cursor theme with lxapperance-gtk3.
That's terrible idea, this will set "gtk-cursor-theme-name" in "~/.config/gtk-3.0/settings.ini" only, whereas setting "Xcursor.theme" from "~/.Xresources" will force every single UI toolkit and framework to be universally set to this particular custom mouse pointer. Applying cursors in Xorg was always a mess, and this is the only proper way to have this consistently enforced. Also making sure to have proper files here:
~/.icons/default/cursor.theme:
Code: [Select]
[Icon Theme]
Inherits=<custom_cursor_name>
~/.icons/default/index.theme:
Code: [Select]
[Icon Theme]
Name=<custom_cursor_name>
Where <custom_cursor_name> specifically points to the name of the folder /usr/share/icons/<custom_cursor_name> and/or ~/.icons/<custom_cursor_name>
Of course, this will vary on fully fledged DEs, but with WMs such as i3wm or dwm, this is the only way.

Re: Cursor squashed under XLibre

Reply #11
That's terrible idea, this will set "gtk-cursor-theme-name" in "~/.config/gtk-3.0/settings.ini" only

lxappearance sets themes (including cursor) and icons systemwide. No need to set them in .Xresources.

Re: Cursor squashed under XLibre

Reply #12
Remove the Xcursor lines in .Xresources file and tyy to set the cursor theme with lxapperance-gtk3.
That's terrible idea, this will set "gtk-cursor-theme-name" in "~/.config/gtk-3.0/settings.ini" only, whereas setting "Xcursor.theme" from "~/.Xresources" will force every single UI toolkit and framework to be universally set to this particular custom mouse pointer. Applying cursors in Xorg was always a mess, and this is the only proper way to have this consistently enforced. Also making sure to have proper files here:
~/.icons/default/cursor.theme:
Code: [Select]
[Icon Theme]
Inherits=<custom_cursor_name>
~/.icons/default/index.theme:
Code: [Select]
[Icon Theme]
Name=<custom_cursor_name>
Where <custom_cursor_name> specifically points to the name of the folder /usr/share/icons/<custom_cursor_name> and/or ~/.icons/<custom_cursor_name>
Of course, this will vary on fully fledged DEs, but with WMs such as i3wm or dwm, this is the only way.
That's terrible idea, this will set "gtk-cursor-theme-name" in "~/.config/gtk-3.0/settings.ini" only

lxappearance sets themes (including cursor) and icons systemwide. No need to set them in .Xresources.

Please, do not derail the discussion: the cursor theme is clearly being selected just fine, this is just a render bug, and I'm pretty sure it's exactly this bug: https://github.com/X11Libre/xserver/pull/373#issuecomment-3058882486 , but it just renders wrong in a different way because it's modesetting on top of Nouveau instead of modesetting on top of Nvidia.

Re: Cursor squashed under XLibre

Reply #13
Please, do not derail the discussion: the cursor theme is clearly being selected just fine, this is just a render bug, and I'm pretty sure it's exactly this bug: https://github.com/X11Libre/xserver/pull/373#issuecomment-3058882486 , but it just renders wrong in a different way because it's modesetting on top of Nouveau instead of modesetting on top of Nvidia.

I would agree with @Pragma Once , this is clearly XLibre/nouveau problem that has to be waited on. Sadly I can't switch to XLibre yet but will try occasionally in the future. Should I make topic solved?

Re: Cursor squashed under XLibre

Reply #14
I would agree with @Pragma Once , this is clearly XLibre/nouveau problem that has to be waited on. Sadly I can't switch to XLibre yet but will try occasionally in the future. Should I make topic solved?

Hi, I am one of the bug wranglers at XLibre. Could you please file a bug report at [Issues · X11Libre/xf86-video-nouveau](https://github.com/X11Libre/xf86-video-nouveau/issues)? That way there is a chance to help you and solve the problem.