Change keyboard layout in Wine?

I've got some games running in Wine, but I can't figure out how to change the keyboard layout. By default, I use the dvorak layout in Ubuntu, which isn't very friendly for most games. I can change it back to QWERTY in Ubuntu, but when I fire up a game, it stays with my default dvorak. How can I change to QWERTY inside my wine application?


Solution 1:

A lot of wine programs use the X keyboard layout instead of the window manager's layout. You have to change it by running

setxkbmap us

Then change back with

setxkbmap us dvorak

Solution 2:

In case someone has multiple keyboard layouts - this solution worked for me.

I have two keyboard layouts: English (us) and Ukrainian (uk). The first one was set as default in system settings. However, in Wine games the letter keys (q,w,e,r,t,y,etc.) didn't work at all.

Based on Alex's answer, I found the way to determine my current X keyboard layout settings:

setxkbmap -v

It showed me the following:

Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete+numpad(microsoft)
compat:     complete
symbols:    pc+ua+us:2+inet(evdev)+group(alt_shift_toggle)
geometry:   pc(pc101)

I noticed that the symbols line has ua (not us) on the first place. Assuming that Wine always uses the first specified layout, I just needed to change the layout precedence:

setxkbmap us,ua

And it worked. However, after reboot it was reset back to its default state. Thus, I have to do it each time after boot. I'll try to find a way to store those settings by default.