| Summary: | Mouse cursor stuck with Wine-Wayland in different games (e.g. with Proton GE) | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | bugreports61 |
| Component: | input | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | azraerl, bmanbros, duha.bugs, FrancS3, hburnett777, joshuargiacone, mumei6102, nate, pcrosa, xasika6648, xaver.hugl |
| Priority: | NOR | Keywords: | regression |
| Version First Reported In: | 6.5.0 | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/plasma/kwin/-/commit/1c3b81e925bbc970deab14c71eee1d0f320ea8e0 | Version Fixed/Implemented In: | 6.5.2 |
| Sentry Crash Report: | |||
|
Description
bugreports61
2025-10-25 09:05:02 UTC
(In reply to bugreports61 from comment #0) > SUMMARY > Since upgrading to plasma 6.5, the mouse cursor is stuck in games when > playing with wine wayland enabled. > This is a regressions, as it does not happen with latest plasma 6.4 . > > STEPS TO REPRODUCE > 1. Start a game with Proton-GE with PROTON_ENABLE_WAYLAND=1 ( i used > Horizon Zero Dawn Remaster, Gears 5, > > OBSERVED RESULT > 1. You can not move the mouse cursor during loading screens, mouse cursor > stuck > 2. The mouse works in the game menu > 3. The mouse cursor is stuck in game > > > EXPECTED RESULT > The mouse cursor fully works like it does in latest plasma 6.4 > > SOFTWARE/OS VERSIONS > WARNING: radv is not a conformant Vulkan implementation, testing use only. > Operating System: EndeavourOS > KDE Plasma Version: 6.5.0 > KDE Frameworks Version: 6.19.0 > Qt Version: 6.10.0 > Kernel Version: 6.17.3-273-tkg-eevdf (64-bit) > Graphics Platform: Wayland > Processors: 16 × AMD Ryzen 7 9800X3D 8-Core Processor > Memory: 48 GiB of RAM (46.6 GiB usable) > Graphics Processor: AMD Radeon RX 9070 > > ADDITIONAL INFORMATION > > Another use facing the same issue: > https://discuss.kde.org/t/wine-wayland-bug-on-new-6-5/40874 > Using export KWIN_FORCE_SW_CURSOR=1 does not solve the issue. > > Tried to downgrade to kwin 6.4.5 as a workaround, but can not due to missing > symbols for kwin_kwayland after dowgrading kwin, plasma-activities and > plasma-activities-stats. Anything else i would need to downgrad ? > > Many thx > Christian I can concur the same issue using both mesa 25.2.5 and mesa-git I have the same issue. Alt-tab to a different window and going back to the game workarounds the issue (cursor will finally disappear). +1, can reproduce on NixOS unstable, seems to be games that set a custom cursor shape, I was able to reproduce in Deadlock as well as Lethal Company, but not Ultrakill (which does not use a custom cursor) when using wine wayland. It is also worth noting LC and Ultrakill are both Unity games while Deadlock uses Source 2. Same issue here. Affected games: The Outer Worlds 2, Hollow Knight Silksong, Throne and Liberty. Basically whenever a game assigns a custom shape cursor and tries to hide it (due to "action mode" for example) - cursor does not disappear. It stays visible on the screen, with last-assigned-shape and with last-known-coordinates. Alt-tabbing (or using any other way to swap active window back and forth) hides cursor. Operating System: CachyOS Linux KDE Plasma Version: 6.5.0 KDE Frameworks Version: 6.19.0 Qt Version: 6.10.0 Kernel Version: 6.17.5-2-cachyos (64-bit) Graphics Platform: Wayland Processors: 12 × AMD Ryzen 5 7600X 6-Core Processor Memory: 32 GiB of RAM (30,6 GiB usable) Graphics Processor 1: AMD Radeon RX 6950 XT Graphics Processor 2: AMD Radeon Graphics Manufacturer: ASUS Same issue. Cursor gets stuck occasionally in Wine-Wayland games. Sorry forgot to add my system specs Operating System: openSUSE TW KDE Plasma Version: 6.5.0 KDE Frameworks Version: 6.19.0 Qt Version: 6.10.0 Kernel Version: 6.17.4-1-default (64-bit) Graphics Platform: Wayland Processors: AMD Ryzen 5 5800x3d Memory: 32 GiB of RAM Graphics Processor 1: Nvidia 4070 Super 580.95.05 closed driver Experiencing the same issue present in many games with proton-ge Wine-Wayland. Games experiencing this so far have been: valheim, peak and Gates of hell:ostfront. If i alt+tab it might go away but will reappear sometime later or if the game is paused. Operating System: Arch Linux KDE Plasma Version: 6.5.0 KDE Frameworks Version: 6.19.0 Qt Version: 6.10.0 Kernel Version: 6.17.5-arch1-1 (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 7700 8-Core Processor Memory: 34 GB of RAM (33,2 GB usable) Graphics Processor: AMD Radeon RX 6700 XT Manufacturer: Gigabyte Technology Co., Ltd. Product Name: B650 AORUS ELITE AX V2 System Version: Default string-WCP Same issue here in many games using PROTON_ENABLE_WAYLAND=1. Using Nvidia GPU. Can confirm the same issue with Overwatch 2. Removing "PROTON_ENABLE_WAYLAND=1" from the launch options resolves this issue on the latest version of Proton (proton-cachyos=2025-10-23-3). This was driving me nuts. Operating System: CachyOS Linux KDE Plasma Version: 6.5.0 KDE Frameworks Version: 6.19.0 Qt Version: 6.10.0 Kernel Version: 6.17.5-2-cachyos (64-bit) Graphics Platform: Wayland Processors: 32 × 13th Gen Intel® Core™ i9-13900K Memory: 64 GiB of RAM (62.5 GiB usable) Graphics Processor: NVIDIA GeForce RTX 4090 Manufacturer: ASUS I haven't seen this myself when playing Baldur's Gate 3 recently, but I can confirm in Horizon Zero Dawn. A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/8326 Git commit d875d0f2955cc926d48a35376773051fa6c6bb47 by Xaver Hugl. Committed on 29/10/2025 at 14:17. Pushed by zamundaaa into branch 'master'. scene/cursoritem: always reset the surface item if the surface is nullptr The previous code misbehaved when a client first destroys the cursor surface and only afterwards sets the cursor surface to null. This is because SurfaceItemWayland::m_surface is a QPointer, so comparisons with a nullptr would return true after the surface is destroyed, preventing the surface item from being deleted. M +4 -6 src/scene/cursoritem.cpp https://invent.kde.org/plasma/kwin/-/commit/d875d0f2955cc926d48a35376773051fa6c6bb47 Git commit 1c3b81e925bbc970deab14c71eee1d0f320ea8e0 by Xaver Hugl. Committed on 29/10/2025 at 19:50. Pushed by zamundaaa into branch 'Plasma/6.5'. scene/cursoritem: always reset the surface item if the surface is nullptr The previous code misbehaved when a client first destroys the cursor surface and only afterwards sets the cursor surface to null. This is because SurfaceItemWayland::m_surface is a QPointer, so comparisons with a nullptr would return true after the surface is destroyed, preventing the surface item from being deleted. (cherry picked from commit d875d0f2955cc926d48a35376773051fa6c6bb47) Co-authored-by: Xaver Hugl <xaver.hugl@kde.org> M +4 -6 src/scene/cursoritem.cpp https://invent.kde.org/plasma/kwin/-/commit/1c3b81e925bbc970deab14c71eee1d0f320ea8e0 |