Provided by: manpages-pl_4.13-4_all bug

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 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 występuje po tych
       znakach, ignorowane. Proszę zauważyć, ż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 "ścieżkadopliku"

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.

       Each  of  the  keysyms  represent  keyboard actions, of which up to 256 can be bound to a single key. The
       actions available include outputting character  codes  or  character  sequences,  switching  consoles  or
       keymaps, booting the machine etc. (The complete list can be obtained from dumpkeys(1)  by saying 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 tablicą.

       To, która z akcji dla danego klawisza jest wybierana podczas jego wciśnięcia,  zależy  od  modyfikatorów,
       które  są  aktywne  w  danej  chwili.  Sterownik  klawiatury  wspiera 9 modyfikatorów. Modyfikatory te są
       oznaczone (zdecydowanie arbitralnie) jako Shift, AltGr, Control, Alt, ShiftL, ShiftR, CtrlL,  CtrlR  oraz
       CapsShift.  Z  każdym  z  tych modyfikatorów związana jest waga będąca potęgą dwójki, według następującej
       tabeli:

              modyfikator         waga

              Shift                  1
              AltGr                  2
              Control                4
              Alt                    8
              ShiftL                16
              ShiftR                32
              CtrlL                 64
              CtrlR                128
              CapsShift            256

       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 na przykład 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.  Na przykład 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 unikodowa składa się z "U+", po
       którym występują cyfry szesnastkowe. Notacja symboliczna jest podobna do  tej  z  xmodmap(1).  Zauważalne
       różnice  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 bieżąca wersja loadkeys(1)  nie ma 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. (Na przykład 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 liczba 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. Na przykład, 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

           none                    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   tablica
       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:

              string keysym = "text"

       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 używany 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

       (Trzeba uważać, by użyć linii "keymaps", takiej jak "keymaps 0-15" albo pierwsza linia w `dumpkeys` itp.)

       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)

T◈UMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej  strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>,
       Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  manpages-pl-
       list@lists.sourceforge.net.

kbd                                             24 kwietnia 1998                                      KEYMAPS(5)