KEYMAPS(5) | File Formats Manual | 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
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
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:
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:
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"
CONSULTAȚI ȘI
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 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.
24 aprilie 1998 | kbd |