Pierwszy post. Oto jest:
Mam Ubuntu 10.10, indywidualisty.
Kilka dni temu próbowałem przekonwertować klawisz „Command” na moim komputerze Apple na klawisz „Ctrl”, a po przeszukaniu Internetu wpadłem na Xmodmap. Pozwól mi najpierw powiedzieć, że na końcu wymyśliłem, jak zmienić mapowanie mojego klucza (przejdź do System-> preferencje-> klawiatura, potem układy, a następnie klawisz Win / Alt i zmapuj go do sterowania). Ale wcześniej próbowałem użyć xmodmap, aby wykonać mapowanie. W tym czasie zdałem sobie sprawę, że xmodmap po prostu nie działa dla mnie i nie ma nic, co mogę znaleźć w Internecie, zgłaszającego podobny problem.
Nawet przed utworzeniem jakiegokolwiek pliku .Xmodmap, który będzie wykonywany za każdym razem podczas logowania, polecenie po prostu nie działa w terminalu. Jeśli uruchomię xev, wyjściem mojego lewego klawisza poleceń jest:
KeyPress event, serial 33, synthetic NO, window 0x4600001,
root 0xc9, subw 0x0, time 2747931, (120,-383), root:(123,436),
state 0x0, keycode 133 (keysym 0x85, (no name)), same_screen YES,
XLookupString gives 2 bytes: (c2 85) ""
XmbLookupString gives 2 bytes: (c2 85) ""
XFilterEvent returns: False
KeyRelease event, serial 36, synthetic NO, window 0x4600001,
root 0xc9, subw 0x0, time 2748059, (120,-383), root:(123,436),
state 0x4, keycode 133 (keysym 0x85, (no name)), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Co oznacza, że kod klucza mojej komendy to 133. Wykonanie tego samego dla mojego klawisza ctrl mówi mi, że kod mojego lewego klawisza sterującego to 37.
Ale wykonując to polecenie:
xmodmap -e "keycode 133 = Control_L"
nie sprawi, że mój klawisz polecenia będzie działał jak znak kontrolny. Ponadto wiem, że xmodmap dokonał mapowania, ponieważ wpisanie znaku polecenia w xev daje teraz:
KeyPress event, serial 33, synthetic NO, window 0x4600001,
root 0xc9, subw 0x0, time 3016638, (293,-389), root:(296,430),
state 0x0, keycode 133 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 36, synthetic NO, window 0x4600001,
root 0xc9, subw 0x0, time 3016750, (293,-389), root:(296,430),
state 0x4, keycode 133 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes:
XFilterEvent returns: False
A wpis kodu klucza 133 z wyjścia xmodmap -pke również wygląda poprawnie:
keycode 133 = Control_L NoSymbol Control_L
W tym momencie klawisz polecenia nadal działałby jak klawisz polecenia. Moje pytanie brzmi: czy coś przesłoniło kluczowe mapowania xmodmap, a jeśli tak, to gdzie i jak?
źródło