KEYMAPS(5)

NUME
keymaps - descrieri ale tabelelor de tastatură pentru loadkeys și dumpkeys

DESCRIERE

Aceste fișiere sunt utilizate de loadkeys(1) pentru a modifica tabelele de conversie utilizate de controlorul de tastatură din nucleu și generate de dumpkeys(1) din aceste tabele de conversie.

Formatul acestor fișiere este vag asemănător cu cel acceptat de xmodmap(1). Fișierul este format din linii de definiție a setului de caractere sau a tastelor sau a șirurilor intercalate cu comentarii.

Comentariile sunt introduse cu caracterele ! sau # și continuă până la sfârșitul liniei. Tot ceea ce urmează după unul dintre aceste caractere pe linia respectivă este ignorat. Rețineți că nu este necesar ca un comentariu să înceapă de la prima coloană, ca în cazul xmodmap(1).

Sintaxa fișierelor de hărți de taste este orientată pe linii; o definiție completă trebuie să încapă pe o singură linie logică. Liniile logice pot fi, totuși, împărțite în mai multe linii fizice prin terminarea fiecărei sub-linii cu caracterul de bară oblică inversă (\).

INCLUDE FIȘIERE
O hartă de taste poate include alte hărți de taste utilizând sintaxa

    include "nume-rută"

DEFINIȚII ALE SETURILOR DE CARACTERE
O linie de definire a setului de caractere este de forma:

        charset "iso-8859-x"

Acesta definește modul în care trebuie interpretate următoarele simboluri de taste. De exemplu, în iso-8859-1, simbolul mu (sau micro) are codul 0265, în timp ce în iso-8859-7 litera mu are codul 0354.

DEFINIȚII COMPLETE ALE CODURILOR DE TASTE
Fiecare linie de definiție completă a unei taste este de forma:

    keycode număr-tastă = simbol-tastă simbol-tastă simbol-tastă...

număr-tastă este numărul de identificare internă a cheii, aproximativ echivalent cu codul de scanare al acesteia. număr-tastă poate fi dat în notație zecimală, octală sau hexazecimală. Cifra octală este indicată printr-un zero înainte, iar cea hexazecimală prin prefixul 0x.

Fiecare dintre simbolurile-de-tastă reprezintă acțiuni de tastatură, dintre care până la 256 pot fi asociate unei singure taste. Acțiunile disponibile includ ieșirea codurilor de caractere sau a secvențelor de caractere, comutarea consolelor sau a hărților de taste, pornirea mașinii etc; (lista completă poate fi obținută din dumpkeys(1) prin scrierea dumpkeys -l ).

Fiecare simbol-tastă poate fi prefixat de un „+” (semnul plus), caz în care acest simbol-tastă este tratat ca o „literă” și, prin urmare, este afectat de «CapsLock» la fel ca și de «Shift» (pentru a fi corect, CapsLock inversează starea Shift). Literele ASCII („a”-„z” și „A”-„Z”) sunt făcute capabile pentru CapsLock în mod implicit. Dacă Shift+CapsLock nu ar trebui să producă un simbol minuscul, puneți linii precum

    keycode 30 = +a  A

în fișierul de hartă.

Acțiunea care este efectuată atunci când o anumită tastă este apăsată depinde de modificatorii care sunt în vigoare în acel moment. Controlorul de tastatură acceptă 9 modificatori. Acești modificatori sunt denumiți (în mod complet aleatoriu) Shift, AltGr, Control, Alt, Alt, ShiftL, ShiftR, CtrlL, CtrlR și CapsShift. Fiecăruia dintre acești modificatori îi este asociată o pondere de putere de doi, conform tabelului următor:

    modificator
        pondere

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

Acțiunea efectivă a unei taste se determină prin însumarea ponderilor tuturor modificatorilor în vigoare. În mod implicit, niciun modificator nu este în vigoare, astfel încât acțiunea numărul zero, adică cea din prima coloană a liniei de definire a unei taste, este efectuată atunci când tasta este apăsată sau eliberată. Atunci când, de exemplu, sunt în vigoare modificatorii Shift și Alt, acțiunea numărul nouă (din a zecea coloană) este cea efectivă.

Schimbarea stării modificatorilor în vigoare poate fi realizată prin asocierea acțiunilor corespunzătoare ale tastelor la tastele dorite. De exemplu, legarea simbolului Shift la o tastă stabilește modificatorul Shift în vigoare atunci când tasta respectivă este apăsată și anulează efectul modificatorului atunci când tasta este eliberată. Legarea simbolului AltGr_Lock la o tastă activează AltGr atunci când tasta respectivă este apăsată și anulează efectul atunci când tasta este apăsată din nou; (în mod implicit, Shift, AltGr, Control și Alt sunt legate de tastele care poartă o etichetă similară; AltGr poate desemna tasta Alt dreapta).

Rețineți că trebuie să fiți foarte atenți atunci când atribuiți tastele modificatoare, altfel vă puteți trezi cu o hartă de tastatură inutilizabilă. Dacă, de exemplu, definiți o tastă pentru a avea Control în prima sa coloană și lăsați restul coloanelor să fie VoidSymbols, veți avea probleme. Acest lucru se datorează faptului că apăsarea tastei pune în vigoare modificatorul Control, iar următoarele acțiuni sunt căutate din a cincea coloană (a se vedea tabelul de mai sus). Astfel, atunci când eliberați tasta, se execută acțiunea din a cincea coloană. Aceasta are VoidSymbol în ea, deci nu se întâmplă nimic. Acest lucru înseamnă că modificatorul Control este încă în vigoare, deși ați eliberat tasta. Dacă apăsați și eliberați din nou tasta nu are niciun efect. Pentru a evita acest lucru, trebuie să definiți întotdeauna toate coloanele pentru a avea același simbol modificator. Există o notație scurtă la îndemână pentru acest lucru, a se vedea mai jos.

simbolurile-de-taste pot fi date în notație zecimală, octală, hexazecimală, unicode sau simbolică. Notațiile numerice utilizează același format ca și în cazul keynumber. Notația Unicode este „U+” urmată de patru cifre hexazecimale. Notația simbolică seamănă cu cea utilizată de xmodmap(1). Diferențele notabile sunt simbolurile numerice. Simbolurile numerice „0”, ..., „9” din xmodmap(1) sunt înlocuite cu cuvintele corespunzătoare „zero”, „one”, ... „nine” pentru a evita confuzia cu notația numerică.

Trebuie remarcat faptul că utilizarea notației numerice pentru simbolurile-de-taste este extrem de dificil de adaptat, deoarece numerele de acțiune ale tastelor pot varia de la o versiune de nucleu la alta și, prin urmare, utilizarea notațiilor numerice este puternic descurajată. Acestea sunt destinate a fi utilizate numai atunci când știți că există o acțiune de tastatură acceptată în nucleul dvs. pentru care versiunea curentă a loadkeys(1) nu are un nume simbolic.

Există o serie de notații scurte la îndemână pentru a spori lizibilitatea și pentru a reduce munca de tastare și probabilitatea erorilor de tastare.

În primul rând, puteți da o linie de specificare a hărții, de forma

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

pentru a indica faptul că liniile hărții tastelor nu vor specifica toate cele 256 de coloane, ci numai cele indicate; (în exemplu: doar hărțile simple, Shift, AltGr, Control, Control+Shift, Alt și Control+Alt, adică 7 coloane în loc de 256). În cazul în care nu este indicată o astfel de linie, vor fi definite hărțile de taste 0-M, unde M+1 este numărul maxim de intrări găsite în orice linie de definire.

În continuare, puteți elimina orice intrare VoidSymbol din linia de definire a unei chei. VoidSymbol denotă o acțiune de tastatură care nu produce nici o ieșire și nu are nici un alt efect. De exemplu, pentru a defini tasta numărul 30 pentru a produce „a” fără schimbare, „A” atunci când este apăsată cu Shift și nu face nimic atunci când este apăsată cu AltGr sau alți modificatori, puteți scrie

    keycode  30 = a	A

în locul celei mai detaliate

    keycode  30 = a	A	VoidSymbol	VoidSymbol \
    		VoidSymbol VoidSymbol VoidSymbol ...

Pentru mai multă comoditate, puteți scăpa de obicei cu definiții și mai laconice. Dacă introduceți o linie de definiție a unei taste cu un singur și exact un cod de acțiune după semnul egal, acesta are o semnificație specială. Dacă codul (numeric sau simbolic) nu este o literă ASCII, înseamnă că codul este replicat implicit prin toate coloanele definite. Dacă, pe de altă parte, codul de acțiune este un caracter ASCII în intervalul „a”, ..., „z” sau „A”, ..., „Z” în secvența de colaționare ASCII, se fac următoarele definiții pentru diferitele combinații de modificatori, cu condiția ca acestea să fie definite efectiv; (tabelul enumeră cele două cazuri posibile: fie codul de acțiune unică este o literă minusculă, notată cu „x”, fie o literă majusculă, notată cu „Y”).

    modificator
        simbol

    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

DEFINIȚII ALE MODIFICATORULUI UNIC
Toate formele anterioare de linii de definire a tastelor definesc întotdeauna toate cele M+1 combinații posibile de modificatori care sunt definite, indiferent dacă linia conține efectiv sau nu atâtea coduri de acțiune. Cu toate acestea, există o variație a sintaxei de definire pentru a defini doar acțiuni unice pentru o anumită combinație de modificatori a unei taste. Acest lucru este deosebit de util în cazul în care încărcați o hartă a tastelor care nu corespunde nevoilor dumneavoastră doar în ceea ce privește anumite combinații de modificatori, cum ar fi AltGr+taste funcționale. Puteți crea apoi un mic fișier local care să redefinească doar acele combinații de modificatori și să îl încărcați după fișierul principal. Sintaxa acestei forme este:

{ plain | <secvență modificare> } keycode număr-tastă = simbol-tastă

, de exemplu:
        plain keycode 14 = BackSpace
        control alt keycode 83 = Boot
        alt keycode 105 = Decr_Console
        alt keycode 106 = Incr_Console
Folosind „plain” se definește doar intrarea de bază a unei taste (adică cea fără modificatori în vigoare) fără a afecta legăturile altor combinații de modificatori ale acelei taste.

DEFINIȚII DE ȘIRURI
Pe lângă comentariile și liniile de definire a tastelor, o hartă a tastelor poate conține definiții de șiruri. Acestea sunt utilizate pentru a defini ce trimite fiecare cod de acțiune al unei taste de funcție. Sintaxa definițiilor de șiruri este următoarea:

    string simbol-tastă = "text"

text poate conține caractere literale, coduri de caractere octale în formatul de bară oblică inversă urmată de până la trei cifre octale și cele trei secvențe de eludare \n, \\ și \", pentru linie nouă, bară oblică inversă și, respectiv, ghilimele.

DEFINIȚII DE COMPUNERE
Apoi, pot exista și definiții de compunere. Acestea au sintaxa:

    compose 'caracter' 'caracter' to 'caracter'
și descrie modul în care doi octeți sunt combinați pentru a forma un al treilea octet (atunci când se utilizează o tastă de accent mort sau o tastă de compunere). Acest lucru este utilizat pentru a obține litere accentuate (cu diacritice) și altele asemenea pe o tastatură standard.

ABREVIERI
Diverse abrevieri pot fi utilizate cu kbd-0.96 și ulterior.

strings as usual
    Definește valorile obișnuite ale șirurilor (dar nu și tastele la care acestea sunt asociate).

compose as usual for "iso-8859-1"
    Definește combinațiile obișnuite de compunere.

Pentru a afla ce simboluri-de-taste sunt disponibile pentru a fi utilizate în hărțile de taste „keymaps”, utilizați comanda

    dumpkeys --long-info

Din păcate, în prezent nu există o descriere a rolului fiecărui simbol. Trebuie să se ghicească după nume sau să se afle din sursele nucleului.

EXEMPLE
Notă: aveți grijă să folosiți o linie „keymaps”, cum ar fi prima linie din «dumpkeys», sau "keymaps 0-15" sau similar.

Următoarea intrare schimbă tasta Control din stânga și tasta Caps Lock de pe tastatură:

    keycode  58 = Control
    keycode  29 = Caps_Lock

Tasta numărul 58 este, în mod normal, tasta Caps Lock, iar tasta numărul 29 este, în mod normal, tasta Control.

Următoarea intrare stabilește tastele Shift și Caps Lock pentru a se comporta mai confortabil, ca la mașinile de scris mai vechi. Altfel spus, apăsarea tastei Caps Lock o dată sau de mai multe ori pune tastatura în starea CapsLock (blocareMajuscule, iar apăsarea uneia dintre tastele Shift o eliberează.

    keycode  42 = Uncaps_Shift
    keycode  54 = Uncaps_Shift
    keycode  58 = Caps_On

Următoarea intrare stabilește aranjamentul tastaturii de editare din tastatura îmbunătățită pentru a fi mai asemănător cu cel din terminalele din seria 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

Iată un exemplu de atribuire a șirului "du\ndf\n" la tasta AltGr-D. Folosim codul de acțiune „de rezervă” F100, care nu este atribuit în mod normal niciunei taste.

    altgr keycode 32 = F100
    string F100 = "du\ndf\n"

AUTORI
Andries Brouwer <aeb@cwi.nl>

CONSULTAȚI ȘI
loadkeys(1), dumpkeys(1), showkey(1), xmodmap(1)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.