Overwatch Controls Key Mapping Is Bugged

I’m having a very annoying issue with Overwatch right now. it will not let me remap my keys to the ones that are suppose to be defaults. It’s forcing my keybinds for Crouch to RControl key which is NOT the default for Overwatch, LControl is the default, but for some reason it keeps forcing my key mapping to RControl. This also happen for just about every other key, it will not save my configured key inputs to the ones that I have set.

If I press Left Control key it says LControl key bound, but then I exit out the Settings menu and go back into it again it never changed anything to the key that I specifically set it on, because it forced it back on to RControl. again. I tried assigning the key to Left Alt key and it forces it to Right Alt key instead, it’s completely ignoring any set key I’ve set and I cannot figure out how to force it back to it’s proper defaults. I’m right handed user, not left handed user, I can’t just stretch my fingers across my keyboard just to high RControl key while playing every time I want to use Crouch. I think this is an issue with Lutris itself not properly mapping my keyboard to the game making it look like I don’t have a LControl Key or LAlt key.

This issue pretty much makes the game unplayable for me because I can’t have my keys bind to the proper keys. Hitting Reset Defaults in the Controls Settings menu still forces the key to remain bounded on RControl key. I can unbind the key right by right-clicking it, exit the menu, return and then try adding it with the proper key but again it doesn’t save it, just forces it back to RControl key. I’ve been trying to figure out if there were some Start-Up Command Line arguments that can be put on Overwatch from BattleNet client, but it does nothing.

I had tried adding this

XMODIFIERS='' %command%

since that usually works for certain Unity games on Steam having keyboard mapping issues with iBus. But that doesn’t work for Overwatch in this case. Not even in the Lutris command line arguments. Tried adding DLL Overrides into the wineprefix but seems to have no effect on the game whatsoever.

Wine version: tkg3.19-x86_64 (default)
Lutris: 0.4.21.1

OS: Linux Mint 19 (64-bit) Cinnamon

A workaround I used was to map my Ctrl-L to Ctrl-R. It’s not perfect; some applications want Ctrl-L for hotkeys.

First find out which keycode maps to Ctrl-L, and which maps to Ctrl-R with:

xmodmap -pke

Then overwrite it to be Ctrl-R.

xmodmap -e “keycode 37 = Control_R NoSymbol Control_R”

(will last until your next log out)

Doesn’t seem like a very good way to go about it if it’s something you have to keep changing it for everything, if it can be changed temporarily for when the game starts up it might be a better option, say as a startup script or something, and then changes it back when you quit the game.

Running into the exact same issue. Try to rebind crouch to LCONTROL from RCONTROL, the setting isn’t preserved when I exit and re-enter the menu.

OS: Ubuntu 18.10
Wine: tkg-4.0-x86_64

** Edit **
Apparently this is a known issue: https://github.com/lutris/lutris/wiki/Game:-Overwatch#game-issues

Certain keys may not save when bound in the settings menu. One workaround is to change the keybindings from outside of the game. For example, if you can’t assign Left Control to crouch, try assigning Right Control in-game, and then temporarily swapping them by running: xmodmap -e “keycode 37 = Control_R” xmodmap -e “keycode 105 = Control_L”

Sorry to necro this thread but I figure it’s worth keeping the related discussion consolidated. Does anyone know whether that remapping (outside the game) can be automated at launch, and then automatically disabled when the game closes? I’m having this issue and would love to not have to mess with it every time I want to play, and change it back whenever I’m done.

While I realize it’s not much, just to show it’s worth something to me I’d be happy to tip $5 in Bitcoin Cash to anyone who comes up with an automated workflow and is willing to walk me through implementing it.

Thanks for any help!

As far as I’m aware Overwatch doesn’t save Keybind configs to the installed directory of the game, they’re saved on Blizzard’s own servers. So I don’t really know of a way how to even override this behaviour with this game directly other than using the key remapping from Terminal before launching the game as posted by DigiDigi’s post.

You could however make a shell script to execute with the game upon launch to remap the keys LCONTROL to RCONTROL key, but after you close the game there’d be no way for that to revert to it’s original keymap after you close the game since the script would only execute one time when starting the game, and would have to manually set it back yourself.

I wrote a simple script that will handle the xmodmap for you. I’ve tested it out and when you add it to

Configure Overwatch > System options > Pre-launch Command

it works great.

add this to a file and make sure you chmod u+x to make it excutable

#!/bin/bash
while ! pidof Overwatch.exe >> /dev/null ;
do
sleep 1
done
#after Overwatch.exe starts
owpid=pidof Overwatch.exe
sleep 10s
xmodmap -e “keycode 37 = Control_R NoSymbol Control_R”
tail --pid=$owpid -f /dev/null
xmodmap -e “keycode 37 = Control_L NoSymbol Control_L”

1 Like

I ended up writing to separate scripts one for start and one for stop command execution, but this is nicer.