Keyboard HOWTO pl 16 (2)


The Linux Keyboard HOWTO: Przykłady użycia loadkeys i xmodmap Następna strona Poprzednia strona Spis treści 16. Przykłady użycia loadkeys i xmodmap Zamiana Caps Lock i Control na klawiaturze (zakładając że używasz układów klawiatur 0-15; sprawdź przez dumpkeys | head -1) % loadkeys keymaps 0-15 keycode 58 = Control keycode 29 = Caps_Lock % Powyższa zamiana tylko pod X: % xmodmap .xmodmaprc gdzie .xmodmaprc zawiera linie remove Lock = Caps_Lock remove Control = Control_L keysym Control_L = Caps_Lock keysym Caps_Lock = Control_L add Lock = Caps_Lock add Control = Control_L O co chodzi z tymi numerami klawiszy? Backspace ma 14 pod Linuxem, a 22 pod X? No cóż, numery najlepiej uważać za przydzielone dowolnie; linuxowy numer klawisza znaleźć można używając showkey(1), a numer Xowy przez xev(1). Często numer Xowy będzie o 8 większy niż linuxowy. Coś co ludzie chcą zmieniać to przypisania klawiszy funkcyjnych. Załóżmy że chcesz aby F12 wypisywał ciąg znaków "emacs". Wtedy % loadkeys keycode 88 = F12 string F12 = "emacs " % zrobi to. Ściślej, procedura wygląda mniej więcej tak: (i) znajdź kody klawiszy które mają mieć zmienione przypisania, za pomocą showkey(1), (ii) zachowaj bieżący układ klawiatury, zrób kopię i ją edytuj. % dumpkeys > my_keymap % cp my_keymap trial_keymap % emacs trial_keymap % loadkeys trial_keymap % Format tablicy zgadnąć można patrząc na wynik dumpkeys, a opisuje go keytables(5). Gdy nowy układ klawiatury działa tak jak tego chcemy, możesz wstawić wywołanie loadkeys my_new_keymap do /etc/rc.local czy coś takiego, żeby wykonywać je automatycznie w czasie ładowania. Zauważ że zmiana klawiszy modyfikujących jest zawiła, a nowicjusz może łatwo wplątać się w sytuację z której wydostać się może tylko ekspert. Domyślnym katalogiem układów klawiatur jest /usr/lib/kbd/keytables. Domyślnym rozszerzeniem plików układów jest .map. Tak więc loadkeys uk załaduje prawdopodobnie /usr/lib/kbd/keytables/uk.map. (Na moim komputerze) /dev/console jest odnośnikiem symbolicznym do /dev/tty0, a jądro uważa /dev/tty0 za synonim bieżącej WK. XFree86 zmienia właściciela /dev/tty0, ale nie przywraca stanu poprzedniego po zakończeniu. Tak więc polecenie dumpkeys może się nie powieść, ponieważ ktoś inny jest właścicielem /dev/tty0; w takim przypadku możesz wpierw uruchomić X. 16.1 "Mogę używać tylko jednego palca do pisania" Czy klawisze Shift, Ctrl i Alt mogą się zachowywać jak przełączniki? Tak, po napisaniu: % loadkeys keycode 29 = Control_Lock keycode 42 = Shift_Lock keycode 56 = Alt_Lock % klawisze lewy Control, Shift i Alt będą działać jako przełączniki. Odpowiednie numery podaje showkey (zwykle są to 29, 97, 42, 54, 56, 100 dla lewego i prawego Control, Shift i Alt odpowiednio), a funkcje to Control_Lock, Shift_Lock, Alt_Lock, ALtGr_Lock. Co z klawiszami "sticky" [zachowywanymi w buforze do naciśnięcia następnego klawisza(y) - przyp. tłum.] ? Od wersji 1.3.33, jądro wie o modyfikatorach "sticky". Działają one na następny naciśnięty klawisz. Tak więc, tam gdzie wcześniej trzeba było trzysymbolowej sekwencji Shift_Lock-a-Shift_Lock można teraz używać dwusymbolowej sekwencji SShift_Lock-a. Bieżąca wersja pakietu kbd nie zawiera jeszcze kodu dla "stickies", tak więc trzeba je wywoływać używając ich kodów szesnastkowych. Na przykład: % loadkeys keymaps 0-15 keycode 54 = 0x0c00 keycode 97 = 0x0c02 keycode 100 = 0x0c03 % uczyni prawe Shift, Ctrl i Alt wersjami "sticky" klawiszy lewych. Od wersji 0.93 można napisać % loadkeys keymaps 0-15 keycode 54 = SShift keycode 97 = SCtrl keycode 100 = SAlt % by otrzymać ten sam rezultat. Pozwoli to napisać ci Ctrl-Alt-Del trzema naciśnięciami klawiszy, używając jednej ręki to obtain the same result. Następna strona Poprzednia strona Spis treści

Wyszukiwarka