Provided by: manpages-pl_20051117-1_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  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)

                               24 kwietnia 1998                     KEYMAPS(5)