samyazza
2009-Nov-07 15:03 UTC
[Wine] Keyboard remapping (xmodmap) does not work in Warcraft III.
I want to run my Warcraft III with better inventory shortcuts. I'm on a
laptop and I do not have a numpad, I have an Fn key I can use to access the
numbers (actually hiding under Fn+Shift+key since Ubuntu 8.10) . This
combination does nothing in Warcraft though, as if it wasn't getting any
hint of my keyboard action. Pressing only FN+key does things though, like lower
the vision angle and such, just as expected. To work this around and make things
more comfortable for my playing I've written a small script to remap the
numerical keys to other keys, using xev to retrieve their keycodes. The script
looks like this:
Code:
xmodmap -e "keycode 10 = KP_7"
xmodmap -e "keycode 11 = KP_8"
xmodmap -e "keycode 12 = KP_4"
xmodmap -e "keycode 13 = KP_5"
xmodmap -e "keycode 14 = KP_1"
xmodmap -e "keycode 15 = KP_2"
wine 'Frozen Throne.exe' -opengl
xmodmap -e "keycode 10 = 1"
xmodmap -e "keycode 11 = 2"
xmodmap -e "keycode 12 = 3"
xmodmap -e "keycode 13 = 4"
xmodmap -e "keycode 14 = 5"
xmodmap -e "keycode 15 = 6"
Here's a sample xev output of pressing FN+shift+i:
Code:
KeyPress event, serial 31, synthetic NO, window 0x3c00001,
root 0x13b, subw 0x0, time 9969781, (722,546), root:(726,571),
state 0x2000, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 34, synthetic NO, window 0x3c00001,
root 0x13b, subw 0x0, time 9969977, (722,546), root:(726,571),
state 0x2001, keycode 84 (keysym 0xffb5, KP_5), same_screen YES,
XLookupString gives 1 bytes: (35) "5"
XmbLookupString gives 1 bytes: (35) "5"
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x3c00001,
root 0x13b, subw 0x0, time 9970055, (722,546), root:(726,571),
state 0x2001, keycode 84 (keysym 0xffb5, KP_5), same_screen YES,
XLookupString gives 1 bytes: (35) "5"
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x3c00001,
root 0x13b, subw 0x0, time 9970178, (722,546), root:(726,571),
state 0x2001, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Running Warcraft with this script doesn't change anything though, pressing
the keys 1-6 has no effect and I see the following on the console:
Code:
err:ole:CoCreateInstance apartment not initialised
fixme:advapi:SetSecurityInfo stub
fixme:win:EnumDisplayDevicesW ((null),0,0x33f270,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33f608,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33f640,0x00000000), stub!
fixme:dsalsa:IDsDriverBufferImpl_SetVolumePan (0x15e3c8,0x1625c8): stub
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0x4150415, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0x4150415, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0x4150415, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0x4150415, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0x4150415, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0x4150415, 0000: semi-stub!
The keyboard fixmes appear when I launch a new game. I'm confused with what
is going on.
OS: Ubuntu 8.10
Wine version: wine-1.1.32
I know there's a bug with the whole keyboard controlled mouse cursor thingy.
I have that turned off, just as it should be, so it's not the issue.
Please help me remap the numpad keys to 1-6 and make wine understand the
remapping.
James McKenzie
2009-Nov-07 23:32 UTC
[Wine] Keyboard remapping (xmodmap) does not work in Warcraft III.
samyazza wrote:> I want to run my Warcraft III with better inventory shortcuts. I'm on a laptop and I do not have a numpad, I have an Fn key I can use to access the numbers (actually hiding under Fn+Shift+key since Ubuntu 8.10) . This combination does nothing in Warcraft though, as if it wasn't getting any hint of my keyboard action. Pressing only FN+key does things though, like lower the vision angle and such, just as expected. To work this around and make things more comfortable for my playing I've written a small script to remap the numerical keys to other keys, using xev to retrieve their keycodes. The script looks like this: > >[Much code removed to shorten my reply. It is relevant to a bug report.]> Please help me remap the numpad keys to 1-6 and make wine understand the remapping. > >Please help us help you by filing a bug report with all of this wonderful information. A developer may pick the report up and fix this, permanently for you. James McKenzie
Gert van den Berg
2009-Nov-08 17:33 UTC
[Wine] Keyboard remapping (xmodmap) does not work in Warcraft III.
On Sat, Nov 7, 2009 at 17:03, samyazza <wineforum-user at winehq.org> wrote:> I want to run my Warcraft III with better inventory shortcuts. I'm on a laptop and I do not have a numpad, I have an Fn key I can use to access the numbers (actually hiding under Fn+Shift+key since Ubuntu 8.10) . This combination does nothing in Warcraft though, as if it wasn't getting any hint of my keyboard action. Pressing only FN+key does things though, like lower the vision angle and such, just as expected. To work this around and make things more comfortable for my playing I've written a small script to remap the numerical keys to other keys, using xev to retrieve their keycodes. The script looks like this: >Workaround: Warcraft supports its own key remapping, customkeys.txt. http://warkeys.sourceforge.net/ is a utility to generate a custmkeys.txt for you. Gert