Portál AbcLinuxu, 7. května 2025 09:57

Dotaz: Wine Flashpoint Resistance Problém klávesnice

pepe_ avatar 6.1.2013 18:58 pepe_ | skóre: 48
Wine Flashpoint Resistance Problém klávesnice
Přečteno: 458×
Odpovědět | Admin

Zdravim , do wine-1.5.20 sem si nainstaloval tuto stařičkou hru , nastavil , spustil a vše funguje jak má až na jednu velmi důležitou věc a to klávesnice.

Pro velení jednotce se používají příkazy zadávané pomocí kláves  (ěščřžýáíé) teda ve hře mají fungovat jako 1-0 . No ale ve hře klávesi nereagují ať si nastavím jakoukoliv klávesnici. Ve hře nelze použít numerická klávesnice neb má vlastní funkce. Ovládání ěščřžýáíé nefunguje a nelze jej přemapovat. Ve windows to normálně funguje.

 

Poradíte nějaký parametr pro wine , Kde4 či Xka pro to aby to fungovalo jako ve Win ?

 

Na google jsem hledal ale nic o klávesnici vs wine vs resistance nenašel.

 

Děkuji za rady.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Max avatar 6.1.2013 20:44 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mně vždy fungovalo přepnutí klávesnice do EN a následně spuštění hry.
Zdar Max
Měl jsem sen ... :(
pepe_ avatar 7.1.2013 07:02 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice

To sem skoušel jako první a žádná změna.

pepe_ avatar 7.1.2013 07:39 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice

Upřesňuji , změna je taková že ve hře již nepíšou ěščřž ale 23456 to ale nemění že ovládání stále nefunguje.

7.1.2013 14:11 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná tedy ještě o jeden krok níže. Tedy: Přepnout do anglické klávesnice, spustit terminálové okno, (zkontrolovat rozložení) v něm spustit wine a hru. Moje představa o obsluze klávesnice je taková, že drivery/(překlady kódování) jsou dosti abstraktní a dají se vršit na sebe. Což krásně funguje pokud to aplikace používá. Stará hra provede něco jako "přímý přístup na HW", což ve wine provede přeskočení nějaké transformační vrstvy. (a moc není poznat jaké.) Vlastně se to že to nefunguje by mohlo být proto že ve wine je něco jako "emulace anglické klávesnice na české klávesnici", ve chvili kdy hra sáhne "na HW" tak dostane odpověď českých znaků. zkuste celé prostředí hodit do angličtiny, třeba na nějakém testovacím uživateli.
pepe_ avatar 9.1.2013 10:25 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice

Tak sem vyzkoušel nového uživatele celého v EN a je to stejné.

Funguje pouze klávesa  1!+  a od dvojky k nule už ne. Vyzkoušel sem i downgradovat wine a je to stále stejné. :(

9.1.2013 17:53 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice
No pak záleží jak moc se to chcete dovědět, co se děje. Pokud moc ne, a jen si trochu zahrát, tak bych zvirtualizoval XP a v nich si zahrál. Pokud moc ano, tak zahloubat se do dokumentace wine a najít jak se zapne logování událostí na klávesnici. Bylo by potřeba zjistit jakou klávesu si wine myslí že dostává, možná hra monitoruje přímo HW stisky kláves, ani ne písmena z driveru klávesnice. Popřípadě pustit wine s pomocí strace a tím pádem monitorovat, co se volá při mačkání kláves. (ale vyznat se ve výpisu není moc jednoduché)
pepe_ avatar 9.1.2013 22:42 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice

trace:key:X11DRV_KeyEvent type 2, window 4800002, state 0x0010, keycode 68
trace:key:X11DRV_KeyEvent XmbLookupString needs 0 byte(s)
trace:key:X11DRV_KeyEvent nbyte = 0, status 3
trace:key:X11DRV_KeyEvent KeyPress : keysym=ffbf (F2), # of chars=0 / ""
trace:key:EVENT_event_to_vkey e->keycode = 68
trace:key:X11DRV_KeyEvent keycode 68 converted to vkey 0x71 scan 3c
trace:keyboard:update_lock_state Adjusting NumLock state (00)
trace:key:X11DRV_send_keyboard_input hwnd 0x20026 vkey=0090 scan=0045 flags=0001
trace:key:X11DRV_send_keyboard_input hwnd 0x20026 vkey=0090 scan=0045 flags=0003
trace:key:X11DRV_send_keyboard_input hwnd 0x20026 vkey=0071 scan=003c flags=0000
trace:keyboard:MapVirtualKeyExW (71, 2, 0x4050405)
trace:keyboard:X11DRV_MapVirtualKeyEx wCode=0x71, wMapType=2, hkl 0x4050405
trace:key:EVENT_event_to_vkey e->keycode = 68
trace:keyboard:X11DRV_MapVirtualKeyEx Found keycode 68
trace:keyboard:X11DRV_MapVirtualKeyEx returning 0x0.
trace:key:TranslateMessage Translating key VK_NUMLOCK (0090), scancode 0145
trace:key:X11DRV_ToUnicodeEx NumLockMask = 0010
trace:key:X11DRV_ToUnicodeEx AltGrMask = 0010
trace:key:X11DRV_ToUnicodeEx (0090, 0145) : faked state = 0x0010
trace:key:EVENT_event_to_vkey e->keycode = 77
trace:key:X11DRV_ToUnicodeEx Found keycode 77
trace:key:X11DRV_ToUnicodeEx type 2, window 4800002, state 0x0010, keycode 77
trace:key:X11DRV_ToUnicodeEx XmbLookupString needs 0 byte(s)
trace:key:X11DRV_ToUnicodeEx nbyte = 0, status 0x3
trace:key:X11DRV_ToUnicodeEx KeyPress : keysym=ff7f (Num_Lock), # of chars=0 / ""
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff7f
trace:key:X11DRV_ToUnicodeEx returning 0 with L""
trace:key:TranslateMessage Translating key VK_F2 (0071), scancode 003c
trace:key:X11DRV_ToUnicodeEx NumLockMask = 0010
trace:key:X11DRV_ToUnicodeEx AltGrMask = 0010
trace:key:X11DRV_ToUnicodeEx (0071, 003C) : faked state = 0x0010
trace:key:EVENT_event_to_vkey e->keycode = 68
trace:key:X11DRV_ToUnicodeEx Found keycode 68
trace:key:X11DRV_ToUnicodeEx type 2, window 4800002, state 0x0010, keycode 68
trace:key:X11DRV_ToUnicodeEx XmbLookupString needs 0 byte(s)
trace:key:X11DRV_ToUnicodeEx nbyte = 0, status 0x3
trace:key:X11DRV_ToUnicodeEx KeyPress : keysym=ffbf (F2), # of chars=0 / ""
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ffbf
trace:key:X11DRV_ToUnicodeEx returning 0 with L""
trace:key:X11DRV_KeyEvent type 3, window 4800002, state 0x0010, keycode 68
trace:key:X11DRV_KeyEvent nbyte = 0, status 0
trace:key:X11DRV_KeyEvent KeyRelease : keysym=ffbf (F2), # of chars=0 / ""
trace:key:EVENT_event_to_vkey e->keycode = 68
trace:key:X11DRV_KeyEvent keycode 68 converted to vkey 0x71 scan 3c
trace:key:X11DRV_send_keyboard_input hwnd 0x20026 vkey=0071 scan=003c flags=0002
trace:keyboard:MapVirtualKeyExW (71, 2, 0x4050405)
trace:keyboard:X11DRV_MapVirtualKeyEx wCode=0x71, wMapType=2, hkl 0x4050405
trace:key:EVENT_event_to_vkey e->keycode = 68
trace:keyboard:X11DRV_MapVirtualKeyEx Found keycode 68
trace:keyboard:X11DRV_MapVirtualKeyEx returning 0x0.
trace:key:X11DRV_KeyEvent type 2, window 4800002, state 0x0010, keycode 11
trace:key:X11DRV_KeyEvent XmbLookupString needs 2 byte(s)
trace:key:X11DRV_KeyEvent nbyte = 2, status 4
trace:key:X11DRV_KeyEvent KeyPress : keysym=1ec (ecaron), # of chars=2 / "\xc4\x9b"
trace:key:EVENT_event_to_vkey e->keycode = 11
trace:key:X11DRV_KeyEvent keycode 11 converted to vkey 0x32 scan 60
trace:key:X11DRV_send_keyboard_input hwnd 0x20026 vkey=0032 scan=0060 flags=0000
trace:keyboard:MapVirtualKeyExW (32, 2, 0x4050405)
trace:keyboard:X11DRV_MapVirtualKeyEx wCode=0x32, wMapType=2, hkl 0x4050405
trace:key:EVENT_event_to_vkey e->keycode = 11
trace:keyboard:X11DRV_MapVirtualKeyEx Found keycode 11
trace:keyboard:X11DRV_MapVirtualKeyEx returning 0x11a.
trace:key:TranslateMessage Translating key VK_2 (0032), scancode 0060
trace:key:X11DRV_ToUnicodeEx NumLockMask = 0010
trace:key:X11DRV_ToUnicodeEx AltGrMask = 0010
trace:key:X11DRV_ToUnicodeEx (0032, 0060) : faked state = 0x0010
trace:key:EVENT_event_to_vkey e->keycode = 11
trace:key:X11DRV_ToUnicodeEx Found keycode 11
trace:key:X11DRV_ToUnicodeEx type 2, window 4800002, state 0x0010, keycode 11
trace:key:X11DRV_ToUnicodeEx XmbLookupString needs 2 byte(s)
trace:key:X11DRV_ToUnicodeEx nbyte = 2, status 0x4
trace:key:X11DRV_ToUnicodeEx KeyPress : keysym=1ec (ecaron), # of chars=2 / "\xc4\x9b"
trace:key:X11DRV_ToUnicodeEx Translating char 0xc4 to unicode
trace:key:X11DRV_ToUnicodeEx returning 1 with L"\011b"
trace:key:TranslateMessage 1 -> PostMessageW(0x20026,WM_CHAR,011b,00600001)
trace:key:X11DRV_KeyEvent type 3, window 4800002, state 0x0010, keycode 11
trace:key:X11DRV_KeyEvent nbyte = 2, status 0
trace:key:X11DRV_KeyEvent KeyRelease : keysym=1ec (ecaron), # of chars=2 / "\xc4\x9b"
trace:key:EVENT_event_to_vkey e->keycode = 11
trace:key:X11DRV_KeyEvent keycode 11 converted to vkey 0x32 scan 60
trace:key:X11DRV_send_keyboard_input hwnd 0x20026 vkey=0032 scan=0060 flags=0002
trace:keyboard:MapVirtualKeyExW (32, 2, 0x4050405)
trace:keyboard:X11DRV_MapVirtualKeyEx wCode=0x32, wMapType=2, hkl 0x4050405
trace:key:EVENT_event_to_vkey e->keycode = 11
trace:keyboard:X11DRV_MapVirtualKeyEx Found keycode 11
trace:keyboard:X11DRV_MapVirtualKeyEx returning 0x11a.
trace:key:X11DRV_KeyEvent type 2, window 4800002, state 0x0010, keycode 64
trace:key:X11DRV_KeyEvent XmbLookupString needs 0 byte(s)
trace:key:X11DRV_KeyEvent nbyte = 0, status 3
trace:key:X11DRV_KeyEvent KeyPress : keysym=ffe9 (Alt_L), # of chars=0 / ""
trace:key:EVENT_event_to_vkey e->keycode = 64
trace:key:X11DRV_KeyEvent keycode 64 converted to vkey 0xA4 scan 38
trace:key:X11DRV_send_keyboard_input hwnd 0x20026 vkey=00a4 scan=0038 flags=0000
trace:keyboard:MapVirtualKeyExW (A4, 2, 0x4050405)
trace:keyboard:X11DRV_MapVirtualKeyEx wCode=0xa4, wMapType=2, hkl 0x4050405
trace:key:EVENT_event_to_vkey e->keycode = 64
trace:keyboard:X11DRV_MapVirtualKeyEx Found keycode 64
trace:keyboard:X11DRV_MapVirtualKeyEx returning 0x0.
trace:key:TranslateMessage Translating key VK_MENU (0012), scancode 2038
trace:key:X11DRV_ToUnicodeEx NumLockMask = 0010
trace:key:X11DRV_ToUnicodeEx AltGrMask = 0010
trace:key:X11DRV_ToUnicodeEx (0012, 2038) : faked state = 0x0010
warn:key:X11DRV_ToUnicodeEx Unknown virtual key 12 !!!

 

Pustil sem hru , klácesou F2 sem ozačil hráče a klávesou 2 chtěl zadat příkaz ale to nešlo tak sem dal ALT+F4 a hru vyp. tady je to TRACE wine

WINEDEBUG=+key,+keyboard wine

 

No ale nic mi to neříká a je tam toho nějak moc.

10.1.2013 14:04 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice
No já to podrobně luštit nebudu. Ale obvykle se tohle řeší opakovanými běhy, kdy provedete kontrolované přesně definované akce, které se liší třeba v jednom stisku a pak záchytech porovnáte co je stejné a co je rozdílné a postupně přiřadíte prvky v záchytu provedeným akcím. Jen z prvního pohledu k nějakým překladům dochází, protože máte posloupnost:
trace:key:EVENT_event_to_vkey e->keycode = 11
trace:key:X11DRV_KeyEvent keycode 11 converted to vkey 0x32 scan 60
trace:key:X11DRV_send_keyboard_input hwnd 0x20026 vkey=0032 scan=0060 flags=0000
trace:keyboard:MapVirtualKeyExW (32, 2, 0x4050405)
trace:keyboard:X11DRV_MapVirtualKeyEx wCode=0x32, wMapType=2, hkl 0x4050405
trace:key:EVENT_event_to_vkey e->keycode = 11
trace:keyboard:X11DRV_MapVirtualKeyEx Found keycode 11
trace:keyboard:X11DRV_MapVirtualKeyEx returning 0x11a.
trace:key:TranslateMessage Translating key VK_2 (0032), scancode 0060
trace:key:X11DRV_ToUnicodeEx NumLockMask = 0010
trace:key:X11DRV_ToUnicodeEx AltGrMask = 0010
trace:key:X11DRV_ToUnicodeEx (0032, 0060) : faked state = 0x0010
trace:key:EVENT_event_to_vkey e->keycode = 11
trace:key:X11DRV_ToUnicodeEx Found keycode 11
trace:key:X11DRV_ToUnicodeEx type 2, window 4800002, state 0x0010, keycode 11
trace:key:X11DRV_ToUnicodeEx XmbLookupString needs 2 byte(s)
trace:key:X11DRV_ToUnicodeEx nbyte = 2, status 0x4
trace:key:X11DRV_ToUnicodeEx KeyPress : keysym=1ec (ecaron), # of chars=2 / "\xc4\x9b"
trace:key:X11DRV_ToUnicodeEx Translating char 0xc4 to unicode
trace:key:X11DRV_ToUnicodeEx returning 1 with L"\011b"
trace:key:TranslateMessage 1 -> PostMessageW(0x20026,WM_CHAR,011b,00600001)
trace:key:X11DRV_KeyEvent type 3, window 4800002, state 0x0010, keycode 11
trace:key:X11DRV_KeyEvent nbyte = 2, status 0
trace:key:X11DRV_KeyEvent KeyRelease : keysym=1ec (ecaron), # of chars=2 / "\xc4\x9b"
trace:key:EVENT_event_to_vkey e->keycode = 11
což bych interpretoval tak, že se zachytila klávesa (11) a zkonvertovala na znak vkey (0x32) scan 60, ale kterým klávesám odpovídají, které keykody nevím. vkey (0x32) v hexa odpovídá znaku 2, ale pak jsou tam nějaké další transformace do UNICODE (keysym=1ec (ecaron), # of chars=2 / "\xc4\x9b") což vidím jako příčinu. Pořád to prostředí vlastně pracuje s českou klávesnicí a dělá odpovídající transformace.
23.9.2014 11:15 goliash | skóre: 12 | Ostrava
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mám uplně stejný problém :-(

V Command & Conquer: Generals se označuje skupina jednotek CTRL+číslo. Stejně jako výše, jsem schopen označit akorát CTRL+1, bohužel klávesy 2 a více nereagují.

KDE 4.14, Kernel 3.13, Wine 1.7.16
23.9.2014 11:30 goliash | skóre: 12 | Ostrava
Rozbalit Rozbalit vše Re: Wine Flashpoint Resistance Problém klávesnice
OK, něco jsem našel. Je to nastavením Xek.
setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwertz)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+cz(qwerty)+us:2+inet(evdev)"        };
        xkb_geometry  { include "pc(pc101)"     };
};
Když jsem to změnil na následující, tak mapování ve hře začalo fungovat korektně:
goliash:~$ setxkbmap us
goliash:~$ setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us+inet(evdev)"     };
        xkb_geometry  { include "pc(pc101)"     };
};

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.