There should be no difference with how mouse buttons are handled, compared to Proton 8.0, and if it changed it's probably a bug. Only thing that may have changed is related to mouse sensitivity for games using rawinput messages.
I made a very quick attempt to check out a couple of other games and it definitely seems that anything using Proton Experimental is bypassing X11 input mapping. I happen to maintain my own evdev based remapper for dealing with wayland and if I use that in X11 (although I shouldn't need to), I get my expected mouse button mappings in these games. But not without it. So I guess it's a bug.
Thanks, I will try to have a look but would you mind generating a log file with both Proton 8.0 and then Proton 9.0, with the same mouse button click sequence, with PROTON_LOG=+x11drv,+event,+cursor %command% maybe I can spot something obvious already?
Here are the logs.
I have my buttons mapped as Option "ButtonMapping" "1 3 8 4 5 6 7 2 9 10" in my xorg conf.
I ran with Proton 8, 9 Beta, and experimental in Hitman.
I clicked button 1 to launch the game from the launcher and then pressed the physical 1,2,3,4,5 buttons. The order in Proton 8 should reflect the xorg mapping although the button 8 won't show up due to being mapped to a key sequence by xbindkeys). In proton 9/experimental, you should see the physical ordering.
steam-1659040.8.log
steam-1659040.9.log
steam-1659040.exp.log
I'll just note that the X11DRV_ButtonPress lines in the logs always respect my mappings, but the game in 9/experimental is absolutely following the physical mapping - so it's bypassing X11 input for whatever reason.
Ah, turns out you can see the difference in the X11DRV_RawButtonEvent. In 8, it respects my mapping. In 9/exp it does not.
Yes, probably something got broken in the rebase, I haven't had a look yet but note that X11DRV_RawButtonEvent should be able to support device button mapping (there was a similar issue a long time ago and it's been fixed), as it is present in Proton 8.0. Also I'm thinking we simply don't really need the raw button events, it's Proton specific and I don't think it has any benefit.
I have pushed some potential fix for this to the "bleeding-edge" branch of Proton Experimental, could you please confirm whether this works for you as well?
You can select it in the Steam application properties, under the Betas tab. (Please note that you should probably get back to the default branch after testing, bleeding-edge branch is basically untested and can break things anytime)
Yes, I made a quick test with Hitman again and it is following my remappings. Thanks!
Closing as fixed in Proton 9.0 (Beta14).
proton 9.0x3 2024-04proton experimentalx3 2024-03proton 8.0x3 2024-03PROTON_LOG=+x11drv,+event,+cursorx1 2024-03
I updated to the new Proton Experimental today and I noticed that my custom mouse rebindings (that I set up in xorg.conf InputClass) no longer work. The input is read based on the base hardware buttons. This suggests that Proton is now bypassing X11 input - perhaps in preparation for native Wayland support.
Is this going to be the long term approach to input, or is it a bug?