Provided by: manpages-pl_4.15.0-9_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:

              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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.