Double Monitor Issue: Playing fullscreen games mouse cursor going to other screen and minimize the game

Weird issue i just encounter. I have been playing the all steam games flawlessly, i did download few couple more steam games as well. Now whenever i play a game on Fullscreen Borderless or Full screen my mouse cursor goes to my other monitor. Which is on FPS or Moba games its just stop to rotate or moving around the map. I can’t play FPS games anymore.

System:
Kernel: 6.14.5-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 15.1.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=fac063d7-c062-4db4-9585-42329b5d12fe rw rootflags=subvol=@
quiet loglevel=3 ibt=off
Desktop: KDE Plasma v: 6.3.5 tk: Qt v: N/A info: frameworks v: 6.13.0
wm: kwin_wayland vt: 1 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop System: Gigabyte product: B550 GAMING X V2 v: -CF
serial: <superuser required>
Mobo: Gigabyte model: B550 GAMING X V2 v: x.x serial: <superuser required>
uuid: <superuser required> UEFI: American Megatrends LLC. v: FE
date: 03/22/2024
CPU:
Info: model: AMD Ryzen 5 5600X bits: 64 type: MT MCP arch: Zen 3+ gen: 3
level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)
model-id: 0x21 (33) stepping: 2 microcode: 0xA201210
Topology: cpus: 1x dies: 1 clusters: 1 cores: 6 threads: 12 tpc: 2
smt: enabled cache: L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB
desc: 6x512 KiB L3: 32 MiB desc: 1x32 MiB
Speed (MHz): avg: 1738 min/max: 550/4654 boost: enabled scaling:
driver: amd-pstate-epp governor: performance cores: 1: 1738 2: 1738 3: 1738
4: 1738 5: 1738 6: 1738 7: 1738 8: 1738 9: 1738 10: 1738 11: 1738 12: 1738
bogomips: 88635
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3
Vulnerabilities: <filter>
Graphics:
Device-1: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX
470/480/570/570X/580/580X/590] vendor: Sapphire Nitro+ driver: amdgpu
v: kernel arch: GCN-4 code: Arctic Islands process: GF 14nm built: 2016-20
pcie: gen: 3 speed: 8 GT/s lanes: 16 ports: active: HDMI-A-1,HDMI-A-2
empty: DP-1,DP-2,DVI-D-1 bus-ID: 05:00.0 chip-ID: 1002:67df class-ID: 0300
temp: 38.0 C
Display: wayland server: X.org v: 1.21.1.16 with: Xwayland v: 24.1.6
compositor: kwin_wayland driver: X: loaded: amdgpu unloaded: modesetting
alternate: fbdev,vesa dri: radeonsi gpu: amdgpu d-rect: 3360x1080
display-ID: 0
Monitor-1: HDMI-A-1 pos: right model: Samsung SyncMaster serial: <filter>
built: 2008 res: mode: 1440x900 hz: 75 scale: 100% (1) dpi: 89 gamma: 1.35
size: 410x257mm (16.14x10.12") diag: 484mm (19.1") ratio: 16:10 modes:
max: 1440x900 min: 720x400
Monitor-2: HDMI-A-2 pos: primary,left model: AOC 2357M serial: <filter>
built: 2012 res: mode: 1920x1080 hz: 60 scale: 100% (1) dpi: 96 gamma: 1.2
size: 509x286mm (20.04x11.26") diag: 584mm (23") ratio: 16:9 modes:
max: 1920x1080 min: 720x400
API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: radeonsi
wayland: drv: radeonsi x11: drv: radeonsi
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.0.5-arch1.1
glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 590 Series (radeonsi
polaris10 ACO DRM 3.61 6.14.5-zen1-1-zen) device-ID: 1002:67df
memory: 7.81 GiB unified: no display-ID: :1.0
API: Vulkan v: 1.4.309 layers: 13 device: 0 type: discrete-gpu name: AMD
Radeon RX 590 Series (RADV POLARIS10) driver: mesa radv v: 25.0.5-arch1.1
device-ID: 1002:67df surfaces: xcb,xlib,wayland device: 1 type: cpu
name: llvmpipe (LLVM 19.1.7 256 bits) driver: mesa llvmpipe
v: 25.0.5-arch1.1 (LLVM 19.1.7) device-ID: 10005:0000
surfaces: xcb,xlib,wayland
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor gpu: corectrl wl: wayland-info
x11: xdpyinfo, xprop, xrandr
Audio:
Device-1: Advanced Micro Devices [AMD/ATI] Ellesmere HDMI Audio [Radeon RX
470/480 / 570/580/590] vendor: Sapphire driver: snd_hda_intel v: kernel
pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 05:00.1 chip-ID: 1002:aaf0
class-ID: 0403
Device-2: Advanced Micro Devices [AMD] Starship/Matisse HD Audio
vendor: Gigabyte driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
lanes: 16 bus-ID: 07:00.4 chip-ID: 1022:1487 class-ID: 0403
API: ALSA v: k6.14.5-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 1.4.2 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
vendor: Gigabyte driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
lanes: 1 port: f000 bus-ID: 04:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp4s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Info: services: NetworkManager,systemd-timesyncd
Drives:
Local Storage: total: 931.51 GiB used: 210.29 GiB (22.6%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: KIOXIA
model: EXCERIA PLUS G2 SSD size: 931.51 GiB block-size: physical: 512 B
logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
fw-rev: ECFA11.4 temp: 47.9 C scheme: GPT
Partition:
ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 210.29 GiB (22.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 608 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 210.29 GiB (22.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-4: /var/log raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 210.29 GiB (22.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 210.29 GiB (22.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 31.26 GiB used: 157.2 MiB (0.5%)
priority: 100 comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842
max-streams: 12 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 56.5 C mobo: 33.0 C gpu: amdgpu temp: 38.0 C
Fan Speeds (rpm): N/A gpu: amdgpu fan: 3048
Info:
Memory: total: 32 GiB available: 31.26 GiB used: 2.95 GiB (9.4%)
Processes: 408 Power: uptime: 1m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 12.48 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
tool: systemctl
Packages: pm: pacman pkgs: 1860 libs: 560 tools: octopi,paru Compilers:
clang: 19.1.7 gcc: 15.1.1 Shell: garuda-inxi default: fish v: 4.0.2
running-in: konsole inxi: 3.3.38
Garuda (2.7.2-1):
System install date:     2025-05-08
Last full system update: 2025-05-09
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       No/Undetected
Failed units:
1 Like

Hey,

yeah this can happen on borderless fullscreen with multiple monitors and proton does not support “real” fullscreen, afaik.

Have you tried running them through gamescope using --force-grab-cursor ?

2 Likes


I had no issue at previous day. Suddenly game start to be like that. Even i did use Snapper Tools for backing before install new game on steam yet its still like this.

I found the issue for Cs2. I did use Full screen / Fullscreen borderless before now I did select Windowed mode and FullScreen again.

When i open the dota 2 i did tried same thing it didint work out sadly. When i open the dota menu my cursor can go to other monitor, In game i have no longer that issue but i still need to fix that because yesterday even in match it was going to other monitor.

Here this what happend when i start to PC today.



Something issue with steam i do believe also it does reset game windowed/fullscreen options. Everytime i open cs2 i do window and re-fullscreen mouse will go to other monitor but in game mouse stand still.
edit: i manage to remove boxtron what is come with steam. i dont get pop up anymore but my main issue still continue.

Have to agree with the error message, CS won’t run on DosBox… :wink:

Seriously though, looks like Steam is trying to run the game with the wrong compatibilty tool. Config might have gotten changed for some reason.

Check the game properties in Steam, Compatibility tab. Select Proton Experimental. You can also check the default that is selected in File → Options.

2 Likes

Still Same Proton Exp or Proton Hotfix doesn’t matter. Sadly.

If you choose X11 at login, does it still happen? Does switching to and from Borderless Window help at least temporarily?

2 Likes

Nope not a difference also when i switch at during session. I got long dragon loading and blackscreen with mouse later i restart my computer tried x11 still same.

Have you tried running CS2 through gamescope with --force-grab-cursor?

Couldn’t find that in any of your answers. Does that change anything?

3 Likes

No i havent, I’m trying to figure it out why this is happend. It was working for 7 day flawless why it broken at 7th day. If i had that issue i suppose to have that issue at day 1.

Can you in steam when you are in the game TAB
> click on the small “i” icon and make a screenshot?

There should be mentioned in what compatibility mode is the game running.

Also please if you have any steam launch options for that game set, copy paste them here.

For game not running on steam, usually its the problem of wrong compatibility mode.
For mouse cursor outside border if you run multi-monitor setup is a lot of times due to cursor placement.

1 Like

I couldnt find that icon exactly. Also i did try the
There is a console commands if you need

Summary

ChangeGameUIState: CSGO_GAME_UI_STATE_INGAME → CSGO_GAME_UI_STATE_PAUSEMENU
[Developer] Failed to find ui preference ‘spec_autodirector_cameraman’
ChangeGameUIState: CSGO_GAME_UI_STATE_PAUSEMENU → CSGO_GAME_UI_STATE_INGAME
ChangeGameUIState: CSGO_GAME_UI_STATE_INGAME → CSGO_GAME_UI_STATE_PAUSEMENU
[Developer] Failed to find ui preference ‘spec_autodirector_cameraman’
ChangeGameUIState: CSGO_GAME_UI_STATE_PAUSEMENU → CSGO_GAME_UI_STATE_INGAME
ChangeGameUIState: CSGO_GAME_UI_STATE_INGAME → CSGO_GAME_UI_STATE_PAUSEMENU
[Developer] Failed to find ui preference ‘spec_autodirector_cameraman’
[Developer] Failed to find ui preference ‘panorama_play_movie_ambient_sound’
[Client] Unable to write video config convar videocfg_dynamic_shadows
[SplitScreen] Writing configuration for slot 0
[SplitScreen] Saved ‘cs2_user_keys.vcfg’ to SteamRemoteStorage, 128 bytes OK
[SplitScreen] Saved user config file ‘cfg/cs2_user_keys_0_slot0.vcfg’: type 1
[SplitScreen] Saved user config file ‘cfg/cs2_user_keys_0_slot0.vcfg_lastclouded’: type 3
[SplitScreen] Saved ‘cs2_user_convars.vcfg’ to SteamRemoteStorage, 3259 bytes OK
[SplitScreen] Saved user config file ‘cfg/cs2_user_convars_0_slot0.vcfg’: type 1
[SplitScreen] Saved user config file ‘cfg/cs2_user_convars_0_slot0.vcfg_lastclouded’: type 3
[SplitScreen] Writing configuration for slot 0
[SplitScreen] Saved ‘cs2_user_keys.vcfg’ to SteamRemoteStorage, 128 bytes OK
[SplitScreen] Saved user config file ‘cfg/cs2_user_keys_0_slot0.vcfg’: type 1
[SplitScreen] Saved user config file ‘cfg/cs2_user_keys_0_slot0.vcfg_lastclouded’: type 3
[SplitScreen] Saved ‘cs2_user_convars.vcfg’ to SteamRemoteStorage, 3259 bytes OK
[SplitScreen] Saved user config file ‘cfg/cs2_user_convars_0_slot0.vcfg’: type 1
[SplitScreen] Saved user config file ‘cfg/cs2_user_convars_0_slot0.vcfg_lastclouded’: type 3
ChangeGameUIState: CSGO_GAME_UI_STATE_PAUSEMENU → CSGO_GAME_UI_STATE_INGAME
ChangeGameUIState: CSGO_GAME_UI_STATE_INGAME → CSGO_GAME_UI_STATE_PAUSEMENU
[Developer] Failed to find ui preference ‘spec_autodirector_cameraman’
ChangeGameUIState: CSGO_GAME_UI_STATE_PAUSEMENU → CSGO_GAME_UI_STATE_INGAME

Dont have anything only console and it was open for since day 1.

If i cant figure it out why its happend i will use Gamescope from octopi. But i did tried to switch different compatibility for solve this nothing helped.

image

This icon, once you click it make a pic from the UI bellow the Game official artwork will be a line similar to this

image

You also dont need to run game-scope if you want to use the parameter
--force-grab-cursor

gamescope is just another nested session inside the DE. Try the force grap cursor first without gamescope if it helps.

3 Likes

Now i see Its at library.


This is actually happend when i install v rising it comes with sniper i did delete sniper but it didint helped i dont want to use sniper. Now all of my steam games uses sniper. I have another game on steam uses proton hotfix i have no issue with that. So i changed all of my games to proton hotfix you can force the game with specific compatibility section.

Where i put this in here ?


or is there any sudo pacman --force-grab-cursor thing ?

That is the place. However, note the double dash in the beginning.

I believe you do need gamescope for this, because it is a gamescope parameter. Doing it like @Seimus recommended would send the parameter to the game, which probably doesn’t change anything. But feel free to give it try.

To make it easier: Using gamescope just means using this as launch options:

gamescope -w 3440 -h 1440 -f -r 165 --force-grab-cursor -- %command%

Replace the numbers with your actual screen width, height, and refresh rate, respectively.
Make sure to use this exactly as written here. Uppercase/lowercase does make a difference, the spaces are relevant, and even the double dash before the command placeholder has a meaning.

If the game does not start at all, install gamescope using sudo pacman -S gamescope.

2 Likes

I did install gamescope then i use terminal “gamescope -w 1920 -h 1080 -f -r 60 --force-grab-cursor – %command%” i wrote this without quotes. I even try to do with program name like %counter-strike 2% it didint work out for me. this is error i got:

Summary

─λ gamescope -w 1920 -h 1080 -f -r 60 --force-grab-cursor – %command%
[gamescope] [Info] console: gamescope version 3.16.4+ (gcc 15.1.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/valve.steamdeck.lcd.lua’ (id: 7)
[gamescope] [Info] scriptmgr: Running script file ‘/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua’ (id: 8)
[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/archlinux/.config/gamescope/scripts’
[gamescope] [Warn] scriptmgr: Directory ‘/home/archlinux/.config/gamescope/scripts’ does not exist
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
[gamescope] [Info] vulkan: selecting physical device ‘AMD Radeon RX 590 Series (RADV POLARIS10)’: queue family 1 (general queue family 0)
[gamescope] [Info] vulkan: physical device does not support 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: 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: [wayland] unable to lock lockfile /run/user/1000/gamescope-0.lock, maybe another compositor is running
[gamescope] [Info] wlserver: Running compositor on wayland display ‘gamescope-1’
[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 inuse
[gamescope] [Info] wlserver: [xwayland/server.c:107] Starting Xwayland on :3
The XKEYBOARD keymap compiler (xkbcomp) reports:

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: 122
[gamescope] [Info] vblank: Using timerfd.
[gamescopereaper] [Error] process: Failed to start process “%command%”: No such file or directory
[gamescope] [Info] launch: Primary child shut down!
(EE) failed to read Wayland events: Broken pipe

%100 Sure its a proton issue, i guess i will wait another update ai and google says.
Also i run guildwars 2 from steam i have no issue at all but it does use different type of proton. When guildwars 2 proton on others either i got VAC error or its just same with new proton version.

%command% is a literal. Do not replace this with the program name.

And this command goes into the field in the Steam game properties, you don’t run it from the command line.

When i done that game wasnt loading at all. Its okay i will wait update.

I know it’s not exactly a ‘fix’, more like a band-aid, but you could always change your monitors layouts in the kde settings, put one screen in the corner of the other, just conected by the vertice, that will make it quite hard for your mouse to wander to the other screen.

Now, u can do this setup only when gaming, or leave it that way, it takes some time to adapt, but it is fine. You can still move your mouse to the other screen, it’s the setup I use.