Provided by: manpages-pl_4.27.0-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 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.

       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 lub  ciągi  znaków,  przełączanie  konsol  lub  tablic
       klawiaturowych,  restartowanie  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 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:

              ł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 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"

AUTORZY

       Andries Brouwer <aeb@cwi.nl>

ZOBACZ TAKŻE

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

TŁUMACZENIE

       Tłumaczenie niniejszej strony podręcznika: Przemek Borys  <pborys@dione.ids.pl>,  Andrzej  Krzysztofowicz
       <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       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)