W jaki sposób używać dodatkowych Win-klawiszy pod Linuxem?


Wystarczy zdefiniować sobie własną mapę klawiatury. W katalogu /usr/lib/kbd/keymaps lub /usr/share/keymaps leżą różne mapy klawiszy, można też tam dorzucić własną, lub zmodyfikować już używaną.
Trzeba zacząć od sprawdzenia kodów klawiszy, których chcemy używać - służy do tego polecenie showkey. Po jego uruchomieniu na ekran jest wypisywany kod każdego klawisza, który wciśniemy. Uwaga: program kończy swoje działanie po 10 sekundach od ostatniego naciśnięcia klawisza - nie można go zakończyć wciskająć Esc, Ctrl-C itd...
Kiedy już mamy kody, to do używanego pliku .map (lub .kmap) trzeba dodać linijkę:

keycode <numer> = <akcja>

Spis dostępnych akcji można znaleźć w pliku ksyms.c w źródłach pakietów kbd lub consoletools. M.in. ciekawą rzeczą jest "Last_Console" - po naciśnięciu klawisza, któremu przypisaliśmy taką akcję przerzucamy się na ostatnio używaną konsolę. Inną możliwością jest podpięcie pod klawisz akcji "F<numer>", np. "F100", a potem podczepienie pod tego "efa" jakiegoś stringu:

string F100 = "exit\n"

Przy takim przypisaniu naciśnięcie klawisza opisanego jako F100 efekt będzie jak przy wpisaniu ciągu "exit" i naciśnięciu ENTER.
Edycja mapy klawiszy nie musi sprowadzać się do dodawania nowych opcji, można też dowolnie zmienić stare mapowania: np. jeśli ktoś pisze bezwzrokowo i przeszkadza mu za krótka spacja (bo doszły w tym samym rzędzie 3 nowe klawisze Windows), to można: przestawić mapowanie obu altów na spacje, a klawiszy ze znakiem okienka na alty - i mamy "wydłużony" klawisz spacji.
Po przeedytowaniu mapy klawiary trzeba ją załadować za pomocą polecenia loadkeys mapa.map. Takie wywołanie można też wstawić do skryptów startowych, tak aby potrzebna mapa była ładowana przy uruchamianiu systemu.
Osobno trzeba sobie zdefiniować mapę klawiszy w X Window System - pomocnym może się okazać program xkeycaps, który łatwo i szybko pomaga ustawić dowolną mapę klawiatury.
Wymyślenie zastosowań możliwości dowolnego mapowania klawiatury pozostawiam jako ćwiczenie :))


Powrót do strony głównej