Skip to content

Steam uses weird right-pointing cursor #600

Closed
Majkl578 opened this Issue Jan 9, 2013 · 28 comments
@Majkl578
Majkl578 commented Jan 9, 2013

Steam uses a right-pointing cursor. This was previously propagated into system, so the system cursor was changed to this buggy one (#2). Now, after today's update, the cursor is still wrong, but only for Steam.

@MrSchism
Valve Software member
MrSchism commented Jan 9, 2013

Remember to include your system information (as per https://github.com/ValveSoftware/steam-for-linux/). Devs can't remember everyone's setup, after all.

@Arrowmaster

Same problem. Debian Wheezy 64bit Cinnamon DE

Processor Information:
    Vendor:  GenuineIntel
    Speed: 2400 Mhz
    4 logical processors
    2 physical processors
    HyperThreading:  Supported
    FCMOV:  Supported
    SSE2:  Supported
    SSE3:  Supported
    SSSE3:  Supported
    SSE4a:  Unsupported
    SSE41:  Supported
    SSE42:  Supported

Network Information:
    Network Speed:  

Operating System Version:
    Debian GNU/Linux 7.0 (wheezy) (64 bit)
    Kernel Name:  Linux
    Kernel Version:  3.7-trunk-amd64
    X Server vendor:  The X.Org Foundation
    X Server release:  11204000

Video Card:
    Driver:  Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Mobile x86/MMX/SSE2

    Driver Version:  3.0 Mesa 8.0.5
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 60 Hz
    VendorID:  0x8086
    DeviceID:  0x166
    Number of Monitors:  1
    Number of Logical Video Cards:  1
    Primary Display Resolution:  1366 x 768
    Desktop Resolution: 1366 x 768
    Primary Display Size: 13.54" x 7.64"  (15.51" diag)
                                            34.4cm x 19.4cm  (39.4cm diag)
    Primary VRAM Not Detected

Sound card:
    Audio device: Intel PantherPoint HDMI

Memory:
    RAM:  3852 Mb

Miscellaneous:
    UI Language:  English
    LANG:  en_US.UTF-8
    Microphone:  Not set
    Total Hard Disk Space Available:  567324 Mb
    Largest Free Hard Disk Block:  410978 Mb

Installed software:
@STrRedWolf

Getting the same here. (mind some missing info, looks like Ubuntu allows some probing when Gentoo doesn't, will file another bug on that)

Processor Information:
Vendor: GenuineIntel
Speed: 2534 Mhz
2 logical processors
2 physical processors
HyperThreading: Unsupported
FCMOV: Supported
SSE2: Supported
SSE3: Supported
SSSE3: Supported
SSE4a: Unsupported
SSE41: Supported
SSE42: Unsupported

Network Information:
Network Speed:

Operating System Version:
"Gentoo Base System release 2.1" (64 bit)
Kernel Name: Linux
Kernel Version: 3.6.7-sandra
X Server vendor: The X.Org Foundation
X Server release: 11301000

Video Card:
Driver: NVIDIA Corporation GeForce GTX 260M/PCIe/SSE2

Driver Version:  3.3.0 NVIDIA 310.19
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 60 Hz
VendorID:  0x10de
DeviceID:  0x618
Number of Monitors:  1
Number of Video Cards Not Detected
Primary Display Resolution:  1920 x 1080
Desktop Resolution: 1920 x 1080
Primary Display Size: 13.54" x 7.60"  (15.51" diag)
                                        34.4cm x 19.3cm  (39.4cm diag)
Primary Bus: PCI Express 16x
Primary VRAM: 1024 MB
Supported MSAA Modes:  2x 4x 8x 16x 

Sound card:
Audio device:

Memory:
RAM: 3953 Mb

Miscellaneous:
UI Language: English
LANG: en_US.UTF-8
Microphone: Not set
Total Hard Disk Space Available: 179502 Mb
Largest Free Hard Disk Block: 23044 Mb

Installed software:

Recent Failure Reports:

@Majkl578
Majkl578 commented Jan 9, 2013

@MrSchism: Sorry for that, I am unable to provide Steam-formatted system info due to another bug, but generally it's Debian x64 experimental + Gnome Shell 3.6.

@johnv-valve johnv-valve was assigned Jan 9, 2013
@andser
andser commented Jan 9, 2013

Same issue in Kubuntu 12.04.1 x64:
Процессор:
Поставщик: GenuineIntel
Тактовая частота: 2534 МГц
Кол-во логических процессоров: 4
Кол-во физических процессоров: 3
HyperThreading: Поддерживается
FCMOV: Поддерживается
SSE2: Поддерживается
SSE3: Поддерживается
SSSE3: Поддерживается
SSE4a: Не поддерживается
SSE41: Поддерживается
SSE42: Поддерживается

Сеть:
Скорость соединения:

Версия ОС:
Ubuntu 12.04.1 LTS (64 бит)
Название ядра: Linux
Версия ядра: 3.2.0-35-generic
Поставщик X Server: The X.Org Foundation
Версия X Server: 11103000

Видеокарта:
Модель: Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Mobile x86/MMX/SSE2

Версия драйвера:  2.1 Mesa 8.0.4
Глубина цвета: 24 бит/пикс
Частота обновления: 59 Гц
ID производителя: 0x1002
ID карты:  0x68c1
Кол-во экранов:  1
Количество логических видеокарт:  2
Разрешение осн. экрана:  1366 x 768
Разрешение рабочего стола: 1366 x 768
Размер осн. экрана:

В дюймах: 13,54" x 7,64" (диагональ 15,51")
В сантиметрах: 34,4 см x 19,4 см (диагональ 39,4 см)
Размер видеопамяти не определен

Звуковая карта:
Аудио устройство: IDT 92HD81B1X5

Память:
Оперативная память: 7784 МБ

Разное:
Язык интерфейса: Русский
LANG: ru_UA.UTF-8
Микрофон: Not set
Места на диске: 113955 Мб
Наиболее свободный диск: 36793 Мб

Установленное программное обеспечение:

Последние сообщения об ошибках:

@bioxz
bioxz commented Jan 9, 2013

Same issue (after the update limited to steam) here with Debian 7, 64 bit, xmoad as WM

System information: https://gist.github.com/4491884

@LiamDawe
LiamDawe commented Jan 9, 2013

Yup I have this issue too, it's a really ugly cursor, Steam should just use the native cursor.

@MrSchism
Valve Software member
MrSchism commented Jan 9, 2013

Its using the native cursor for me on Mint 14 Cinnamon.

@HenAlm
HenAlm commented Jan 9, 2013

I'm using Kubuntu and have the right pointing mouse when on Steam window. I've actually seen it in some other cases outside of steam window (for example it flickers for an instant when switching desktops).

Operating System Version:
    Ubuntu 12.04.1 LTS (32 bit)
    Kernel Name:  Linux
    Kernel Version:  3.2.0-35-generic-pae
    X Server vendor:  The X.Org Foundation
    X Server release:  11103000

Video Card:
    Driver:  X.Org Gallium 0.4 on AMD RV630

    Driver Version:  2.1 Mesa 8.0.4
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 60 Hz
    VendorID:  0x1002
    DeviceID:  0x9581
    Number of Monitors:  1
    Number of Logical Video Cards:  1
    Primary Display Resolution:  1680 x 1050
    Desktop Resolution: 1680 x 1050
    Primary Display Size: 13.03" x 8.15"  (15.35" diag)
                                            33.1cm x 20.7cm  (39.0cm diag)
    Primary VRAM Not Detected
@Furyhunter
Processor Information:
    Vendor:  GenuineIntel
    Speed: 2801 Mhz
    4 logical processors
    4 physical processors
    HyperThreading:  Unsupported
    FCMOV:  Supported
    SSE2:  Supported
    SSE3:  Supported
    SSSE3:  Supported
    SSE4a:  Unsupported
    SSE41:  Supported
    SSE42:  Supported

Network Information:
    Network Speed:  

Operating System Version:
    Ubuntu 12.10 (64 bit)
    Kernel Name:  Linux
    Kernel Version:  3.5.0-19-generic
    X Server vendor:  The X.Org Foundation
    X Server release:  11300000

Video Card:
    Driver:  NVIDIA Corporation GeForce GTX 560/PCIe/SSE2

    Driver Version:  4.3.0 NVIDIA 310.14
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 59 Hz
    VendorID:  0x10de
    DeviceID:  0x1201
    Number of Monitors:  1
    Number of Logical Video Cards:  1
    Primary Display Resolution:  1680 x 1050
    Desktop Resolution: 1680 x 1050
    Primary Display Size: 18.90" x 10.63"  (21.65" diag)
                                            48.0cm x 27.0cm  (55.0cm diag)
    Primary Bus: PCI Express 16x
    Primary VRAM: 1023 MB
    Supported MSAA Modes:  2x 4x 8x 16x 

Sound card:
    Audio device: 

Memory:
    RAM:  7935 Mb

Miscellaneous:
    UI Language:  English
    LANG:  en_US.UTF-8
    Microphone:  Not set
    Total Hard Disk Space Available:  476837 Mb
    Largest Free Hard Disk Block:  31658 Mb

Installed software:

Recent Failure Reports:

Same issue, running KDE. Never had a problem with Steam changing the global cursor theme, but this has always been an issue.

@MrSchism
Valve Software member

Update: i'm finally able to reproduce this, but only on non-standard mouse themes. By using the default one for the system (DMZ-White), it remains the same. By changing it to something different (DMZ-Black, for instance), Steam shows it as DMZ-White.

I don't get any strange cursor orientations, mind you... it just goes to that one cursor.

@sir-sigurd

Same issue. I have no any cursor theme, i.e. standard X server cursor font is used.
It appears that they are using "arrow" cursor and it looks that it work as it should with DMZ-White because "arrow" cursor is just symlinked to "left_ptr" in this theme.

@w-flo
w-flo commented Jan 10, 2013

Just to illustrate the issue: (Kubuntu 12.10)

In steam:
steam

In browser (and most other applications):
not-steam

system info: https://gist.github.com/4503760

@Majkl578

@MrSchism: I'm using Gnome Shell 3.6 with default cursor theme, Adwaita:

$ cat /usr/share/themes/Adwaita/index.theme | grep CursorTheme
CursorTheme=Adwaita
@MrSchism
Valve Software member

@Majkl578 When I switch to Adwaita, it always reverts to DMZ-White when interacting with the Steam client.

@flying-sheep

please stop mindlessly posting system specs: it won’t help in this case.

the problem is threefold:

  1. steam misbehaves and wrongly sets the cursor theme for whatever reason.

    it should stop doing that! the cursor theme is already set correctly!

    this setting even stays after steam closes, and is revertible by running xsetroot -cursor_name left_ptr

  2. in some environments, by default, no cursor theme is set, which makes the missetting surface.

    this can be worked around by running the following command, which makes the explicit “default” cursor theme point to your cursor theme. in case yours is “Neutral_Plus”:

    mkdir -p ~/.icons
    ln -sT /usr/share/icons/Neutral_Plus ~/.icons/default
    

    someone said this way to make the problem surface is fixed, but i don’t know if it is, since it surfaces for me in another way:

  3. if the cursor theme doesn’t supply aliases for the names that get used in the misset theme, the problem also surfaces. this can be worked around by doing the following as root, if your cursor theme is “Oxygen_White”:

    cd /usr/share/icons/Oxygen_White/cursors/
    ln -s ./left_ptr ./arrow
    ln -s ./size_fdiag ./bottom_right_corner
    ln -s ./size_fdiag ./top_left_corner
    ln -s ./size_bdiag ./bottom_left_corner
    ln -s ./size_bdiag ./top_right_corner
    ln -s ./size_hor ./left_side
    ln -s ./size_hor ./right_side
    ln -s ./size_ver ./top_side
    ln -s ./size_ver ./bottom_side
    

summary: steam misbehaves and needlessly and wrongly alters the cursor theme. this surfaces if no explicit cursor theme is set or your cursor theme doesn’t use the unusual names the steam theme uses.

steam should instead simply use the standard names and not alter the cursor theme. workarounds above.

source for workarounds

@johnv-valve
Valve Software member

@flying-sheep that is not quite correct.

Steam used to call XDefineCursor on the root X window. That was the original bug in #2 and was fixed in the Jan 8th release. This should no longer happen and Steam's cursors should never affect any other windows.

Steam's pointer is whatever X gives us when we call XCreateFontCursor with XC_arrow. We don't do anything with themes directly.

It seems like some themes do not give the "correct" cursor in this scenario. @bldewolf suggested to use XUndefineCursor instead. This should fix the problem for Steam top-level windows, but child windows would get whatever cursor their parent had set, which may not necessarily be the arrow pointer.

Just wanted to clarify the actual issue here, there is a lot of confusion around cursor themes.

@sir-sigurd

Here is image with cursors from X 'cursor' font.
So you want 'arrow' cursor, you get it.
gipd9

@Majkl578

Just a note here, when I run steam from console, I get this warning:

(steam:19383): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",

I don't know whether it's relevant or not, just wanted to point this out. :)

@flying-sheep

@johnv-valve maybe i had some technical mistakes in my post, but @sir-sigurd now shows the core of that part of the problem which still exists:

steam uses “arrow”, while not every theme has an alias of the ancient unused “arrow” pointing to the default cursor “left_ptr”, while every program in the world of unix uses that instead. i found no formal spec, but e.g. this tutorial states this pretty clearly.

so the solution: ignore arrow and use left_ptr instad.

@flying-sheep

AHA, found evidence:

  1. qt uses left_ptr for the default arrow

  2. a dummy theme explaining the cursors (note the first line after the header):

DESC NAMES:
default mouse cursor pointing left default left_ptr top_left_arrow left-arrow
cursor pointing right arrow right_ptr top_right_arrow right-arrow
cursor pointing up center_ptr
create link/shortcut link alias
drag-and-drop create link/shortcut dnd-link
forbidden forbidden not-allowed
crossed_circle
circle
drag-and-drop forbidden dnd-no-drop no-drop
pirate / kill pirate kill
pencil pencil
wait wait watch clock
half-busy half-busy progress left_ptr_watch
help help question_arrow whats_this gumby
drag-and-drop help dnd-ask
resize NS | ns-resize size_ver v_double_arrow double_arrow
resize N ↑ n-resize top_side
resize S ↓ s-resize bottom_side
resize EW - ew-resize size_hor h_double_arrow
resize E →/td> e-resize right_side
resize W ←/td> w-resize left_side
resize NW \ nw-resize top_left_corner
resize SE \ se-resize bottom_right_corner
resize diag \ size_fdiag nwse-resize
resize NE / ne-resize top_right_corner
resize SW / sw-resize bottom_left_corner
resize diag / size_bdiag nesw-resize
resize all size_all
move move fleur
drag-and-drop move dnd-move
scroll in all directions all-scroll
grabbed closedhand grabbing
drag-and-drop grabbed dnd-none
can grab openhand
up arrow up_arrow
color picker color-picker
text: I-beam text ibeam xterm
text: vertical I-beam vertical-text
text: crosshair crosshair
copy copy
drag-and-drop copy dnd-copy
pointer pointer pointing_hand hand1
alternative pointer hand2
cross - target cursor cross diamond_cross target
cell target cell
resize column col-resize sb_h_double_arrow
split_h
resize row row-resize sb_v_double_arrow
split_v
plus icon plus
X11 icon X_cursor X-cursor
cursor with context menu emblem context-menu
zoom zoom
zoom out zoom-out zoom_out
zoom in zoom-in zoom_in
@johnv-valve
Valve Software member

Ok, I changed Steam to use XC_left_ptr instead of XC_arrow. Will be in the next release.

@flying-sheep

Awesome, thanks!

@Majkl578

Works for me. Thanks.

@Majkl578

By the way, the cursor is not same as the system cursor, but it's probably for a new issue.

@stevethepocket

I would like to request that this be reopened because it's still using the basic "X pointers" for window resize (top side, top left corner, etc). This is in KDE 4.8.5 in Kubuntu 12.04 LTS x64. Grabbing the edge of the window changes the pointer to the correct one (a floating pair of white arrowheads, in my case) until you let go, but when you're just hovering, it uses the X Window Manager one.

@Majkl578
Majkl578 commented Feb 2, 2013

@stevethepocket: Isn't your case described by #825?

@stevethepocket

@Majkl578 Depends; is your case limited to the pointers I listed? Otherwise probably not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.