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?

bhh1988
źródło