| 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:
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.
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
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 |