XMODMAP(1) General Commands Manual XMODMAP(1)

xmodmap - ustensilă pentru modificarea schemelor de taste și a corespondențelor de butoane ale indicatorului în X

xmodmap [-opțiuni ...] [nume-fișier]

Programul xmodmap este utilizat pentru a edita și afișa tabelul de modificatori și tabelul schemei de taste a tastaturii, care sunt utilizate de aplicațiile client pentru a converti codurile de taste ale evenimentelor „keycodes” în simboluri de taste „keysyms”. De obicei, este rulat din scriptul de pornire a sesiunii utilizatorului pentru a configura tastatura în funcție de gusturile personale.

Următoarele opțiuni pot fi utilizate cu xmodmap:

Această opțiune specifică gazda și afișajul care trebuie utilizate.
Această opțiune indică faptul că o scurtă descriere a argumentelor din linia de comandă trebuie să fie afișată pe canalul de eroare standard. Acest lucru se va face de fiecare dată când un argument negestionat este furnizat la xmodmap.
Această opțiune indică faptul că un mesaj de ajutor care descrie gramatica expresiilor utilizată în fișiere și cu expresiile -e trebuie să fie afișat la ieșirea de eroare standard.
Această opțiune indică faptul că xmodmap trebuie să afișeze informațiile despre versiunea sa și să iasă.
Această opțiune indică faptul că xmodmap trebuie să afișeze informații de jurnalizare pe măsură ce analizează datele de intrare.
Această opțiune dezactivează jurnalizarea detaliată. Aceasta este opțiunea implicită.
Această opțiune indică faptul că xmodmap nu trebuie să modifice schemele/corespondențele, ci trebuie să afișeze ceea ce ar face, așa cum face make(1) atunci când i se dă această opțiune.
Această opțiune specifică o expresie care urmează să fie executată. Se poate specifica orice număr de expresii în linia de comandă.
Această opțiune indică faptul că tabelul de modificatori curent trebuie să fie afișat la ieșirea standard. Acesta este modul de operare implicit dacă nu sunt specificate alte opțiuni de mod.
Această opțiune indică faptul că tabelul actual al schemei de taste trebuie să fie afișat la ieșirea standard.
Această opțiune indică faptul că tabelul actual al schemei de taste trebuie să fie afișat la ieșirea standard sub forma unor expresii care pot fi trimise înapoi la xmodmap.
Această opțiune indică faptul că tabelul de corespondență curent al indicatorului trebuie să fie afișat la ieșirea standard.
-
O liniuță singură înseamnă că intrarea standard trebuie utilizată ca fișier de intrare.

nume-fișier specifică un fișier care conține expresii xmodmap care urmează să fie executate. Acest fișier este de obicei păstrat în directorul personal al utilizatorului cu un nume de tipul .xmodmaprc.

Programul xmodmap citește o listă de expresii și le analizează pe toate înainte de a încerca să execute oricare dintre ele. Acest lucru face posibilă referirea la keysyms care sunt redefinite într-un mod natural, fără a fi nevoie să ne facem griji atât de mult cu privire la conflictele de nume.

Lista de nume de simboluri de taste „keysym” poate fi găsită în fișierul antet <X11/keysymdef.h> (fără prefixul XK_). Simbolurile de taste care corespund caracterelor Unicode pot fi specificate de la „U0020” la „U007E” și de la „U00A0” la „U10FFFF” pentru toate caracterele Unicode posibile.

Lista de keysyms este atribuită codului de taste indicat (care poate fi specificat în zecimal, hexazecimal sau octal și poate fi determinat prin rularea programului xev). Până la opt keysyms pot fi atașate unei taste, însă ultimele patru nu sunt utilizate în nicio implementare majoră a serverului X. Primul keysym este utilizat atunci când nu este apăsată nicio tastă modificatoare împreună cu această tastă, al doilea cu Shift, al treilea atunci când este utilizată tasta Mode_switch (Alt Gr) cu această tastă și al patrulea atunci când sunt utilizate atât Mode_switch, cât și Shift.
În cazul în care nici o tastă existentă nu are atribuită lista de keysyms specificată, se selectează o tastă liberă de pe tastatură și i se atribuie keysyms. Lista de keysyms poate fi specificată în zecimal, hexazecimal sau octal.
NUME_KEYSYM din partea stângă este tradus în coduri de taste corespunzătoare utilizate pentru a executa setul corespunzător de expresii keycode. Rețineți că, în cazul în care același keysym este asociat la mai multe taste, expresia este executată pentru fiecare keycode corespunzător.
Această opțiune elimină toate intrările din schema modificatorului pentru modificatorul dat, unde numele valid sunt: Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4 și Mod5 (majusculele și minusculele nu contează în cazul numelor modificatorilor, deși contează pentru toate celelalte nume). De exemplu, «clear Lock» va elimina toate tastele care au fost asociate modificatorului de blocare în majuscule „shift lock”.
Această opțiune adaugă toate tastele care conțin keysyms date în tabelul de modificatori indicat. Numele keysym sunt evaluate după ce toate expresiile de intrare sunt citite, pentru a facilita scrierea expresiilor de schimbare a tastelor (a se vedea secțiunea EXEMPLE).
Această opțiune elimină toate tastele care conțin keysym-urile date din tabelul de modificatori indicat. Spre deosebire de add,, numele keysym-urilor sunt evaluate pe măsură ce linia este citită. Acest lucru vă permite să eliminați taste dintr-un modificator fără să vă faceți griji dacă acestea au fost sau nu realocate.
Aceasta readuce tabelul de corespondență al indicatorului la valorile implicite (butonul 1 generează un cod 1, butonul 2 generează un cod 2 etc.).
Aceasta definește tabelul de corespondență al indicatorului pentru a conține codurile de butoane indicate. Lista începe întotdeauna cu primul buton fizic. Definirea unui cod de buton la 0 dezactivează evenimentele de la acel buton.

Liniile care încep cu un semn de exclamare (!) sunt considerate comentarii.

Dacă doriți să modificați asocierea unei taste modificatoare, trebuie să o eliminați și din tabelul de modificatori.

Multe indicatoare sunt proiectate astfel încât primul buton să fie apăsat cu degetul arătător al mâinii drepte. Persoanele stângace consideră adesea că este mai confortabil să inverseze codurile de butoane generate, astfel încât primul buton să fie apăsat cu degetul arătător al mâinii stângi. Acest lucru se poate face la un indicator cu 3 butoane, după cum urmează:

%  xmodmap -e "pointer = 3 2 1"

Multe aplicații acceptă noțiunea de taste Meta (similare cu tastele Control, cu excepția faptului că Meta este ținută apăsată în loc de Control). Cu toate acestea, unele servere nu au un simbol de taste Meta în tabelul implicit al hărții de taste, astfel încât trebuie adăugat manual unul. Următoarea comandă va atașa Meta la tasta Multi-language (uneori etichetată Compose Character). De asemenea, aceasta profită de faptul că aplicațiile care au nevoie de o tastă Meta trebuie pur și simplu să obțină codul de tastă și nu au nevoie ca keysym-ul să fie în prima coloană a tabelului schemei de taste. Acest lucru înseamnă că aplicațiile care caută o tastă Multi_key (inclusiv harta modificatoare implicită) nu vor observa nicio schimbare.

%  xmodmap -e "keysym Multi_key = Multi_key Meta_L"

În mod similar, unele tastaturi au o tastă Alt, dar nu și o tastă Meta. În acest caz, poate fi utilă următoarea comandă:

%  xmodmap -e "keysym Alt_L = Meta_L Alt_L"

Una dintre cele mai simple, dar convenabile utilizări ale xmodmap este de a programa tasta «Supr.» («Delete») a tastaturii pentru a genera un keysym alternativ. Acest lucru implică în mod frecvent interschimbarea tastei «Backspace» cu «Delete» pentru a fi mai confortabil pentru utilizator. Dacă este de asemenea configurată resursa ttyModes din xterm, toate ferestrele emulatorului de terminal vor folosi aceeași tastă pentru ștergerea caracterelor:

%  xmodmap -e "keysym BackSpace = Delete"
%  echo "XTerm*ttyModes:  erase ^?" | xrdb -merge

Unele tastaturi nu generează în mod automat caracterele «mai mic decât „<”» și «mai mare decât „>”» atunci când sunt apăsate tastele virgulă și punct în combinație cu tasta «Shift». Acest lucru poate fi remediat cu xmodmap prin restabilirea asocierilor pentru virgulă și punct cu următoarele scripturi:

!
! face ca «shift-,» să fie < și «shift-.» să fie >
!
keysym comma = comma less
keysym period = period greater

Una dintre cele mai enervante diferențe dintre tastaturi este amplasarea tastelor «Control» și «CapsLock». O utilizare obișnuită a xmodmap este de a interschimba aceste două taste după cum urmează:

!
! Interschimbă Caps_Lock cu Control_L
!
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

Acest exemplu poate fi rulat din nou pentru a schimba tastele înapoi la atribuțiile lor anterioare.

Comanda keycode este utilă pentru atribuirea aceluiași keysym la mai multe coduri de taste. Deși neportabilă, ea face posibilă și scrierea de scripturi care pot readuce tastatura la o stare cunoscută. Următorul script configurează tasta «Backspace» pentru a genera «Delete» (așa cum se arată mai sus), șterge toate asocierile „caps lock” existente, face ca tasta «CapsLock» să fie o tastă de «Control», face ca «F5» să genereze «Escape» și face ca «Break/Reset» să fie o tastă «ShiftLock».

!
! Pe HP, următoarele coduri de taste au capacitățile de taste enumerate:
!
!     101  Backspace
!      55  Caps
!      14  Ctrl
!      15  Break/Reset
!      86  Stop
!      89  F5
!
keycode 101 = Delete
keycode 55 = Control_R
clear Lock
add Control = Control_R
keycode 89 = Escape
keycode 15 = Caps_Lock
add Lock = Caps_Lock

pentru a obține gazda implicită și numărul afișajului.

X(7), xev(1), setxkbmap(1), XStringToKeysym(3), documentația Xlib privind evenimentele de tip tastă și indicator

De fiecare dată când este evaluată o expresie keycode, serverul generează un eveniment MappingNotify pe fiecare client. Acest lucru poate cauza o oarecare dezordine. Toate modificările ar trebui să fie grupate împreună și efectuate deodată. Clienții care primesc intrări de la tastatură și ignoră evenimentele MappingNotify nu vor observa nicio modificare făcută tabelului schemei de taste a tastaturii.

Xmodmap ar trebui să genereze expresii „add” și „remove” în mod automat ori de câte ori se modifică un cod de tastă care este deja asociat unui modificator.

Ar trebui să existe o modalitate de a face ca expresia remove să accepte atât coduri de taste, cât și keysyms, pentru momentele în care vă încurcați cu adevărat corespondențele din tabelul de corespondențe ale tastelor.

Jim Fulton, MIT X Consortium, rescris după o versiune anterioară a lui David Rosenthal de la Sun Microsystems.

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.

xmodmap 1.0.11 X Versiunea 11