gamescope icon indicating copy to clipboard operation
gamescope copied to clipboard

Shift key combinations and Caps Lock not working inside Gamescope (Wayland + KDE, openSUSE)

Open BASStardo23 opened this issue 1 month ago • 3 comments

Is there an existing issue for this?

  • [x] I have searched the existing issues

Are you using any gamescope patches or a forked version of gamescope?

  • [x] The issue occurs on upstream gamescope without any modifications

Current Behavior

When running any game or application inside Gamescope on openSUSE, Wayland host session, KDE Plasma, the following keyboard issues occur:

  1. Shift + key combinations do not register inside the Gamescope session. Example: Shift + W, Shift + A, Shift + any key fails inside the game, even though they work correctly on the host.

  2. Caps Lock does not toggle uppercase inside Gamescope. The LED on the keyboard toggles, but the key state is ignored inside Gamescope clients.

Keyboard input works normally outside Gamescope.

These behaviors are present both in Steam titles and non-Steam applications.

This does not match any existing issue in the tracker. Issues such as #1693 (Super key stuck), #1902 (shortcuts failing on Wayland), and #1508 (layout vs hardware mapping) are related to keyboard handling, but none describe the complete loss of Shift combinations and Caps Lock state.

Steps To Reproduce

  1. Start a Wayland session (KDE).

  2. Launch any program via Gamescope:

gamescope -- kate

or via Steam:

gamescope -w 1440 -h 1080 -S stretch -f -r 239 --force-grab-cursor -- %command%

  1. Attempt to type uppercase letters or use Shift-based input in a game/application.

  2. Observe that Caps Lock and Shift modifiers do not apply inside Gamescope.

Hardware information

- Distro: OpenSUSE Tumbleweed
- CPU: Ryzen 5600x
- GPU: Nvidia 3060ti
- Driver Version: 580.105.08

Software information

- Desktop environment: KDE Plasma 6.5.3
- Session type: Wayland
- Gamescope version: 3.16.17-1.1
- Gamescope launch command(s): gamescope -w 1440 -h 1080 -S stretch -f -r 239 --force-grab-cursor -- %command%

Which gamescope backends have the issue you are reporting?

  • [x] Wayland (default for nested gamescope)
  • [ ] DRM (default for embedded gamescope, i.e. gamescope-session)
  • [x] SDL
  • [ ] OpenVR

Logging, screenshots, or anything else

basstardo23@localhost:~> gamescope -- konsole [gamescope] [Info] console: gamescope version (gcc 15.2.0) [gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' [gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' [gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) [gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 8) [gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 9) [gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' [gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist [gamescope] [Info] scriptmgr: Loading scripts from: '/home/basstardo23/.config/gamescope/scripts' [gamescope] [Warn] scriptmgr: Directory '/home/basstardo23/.config/gamescope/scripts' does not exist [gamescope] [Info] vulkan: selecting physical device 'NVIDIA GeForce GTX 1070': queue family 2 (general queue family 0) [gamescope] [Info] vulkan: physical device supports DRM format modifiers [gamescope] [Info] wlserver: [backend/headless/backend.c:67] Creating headless backend [gamescope] [Info] xdg_backend: Seat name: seat0 [gamescope] [Error] vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344241 (VkResult: 0) [gamescope] [Error] vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344258 (VkResult: 0) [gamescope] [Info] vulkan: supported DRM formats for sampling usage: [gamescope] [Info] vulkan: AR24 (0x34325241) [gamescope] [Info] vulkan: XR24 (0x34325258) [gamescope] [Info] vulkan: AB24 (0x34324241) [gamescope] [Info] vulkan: XB24 (0x34324258) [gamescope] [Info] vulkan: RG16 (0x36314752) [gamescope] [Info] vulkan: NV12 (0x3231564E) [gamescope] [Info] vulkan: AB4H (0x48344241) [gamescope] [Info] vulkan: XB4H (0x48344258) [gamescope] [Info] vulkan: AB30 (0x30334241) [gamescope] [Info] vulkan: XB30 (0x30334258) [gamescope] [Info] vulkan: AR30 (0x30335241) [gamescope] [Info] vulkan: XR30 (0x30335258) [gamescope] [Info] wlserver: Using explicit sync when available [gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' [gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend [gamescope] [Info] wlserver: Successfully initialized libei for input emulation! [gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use [gamescope] [Info] wlserver: [xwayland/server.c:107] Starting Xwayland on :2 The XKEYBOARD keymap compiler (xkbcomp) reports:

Warning: Could not resolve keysym XF86OK Warning: Could not resolve keysym XF86GoTo Warning: Could not resolve keysym XF86VendorLogo Warning: Could not resolve keysym XF86MediaSelectProgramGuide Warning: Could not resolve keysym XF86MediaSelectProgramGuide Warning: Could not resolve keysym XF86MediaSelectHome Warning: Could not resolve keysym XF86MediaLanguageMenu Warning: Could not resolve keysym XF86MediaTitleMenu Warning: Could not resolve keysym XF86AudioChannelMode Warning: Could not resolve keysym XF86MediaSelectPC Warning: Could not resolve keysym XF86MediaSelectTV Warning: Could not resolve keysym XF86MediaSelectCable Warning: Could not resolve keysym XF86MediaSelectVCR Warning: Could not resolve keysym XF86MediaSelectVCRPlus Warning: Could not resolve keysym XF86MediaSelectSatellite Warning: Could not resolve keysym XF86MediaSelectCD Warning: Could not resolve keysym XF86MediaSelectTape Warning: Could not resolve keysym XF86MediaSelectRadio Warning: Could not resolve keysym XF86MediaSelectTuner Warning: Could not resolve keysym XF86MediaPlayer Warning: Could not resolve keysym XF86MediaSelectTeletext Warning: Could not resolve keysym XF86MediaSelectAuxiliary Warning: Could not resolve keysym XF86MediaPlaySlow Warning: Could not resolve keysym XF86NumberEntryMode Warning: Could not resolve keysym XF86RefreshRateToggle Warning: Could not resolve keysym XF86Accessibility Warning: Could not resolve keysym XF86DoNotDisturb Errors from xkbcomp are not fatal to the X server [gamescope] [Info] pipewire: stream state changed: connecting [gamescope] [Info] pipewire: stream state changed: paused [gamescope] [Info] pipewire: stream available on node ID: 76 [gamescope] [Info] xdg_backend: uMaxContentLightLevel: 80 [gamescope] [Info] xdg_backend: HDR INFO [gamescope] [Info] xdg_backend: cv_hdr_enabled: false [gamescope] [Info] xdg_backend: uTF: GAMMA22 [gamescope] [Info] xdg_backend: bExposeHDRSupport: false [gamescope] [Info] xdg_backend: uMaxContentLightLevel: 200 [gamescope] [Info] xdg_backend: HDR INFO [gamescope] [Info] xdg_backend: cv_hdr_enabled: false [gamescope] [Info] xdg_backend: uTF: GAMMA22 [gamescope] [Info] xdg_backend: bExposeHDRSupport: false [gamescope] [Info] edid: Patching res 800x1280 -> 1280x720 [gamescope] [Info] vblank: Using timerfd. [gamescope] [Warn] launch: Failed to open systemd message bus, there will be no cgroup protection for focused windows.

qt.qpa.services: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: Connection already associated with an application ID") The XKEYBOARD keymap compiler (xkbcomp) reports:

Warning: Unsupported maximum keycode 708, clipping. X11 cannot support keycodes above 255. Warning: Virtual modifier Hyper multiply defined Using 0, ignoring 0 Warning: Virtual modifier ScrollLock multiply defined Using 0, ignoring 0 Errors from xkbcomp are not fatal to the X server [gamescope] [Info] xdg_backend: Changed refresh to: 239.761hz

BASStardo23 avatar Dec 06 '25 02:12 BASStardo23

I can confirm the behavior. This happens to me as well.

theholypumpkin avatar Dec 13 '25 16:12 theholypumpkin

hmm, haven't been able to reproduce this one with KDE 6.5.4 and gamescope 3.16.17 on Arch with gamescope -- konsole for Caps Lock or gamescope -- code --wait to test shortcuts,

Image
logs:
[gamescope] [Info]  console: gamescope version 3.16.17 (gcc 15.2.1)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts'
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope'
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common'
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2)
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays'
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 8)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 9)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 10)
[gamescope] [Info]  scriptmgr: Loading scripts from: '/etc/gamescope/scripts'
[gamescope] [Warn]  scriptmgr: Directory '/etc/gamescope/scripts' does not exist
[gamescope] [Info]  scriptmgr: Loading scripts from: '/home/matt/.config/gamescope/scripts'
[gamescope] [Warn]  scriptmgr: Directory '/home/matt/.config/gamescope/scripts' does not exist
[gamescope] [Info]  vulkan: selecting physical device 'AMD Radeon RX 7900 XTX (RADV NAVI31)': queue family 1 (general queue family 0)
[gamescope] [Info]  vulkan: physical device supports DRM format modifiers
[gamescope] [Info]  wlserver: [backend/headless/backend.c:67] Creating headless backend
[gamescope] [Info]  xdg_backend: Seat name: seat0
[gamescope] [Info]  vulkan: supported DRM formats for sampling usage:
[gamescope] [Info]  vulkan:   AR24 (0x34325241)
[gamescope] [Info]  vulkan:   XR24 (0x34325258)
[gamescope] [Info]  vulkan:   AB24 (0x34324241)
[gamescope] [Info]  vulkan:   XB24 (0x34324258)
[gamescope] [Info]  vulkan:   RG16 (0x36314752)
[gamescope] [Info]  vulkan:   NV12 (0x3231564E)
[gamescope] [Info]  vulkan:   AB4H (0x48344241)
[gamescope] [Info]  vulkan:   XB4H (0x48344258)
[gamescope] [Info]  vulkan:   AB48 (0x38344241)
[gamescope] [Info]  vulkan:   XB48 (0x38344258)
[gamescope] [Info]  vulkan:   AB30 (0x30334241)
[gamescope] [Info]  vulkan:   XB30 (0x30334258)
[gamescope] [Info]  vulkan:   AR30 (0x30335241)
[gamescope] [Info]  vulkan:   XR30 (0x30335258)
[gamescope] [Info]  wlserver: Using explicit sync when available
[gamescope] [Info]  wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info]  wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info]  wlserver: Successfully initialized libei for input emulation!
[gamescope] [Info]  wlserver: [xwayland/server.c:107] Starting Xwayland on :1
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Could not resolve keysym XF86OK
> Warning:          Could not resolve keysym XF86GoTo
> Warning:          Could not resolve keysym XF86VendorLogo
> Warning:          Could not resolve keysym XF86MediaSelectProgramGuide
> Warning:          Could not resolve keysym XF86MediaSelectProgramGuide
> Warning:          Could not resolve keysym XF86MediaSelectHome
> Warning:          Could not resolve keysym XF86MediaLanguageMenu
> Warning:          Could not resolve keysym XF86MediaTitleMenu
> Warning:          Could not resolve keysym XF86AudioChannelMode
> Warning:          Could not resolve keysym XF86MediaSelectPC
> Warning:          Could not resolve keysym XF86MediaSelectTV
> Warning:          Could not resolve keysym XF86MediaSelectCable
> Warning:          Could not resolve keysym XF86MediaSelectVCR
> Warning:          Could not resolve keysym XF86MediaSelectVCRPlus
> Warning:          Could not resolve keysym XF86MediaSelectSatellite
> Warning:          Could not resolve keysym XF86MediaSelectCD
> Warning:          Could not resolve keysym XF86MediaSelectTape
> Warning:          Could not resolve keysym XF86MediaSelectRadio
> Warning:          Could not resolve keysym XF86MediaSelectTuner
> Warning:          Could not resolve keysym XF86MediaPlayer
> Warning:          Could not resolve keysym XF86MediaSelectTeletext
> Warning:          Could not resolve keysym XF86MediaSelectAuxiliary
> Warning:          Could not resolve keysym XF86MediaPlaySlow
> Warning:          Could not resolve keysym XF86NumberEntryMode
> Warning:          Could not resolve keysym XF86RefreshRateToggle
> Warning:          Could not resolve keysym XF86Accessibility
> Warning:          Could not resolve keysym XF86DoNotDisturb
Errors from xkbcomp are not fatal to the X server
[gamescope] [Info]  pipewire: stream state changed: connecting
[gamescope] [Info]  pipewire: stream state changed: paused
[gamescope] [Info]  pipewire: stream available on node ID: 61
[gamescope] [Info]  xdg_backend: uMaxContentLightLevel: 80
[gamescope] [Info]  xdg_backend: HDR INFO
[gamescope] [Info]  xdg_backend:   cv_hdr_enabled: false
[gamescope] [Info]  xdg_backend:   uTF: GAMMA22
[gamescope] [Info]  xdg_backend:   bExposeHDRSupport: false
[gamescope] [Info]  xdg_backend: uMaxContentLightLevel: 200
[gamescope] [Info]  xdg_backend: HDR INFO
[gamescope] [Info]  xdg_backend:   cv_hdr_enabled: false
[gamescope] [Info]  xdg_backend:   uTF: GAMMA22
[gamescope] [Info]  xdg_backend:   bExposeHDRSupport: false
[gamescope] [Info]  edid: Patching res 800x1280 -> 1280x720
[gamescope] [Info]  vblank: Using timerfd.
sd_bus_call(g_dbus, message, UINT64_MAX, NULL, &reply)failed with ret -30
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Virtual modifier Hyper multiply defined
>                   Using 0, ignoring 0
> Warning:          Virtual modifier ScrollLock multiply defined
>                   Using 0, ignoring 0
Errors from xkbcomp are not fatal to the X server
qt.qpa.services: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: Connection already associated with an application ID")
[gamescope] [Info]  xdg_backend: Changed refresh to: 165.058hz
^C[gamescopereaper] [Info]  reaper: Parent of gamescopereaper was killed. Killing children.
[gamescope] [Info]  launch: Primary child shut down!

are you using the Fedora-packaged version of gamescope? might be worth trying to compile gamescope yourself to see if it's an issue with the packaged version

matte-schwartz avatar Dec 13 '25 21:12 matte-schwartz

I installed the package via zypper on openSUSE Tumbleweed. Maybe it a packaging issue and should be reported to the package maintainers at openSUSE instead

theholypumpkin avatar Dec 14 '25 09:12 theholypumpkin

I'm coming in to this issue a bit late, but I'm having the same issue on openSUSE Tumbleweed - did anyone ever reach out to the package maintainers? Similarly running --force-grab-cursor.

SaxProfanityBandit avatar Jan 05 '26 17:01 SaxProfanityBandit

Been having this issue for months, making any FPS unplayable. I'm using gamescope-git from the AUR, with --force-grab-cursor as well, and --backend sdl (otherwise it crashes on Hyprland).

awsms avatar Jan 15 '26 23:01 awsms