keymaps

Autres langues

Langue: pl

Autres versions - même langue

Version: 24 kwietnia 1998 (openSuse - 09/10/07)

Section: 5 (Format de fichier)

NAZWA

keymaps - opisy tablic klawiaturowych dla loadkeys i dumpkeys

OPIS

Pliki te s± u¿ywane przez loadkeys(1) do modyfikowania tablic translacji u¿ywanych przez sterownik klawiatury. Pliki te mog± byæ generowane na podstawie tablic translacji przez program dumpkeys(1).

Format tych plików jest do¶æ podobny do formatu xmodmap(1). Plik sk³ada siê z linii charsetu, definicji klawiszy lub napisów, przeplecionych komentarzami.

Komentarze rozpoczynaj± siê od znaków ! lub # i trwaj± do koñca linii. Wszystko co nastêpuje za tymi znakami jest ignorowane. Zauwa¿, ¿e komentarze nie musz± zaczynaæ siê w pierwszej kolumnie jak w xmodmap(1).

Sk³adnia tablicy klawiszy jest zorientowana liniowo; ca³a definicja musi zmie¶ciæ siê w pojedynczej linii logicznej. Jednak linie logiczne mog± dzieliæ siê na wiele linii fizycznych dziêki zastosowaniu znaku odwrotnego uko¶nika (\).

PLIKI W£¡CZANE

Tablica klawiaturowa mo¿e w³±czaæ do siebie inne tablice klawiaturowe przy u¿yciu sk³adni
include "pathname"

DEFINICJE CHARSETÓW

Linia definiuj±ca zestaw znaków (charset) ma postaæ:
charset "iso-8859-x"

Definiuje ona w jaki sposób interpretowaæ nastêpuj±ce po niej symbole akcji klawiaturowych (keysym). Na przyk³ad w iso-8859-1 symbol mu (lub micro) ma kod 0265, podczas gdy w iso-8859-7 litera mu ma kod 0354.

PE£NE DEFINICJE KODÓW KLAWISZY

Pe³na linii definicji kodów klawisza ma postaæ:


keycode keynumber = keysym keysym keysym...

keynumber jest wewnêtrznym numerem identyfikuj±cym klawisz, na ogó³ odpowiadaj±cym jego kodowi scancode. keynumber mo¿e zostaæ podany w postaci dziesiêtnej, ósemkowej lub szesnastkowej. Postaæ ósemkowa jest poprzedzona zerem, a szesnastkowa prefiksem 0x.

Ka¿dy z symboli keysym reprezentuje akcjê klawiaturow±. Do pojedynczego klawisza mo¿na podwi±zaæ do 256 takich akcji. Dostêpne akcje zawieraj± kody znaków Latin1 lub ci±gi znaków, prze³±czanie konsol lub tablic klawiaturowych, bootowanie maszyny, itd. (pe³n± listê mo¿na uzyskaæ z dumpkeys(1) przez wydanie polecenia dumpkeys -l.)

Ka¿dy z symboli keysym mo¿e zostaæ poprzedzony znakiem '+' (plus). W tym wypadku keysym jest traktowany jako "litera", i na jego warto¶æ "CapsLock" wp³ywa w ten sam sposób jak "Shift" (dok³adniej, CapsLock odwraca stan Shift). Znaki ASCII ('a'-'z' i 'A'-'Z') s± domy¶lnie CapsLock'owalne. Je¶li Shift+CapsLock nie powinny produkowaæ "ma³ych" liter, nale¿y u¿yæ linii o nastêpuj±cej semantyce


keycode 30 = +a  A

w pliku z taplic±.

To, która z akcji dla danego klawisza jest wybierana podczas jego wci¶niêcia zale¿y od modyfikatorów, które s± czynne w danej chwili. Sterownik klawiatury wspiera 8 modyfikatorów. Modyfikatory te s± oznaczone (zdecydowanie arbitralnie) jako Shift, AltGr, Control Alt, ShiftL, ShiftR, CtrlL, CtrlR. Z ka¿dym z tych modyfikatorów zwi±zana jest waga bêd±ca poteg± dwójki, wg nastêpuj±cej tabeli:

modyfikator
waga
Shift

  1
AltGr

  2
Control

  4
Alt

  8
ShiftL

 16
ShiftR

 32
CtrlL

 64
CtrlR
128

Efektywna akcja klawisza jest znajdywana przez dodawanie wag wszystkich modyfikatorów. Domy¶lnie ¿aden z nich nie jest u¿ywany, wiêc podczas naciskania lub zwalniania klawisza pobierana jest akcja numer zero, czyli ta w pierwszej kolumnie linii definicji klawisza. Gdy u¿yto np. klawiszy Shift+Alt, u¿yta zostaje akcja numer 9 (z 10 kolumny).

Zmiana stanu u¿ywanych modyfikatorów mo¿e byæ osi±gniêta przez powi±zanie odpowiednich akcji klawiszowych z odpowiednimi klawiszami. Np. przypisanie symbolu Shift do klawisza ustawia modyfikator Shift podczas naciskania tego klawisza i uniewa¿nia dzia³anie tego modyfikatora podczas zwolnienia klawisza. Przypisanie AltGr_Lock do klawisza ustawia AltGr po naci¶niêciu tego klawisza, a anuluje po ponownym jego naci¶niêciu. (Domy¶lnie, Shift, AltGr, Control i Alt s± przypisane do klawiszy, które maj± podobne oznaczenia; AltGr mo¿e oznaczaæ prawy klawisz Alt.)

Nale¿y zauwa¿yæ, ¿e powinno siê zachowaæ daleko posuniêt± ostro¿no¶æ podczas przypisywania modyfikatorów do klawiszy. W przeciwnym wypadku mo¿e siê to skoñczyæ nieu¿ywaln± tablic± klawiaturow±. Je¶li na przyk³ad zdefiniuje siê klawisz jako Control w pierwszej kolumnie a zostawi resztê kolumn jako puste symbole (VoidSymbols), pojawi siê problem. Problem wyst±pi dlatego, ¿e naci¶niêcie klawisza w³±cza modyfikator Control, a nastêpne akcje bêd± pobierane z pi±tej kolumny (zobacz tabelê powy¿ej). Tak wiêc, je¶li klawisz zostanie zwolniony, pobierana bêdzie akcja z pi±tej kolumny. Jest ona pustym symbolem, wiêc nic siê nie dzieje. Oznacza to, ¿e modyfikator Control jest wci±¿ aktywny, chocia¿ klawisz zosta³ puszczony. Ponowne naciskanie i zwalnianie klawisza nie daje ¿adnych rezultatów. Aby temu zapobiec, nale¿y zawsze definiowaæ wszystkie kolumny tak, aby mia³y ten sam symbol modyfikuj±cy. Istnieje do tego porêczna skrótowa notacja, o której ni¿ej.

Symbole keysym mog± byæ podawane w notacji dziesiêtnej, ósemkowej, szesnastkowej, lub symbolicznej. Numeryczne notacje u¿ywaj± tego samego formatu co keynumber. Notacja symboliczna jest podobna do tej z xmodmap(1). Zauwa¿alne ró¿nicei wystêpuj± dla symboli numerycznych. Symbole '0', ..., '9' w xmodmap(1) s± zamieniane na odpowiadaj±ce s³owa 'zero', 'one', ..., 'nine' aby zapobiec niejednoznaczno¶ciom z notacj± numeryczn±.

Powinno siê zaznaczyæ, ¿e u¿ywanie notacji numerycznej dla symboli keysym jest wybitnie nieprzeno¶ne, jako ¿e numery akcji klawiszy mog± siê ró¿niæ z jednej wersji j±dra na drug±, z czego wynika powy¿sze. Notacja ta mo¿e byæ u¿ywana tylko je¶li wiadomo, ¿e istnieje okre¶lona akcja klawiaturowa w u¿ywanym j±drze, dla której twoja wersja loadkeys(1) nie posiada nazwy symbolicznej.

Jest wiele notacji skrótowych, poprawiaj±cych czytelno¶æ, a redukuj±cych pracoch³onno¶æ i prawdopodobieñstwo b³êdów przy wpisywaniu.

Przede wszystkim, mo¿na podaæ liniê specyfikacji tablicy w postaci

keymaps 0-2,4-5,8,12

aby wskazaæ, ¿e te linie tablicy klawiaturowej nie bêd± wyszczególnia³y wszystkich 256 kolumn, lecz tylko jedn± ze wskazanych. (Np: sam Shift, AltGr, Control, Control+Shift, Alt i Control+Alt, czyli 7 zamiast 256 kolumn.) Je¶li nie poda siê takiej linii, zdefiniowane bêd± tablice klawiaturowe 0-M, gdzie M+1 to maksymalna ilo¶æ wpisów w jakiejkolwiek linii definicyjnej.

Nastêpnie, mo¿na porzuciæ wszelkie koñcowe wpisy pustych symboli z definicji klawisza. Pusty symbol oznacza akcjê klawiaturow±, która nie powoduje efektu. Np. aby zdefiniowaæ klawisz numer 30 do wyprowadzania 'a' bez shiftu i 'A' z shiftem, niczego za¶ przy wci¶niêtym AltGr i innych modyfikatorach, mo¿na napisaæ


keycode  30 = a A

zamiast bardziej "gadatliwego"


keycode  30 = a A       VoidSymbol      VoidSymbol \

                VoidSymbol VoidSymbol VoidSymbol ...

Jako dodatkowe udogodnienie, zwykle mo¿nz u¿ywaæ jeszcze innych definicji. Je¶li wprowadzona zostanie linia definicji klawisza z tylko jednym kodem akcji po znaku równo¶ci, to ma to specjalne znaczenie. Je¶li kod (numeryczny lub symboliczny) nie jest liter± ASCII, znaczy to, ¿e kod jest w drodze wyj±tku powielany na wszystkie zdefiniowane kolumny. Je¶li, z drugiej strony, kod jest znakiem ASCII w zakresie 'a', ..., 'z' lub 'A', ..., 'Z', to tworzone s± nastêpuj±ce definicje dla ró¿nych kombinacji modyfikatorów. (Tabela pokazuje dwa mo¿liwe przypadki: zarówno z pojedynczym kodem akcji dla ma³ej litery, oznaczonej przez 'x', jak i dla du¿ej litery, oznaczonej przez 'Y'.)

modyfikator
symbol
brak
x                      Y
Shift
X                      y
AltGr
x                      Y
Shift+AltGr
X                      y
Control
Control_x              Control_y
Shift+Control
Control_x              Control_y
AltGr+Control
Control_x              Control_y
Shift+AltGr+Control
Control_x              Control_y
Alt
Meta_x         Meta_Y
Shift+Alt
Meta_X         Meta_y
AltGr+Alt
Meta_x         Meta_Y
Shift+AltGr+Alt
Meta_X         Meta_y
Control+Alt
Meta_Control_x Meta_Control_y
Shift+Control+Alt
Meta_Control_x Meta_Control_y
AltGr+Control+Alt
Meta_Control_x Meta_Control_y
Shift+AltGr+Control+Alt
Meta_Control_x Meta_Control_y

DEFINICJE POJEDYNCZYCH MODYFIKATORÓW

Wszystkie poprzednie postacie linii definicji klawiszy zawsze definiowa³y wszystkie M+1 mo¿liwych kombinacji modyfikatorów, niezale¿nie od tego, czy tak± ilo¶æ rzeczywistych kodów akcji, czy nie. Istnieje jednak wariant sk³adni definicji s³u¿±cy do definiowania pojedynczych akcji dla konkretnej kombinacji modyfikatorów klawisza. Jest to szczególnie przydatne, je¶li ³adowana jest talica klawiaturow±, która nie odpowiada potrzebom jedynie przy niektórych kombinacjach modyfikatorów, jak np. AltGr+klawisze funkcyjne. Mo¿na wówczas utworzyæ ma³y lokalny plik przedefiniowuj±cy tylko te kombinacje modyfikatorów i ³adowaæ go po za³adowaniu pliku g³ównego. Sk³adnia tego formatu jest nastêpuj±ca:

{ plain | <ci±g modyfikatorów> } keycode keynumber = keysym

n.p.,


plain keycode 14 = BackSpace

control alt keycode 83 = Boot

alt keycode 105 = Decr_Console

alt keycode 106 = Incr_Console

U¿ycie "plain" zdefiniuje tylko podstawowy wpis klawisza (np. ten, przy którym nie s± w³±czone ¿adne modyfikatory), bez dotykania powi±zañ innych kombinacji tego klawisza.

DEFINICJE £AÑCUCHÓW

Oprócz komentarzy i linii definicji klawiszy, pliki tablic klawiaturowych mog± zawieraæ definicje napisów. S± one u¿ywane do definiowania kodów akcji wysy³anych przez poszczególne klawisze funkcyjne. Sk³adnia definicji napisu to:
³añcuch keysym = tekst

tekst mo¿e zawieraæ literalne znaki, kody ósemkowe w formacie odwrotnego uko¶nika, za którym wystêpuje do trzech cyfr ósemkowych, a tak¿e trzy sekwencje eskejpowe \n, \\, i \", odpowiednio, dla nowej linii, odwrotnego uko¶nika i cytatu.

DEFINICJE Z£O¯ONE

Mog± równie¿ wystêpowaæ definicje z³o¿one. Maj± one sk³adniê
compose 'znak' 'znak' to 'znak'
i opisuj±, w jaki sposób dwa bajty s± po³±czone tworz±c trzeci (gdy jest uywany samodzielny akcent lub klawisz kombinowany). Wykorzystuje siê to do liter akcentowanych i podobnych znaków na standardowej klawiaturze.

SKRÓTY

Z kbd-0.96 i pó¼niejszymi mo¿na u¿ywaæ ró¿nych skrótów. strings as usual Definiuje zwyk³e warto¶ci dla ³añcuchów (ale nie dla klawiszy, do których s± one przypisane.
compose as usual for "iso-8859-1"
Definiuje zwyk³e kombinacje z³o¿one.

Aby znale¼æ, które symbole keysym s± dostêpne do u¿ytku w tablicach klawiaturowych, nale¿y u¿yæ polecenia


dumpkeys --long-info

Niestety, obecnie nie ma opisu, co który symbol robi. Trzeba to zgadywaæ z nazwy, wydedukowanej ze ¼róde³ j±dra.

PRZYK£ADY

Nastêpuj±cy wpis zamienia lewy klawisz Control i CapsLock:

keycode  58 = Control

keycode  29 = Caps_Lock

Klawisz o numerze 58 jest normalnie Caps Lockiem, a klawisz numer 29 jest zwykle klawiszem Control.

Nastêpuj±cy wpis ustawia milsze zachowanie klawiszy Shift i Caps Lock, jak w starych maszynach do pisania. To znaczy, wci¶niêcie klawiszu Caps Lock jeden, lub wiêcej razy, w³±cza klawiaturê w stan CapsLock, a wci¶niêcie dowolnego z Shiftów wy³±cza go.


keycode  42 = Uncaps_Shift

keycode  54 = Uncaps_Shift

keycode  58 = Caps_On

Nastêpuj±cy wpis ustawia uk³ad bloku edycyjnego na rozszerzonych klawiaturach, aby by³y bardziej podobne do terminali serii VT200:


keycode 102 = Insert

keycode 104 = Remove

keycode 107 = Prior

shift keycode 107 = Scroll_Backward

keycode 110 = Find

keycode 111 = Select

control alt   keycode 111 = Boot

control altgr keycode 111 = Boot

Oto przyk³ad na przypisanie napisu "du\ndf\n" do klawisza AltGr-D. U¿ywamy "wolnego" kodu akcji F100, nie przypisywanego normalnie do ¿adnego klawisza.


altgr keycode 32 = F100

string F100 = "du\ndf\n"



 

ZOBACZ TAK¯E

loadkeys(1), dumpkeys(1), showkey(1), xmodmap(1)