XMODMAP(1) General Commands Manual XMODMAP(1) NUME xmodmap - ustensila pentru modificarea schemelor de taste i a corespondenelor de butoane ale indicatorului in X REZUMAT xmodmap [-opiuni ...] [nume-fiier] DESCRIERE Programul xmodmap este utilizat pentru a edita i afia tabelul de modificatori i tabelul schemei de taste a tastaturii, care sunt utilizate de aplicaiile client pentru a converti codurile de taste ale evenimentelor ,,keycodes" in simboluri de taste ,,keysyms". De obicei, este rulat din scriptul de pornire a sesiunii utilizatorului pentru a configura tastatura in funcie de gusturile personale. OPIUNI Urmatoarele opiuni pot fi utilizate cu xmodmap: -display afiaj Aceasta opiune specifica gazda i afiajul care trebuie utilizate. -help Aceasta opiune indica faptul ca o scurta descriere a argumentelor din linia de comanda trebuie sa fie afiata pe canalul de eroare standard. Acest lucru se va face de fiecare data cand un argument negestionat este furnizat la xmodmap. -grammar Aceasta opiune indica faptul ca un mesaj de ajutor care descrie gramatica expresiilor utilizata in fiiere i cu expresiile -e trebuie sa fie afiat la ieirea de eroare standard. -version Aceasta opiune indica faptul ca xmodmap trebuie sa afieze informaiile despre versiunea sa i sa iasa. -verbose Aceasta opiune indica faptul ca xmodmap trebuie sa afieze informaii de jurnalizare pe masura ce analizeaza datele de intrare. -quiet Aceasta opiune dezactiveaza jurnalizarea detaliata. Aceasta este opiunea implicita. -n Aceasta opiune indica faptul ca xmodmap nu trebuie sa modifice schemele/corespondenele, ci trebuie sa afieze ceea ce ar face, aa cum face make(1) atunci cand i se da aceasta opiune. -e expresie Aceasta opiune specifica o expresie care urmeaza sa fie executata. Se poate specifica orice numar de expresii in linia de comanda. -pm Aceasta opiune indica faptul ca tabelul de modificatori curent trebuie sa fie afiat la ieirea standard. Acesta este modul de operare implicit daca nu sunt specificate alte opiuni de mod. -pk Aceasta opiune indica faptul ca tabelul actual al schemei de taste trebuie sa fie afiat la ieirea standard. -pke Aceasta opiune indica faptul ca tabelul actual al schemei de taste trebuie sa fie afiat la ieirea standard sub forma unor expresii care pot fi trimise inapoi la xmodmap. -pp Aceasta opiune indica faptul ca tabelul de corespondena curent al indicatorului trebuie sa fie afiat la ieirea standard. - O liniua singura inseamna ca intrarea standard trebuie utilizata ca fiier de intrare. nume-fiier specifica un fiier care conine expresii xmodmap care urmeaza sa fie executate. Acest fiier este de obicei pastrat in directorul personal al utilizatorului cu un nume de tipul .xmodmaprc. GRAMATICA EXPRESIEI Programul xmodmap citete o lista de expresii i le analizeaza pe toate inainte de a incerca sa execute oricare dintre ele. Acest lucru face posibila referirea la keysyms care sunt redefinite intr-un mod natural, fara a fi nevoie sa ne facem griji atat de mult cu privire la conflictele de nume. Lista de nume de simboluri de taste ,,keysym" poate fi gasita in fiierul antet (fara 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. keycode NUMAR = NUME_KEYSYM ... Lista de keysyms este atribuita codului de taste indicat (care poate fi specificat in zecimal, hexazecimal sau octal i poate fi determinat prin rularea programului xev). Pana la opt keysyms pot fi ataate unei taste, insa ultimele patru nu sunt utilizate in nicio implementare majora a serverului X. Primul keysym este utilizat atunci cand nu este apasata nicio tasta modificatoare impreuna cu aceasta tasta, al doilea cu Shift, al treilea atunci cand este utilizata tasta Mode_switch (Alt Gr) cu aceasta tasta i al patrulea atunci cand sunt utilizate atat Mode_switch, cat i Shift. keycode any = NUME_KEYSYM ... In cazul in care nici o tasta existenta nu are atribuita lista de keysyms specificata, se selecteaza o tasta libera de pe tastatura i i se atribuie keysyms. Lista de keysyms poate fi specificata in zecimal, hexazecimal sau octal. keysym NUME_KEYSYM = NUME_KEYSYM ... NUME_KEYSYM din partea stanga este tradus in coduri de taste corespunzatoare utilizate pentru a executa setul corespunzator de expresii keycode. Reinei ca, in cazul in care acelai keysym este asociat la mai multe taste, expresia este executata pentru fiecare keycode corespunzator. clear NUME_MODIFICATOR Aceasta opiune elimina toate intrarile din schema modificatorului pentru modificatorul dat, unde numele valid sunt: Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4 i Mod5 (majusculele i minusculele nu conteaza in cazul numelor modificatorilor, dei conteaza pentru toate celelalte nume). De exemplu, <> va elimina toate tastele care au fost asociate modificatorului de blocare in majuscule ,,shift lock". add NUME_MODIFICATOR = NUME_KEYSYM ... Aceasta opiune adauga toate tastele care conin keysyms date in tabelul de modificatori indicat. Numele keysym sunt evaluate dupa ce toate expresiile de intrare sunt citite, pentru a facilita scrierea expresiilor de schimbare a tastelor (a se vedea seciunea EXEMPLE). remove NUME_MODIFICATOR = NUME_KEYSYM ... Aceasta opiune elimina toate tastele care conin keysym-urile date din tabelul de modificatori indicat. Spre deosebire de add,, numele keysym-urilor sunt evaluate pe masura ce linia este citita. Acest lucru va permite sa eliminai taste dintr-un modificator fara sa va facei griji daca acestea au fost sau nu realocate. pointer = default Aceasta readuce tabelul de corespondena al indicatorului la valorile implicite (butonul 1 genereaza un cod 1, butonul 2 genereaza un cod 2 etc.). pointer = NUMAR ... Aceasta definete tabelul de corespondena al indicatorului pentru a conine codurile de butoane indicate. Lista incepe intotdeauna cu primul buton fizic. Definirea unui cod de buton la 0 dezactiveaza evenimentele de la acel buton. Liniile care incep cu un semn de exclamare (!) sunt considerate comentarii. Daca dorii sa modificai asocierea unei taste modificatoare, trebuie sa o eliminai i din tabelul de modificatori. EXEMPLE Multe indicatoare sunt proiectate astfel incat primul buton sa fie apasat cu degetul aratator al mainii drepte. Persoanele stangace considera adesea ca este mai confortabil sa inverseze codurile de butoane generate, astfel incat primul buton sa fie apasat cu degetul aratator al mainii stangi. Acest lucru se poate face la un indicator cu 3 butoane, dupa cum urmeaza: % xmodmap -e "pointer = 3 2 1" Multe aplicaii accepta noiunea de taste Meta (similare cu tastele Control, cu excepia faptului ca Meta este inuta apasata in loc de Control). Cu toate acestea, unele servere nu au un simbol de taste Meta in tabelul implicit al harii de taste, astfel incat trebuie adaugat manual unul. Urmatoarea comanda va ataa Meta la tasta Multi-language (uneori etichetata Compose Character). De asemenea, aceasta profita de faptul ca aplicaiile care au nevoie de o tasta Meta trebuie pur i simplu sa obina codul de tasta i nu au nevoie ca keysym-ul sa fie in prima coloana a tabelului schemei de taste. Acest lucru inseamna ca aplicaiile care cauta o tasta Multi_key (inclusiv harta modificatoare implicita) nu vor observa nicio schimbare. % xmodmap -e "keysym Multi_key = Multi_key Meta_L" In mod similar, unele tastaturi au o tasta Alt, dar nu i o tasta Meta. In acest caz, poate fi utila urmatoarea comanda: % xmodmap -e "keysym Alt_L = Meta_L Alt_L" Una dintre cele mai simple, dar convenabile utilizari ale xmodmap este de a programa tasta <> (<>) a tastaturii pentru a genera un keysym alternativ. Acest lucru implica in mod frecvent interschimbarea tastei <> cu <> pentru a fi mai confortabil pentru utilizator. Daca este de asemenea configurata resursa ttyModes din xterm, toate ferestrele emulatorului de terminal vor folosi aceeai tasta pentru tergerea caracterelor: % xmodmap -e "keysym BackSpace = Delete" % echo "XTerm*ttyModes: erase ^?" | xrdb -merge Unele tastaturi nu genereaza in mod automat caracterele <> i <">> atunci cand sunt apasate tastele virgula i punct in combinaie cu tasta <>. Acest lucru poate fi remediat cu xmodmap prin restabilirea asocierilor pentru virgula i punct cu urmatoarele scripturi: ! ! face ca <> sa fie < i <> sa fie > ! keysym comma = comma less keysym period = period greater Una dintre cele mai enervante diferene dintre tastaturi este amplasarea tastelor <> i <>. O utilizare obinuita a xmodmap este de a interschimba aceste doua taste dupa cum urmeaza: ! ! Interschimba 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 inapoi la atribuiile lor anterioare. Comanda keycode este utila pentru atribuirea aceluiai keysym la mai multe coduri de taste. Dei neportabila, ea face posibila i scrierea de scripturi care pot readuce tastatura la o stare cunoscuta. Urmatorul script configureaza tasta <> pentru a genera <> (aa cum se arata mai sus), terge toate asocierile ,,caps lock" existente, face ca tasta <> sa fie o tasta de <>, face ca <> sa genereze <> i face ca <> sa fie o tasta <>. ! ! Pe HP, urmatoarele coduri de taste au capacitaile 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 MEDIU DISPLAY pentru a obine gazda implicita i numarul afiajului. CONSULTAI I X(7), xev(1), setxkbmap(1), XStringToKeysym(3), documentaia Xlib privind evenimentele de tip tasta i indicator ERORI De fiecare data cand este evaluata o expresie keycode, serverul genereaza un eveniment MappingNotify pe fiecare client. Acest lucru poate cauza o oarecare dezordine. Toate modificarile ar trebui sa fie grupate impreuna i efectuate deodata. Clienii care primesc intrari de la tastatura i ignora evenimentele MappingNotify nu vor observa nicio modificare facuta tabelului schemei de taste a tastaturii. Xmodmap ar trebui sa genereze expresii ,,add" i ,,remove" in mod automat ori de cate ori se modifica un cod de tasta care este deja asociat unui modificator. Ar trebui sa existe o modalitate de a face ca expresia remove sa accepte atat coduri de taste, cat i keysyms, pentru momentele in care va incurcai cu adevarat corespondenele din tabelul de corespondene ale tastelor. AUTOR Jim Fulton, MIT X Consortium, rescris dupa o versiune anterioara a lui David Rosenthal de la Sun Microsystems. TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . X Versiunea 11 xmodmap 1.0.11 XMODMAP(1)