GPM(8) System Manager's Manual GPM(8) NUME gpm - o ustensila de taiat i lipit i un server de mouse pentru console virtuale REZUMAT gpm [ opiuni ] DESCRIERE Acest pachet incearca sa fie un server de mouse util pentru aplicaiile care ruleaza in consola Linux. Se bazeaza pe pachetul ,,selection", iar o parte din codul sau provine chiar din <>. Acest pachet este destinat sa inlocuiasca ,,selection" ca mecanism de taiere i lipire; de asemenea, ofera facilitai suplimentare. Pachetul ,,selection" a oferit prima implementare de taiere i lipire pentru Linux folosind doua butoane ale mouse-ului, iar memoria tampon de taiere este inca numita ,,memorie tampon de selecie" sau pur i simplu ,,selecie" in tot acest document. Informaiile de mai jos sunt extrase din fiierul texinfo, care este sursa preferata de informaii. Executabilul <> este menit sa acioneze ca un demon (astfel, gpmd ar fi un nume mai potrivit pentru el). Aceasta seciune este menita sa descrie opiunile din linia de comanda pentru <>, in timp ce elementele sale interne sunt prezentate in seciunea urmatoare. Din cauza restriciilor din apelul de sistem ioctl(TIOCLINUX), <> trebuie sa fie rulat de catre superutilizator. Restriciile au fost adaugate in ultimele nuclee 1.1 pentru a remedia o brea de securitate legata de selecia i descarcarea ecranului. Serverul poate fi configurat in funcie de gustul utilizatorului, iar orice aplicaie care utilizeaza mouse-ul va moteni atitudinea serverului. De la versiunea 1.02 pana la 1.19.2 a fost posibil ca orice utilizator conectat la consola de sistem sa schimbe comportamentul mouse-ului folosind opiunea ,,-q". Acest lucru nu mai este posibil din motive de securitate. Incepand cu versiunea 0.97, programul server se plaseaza singur in fundal. Pentru a omori <>, putei sa-l reinvocai cu ajutorul opiunii ,,-k" din linia de comanda, dei comanda <> poate fi o alegere mai buna. COMENZI SPECIALE Versiunea 1.10 adauga capacitatea de a executa comenzi speciale in anumite circumstane. Comenzile speciale se refera in mod implicit la repornirea i oprirea sistemului, dar utilizatorul poate specifica alegerea sa personala. Capacitatea de a invoca comenzi cu ajutorul mouse-ului este una foarte utila pentru programatori, deoarece permite emiterea unei inchideri curate atunci cand tastatura este blocata i nu exista nicio reea disponibila pentru a readuce sistemul intr-o stare sanatoasa. Comenzile speciale sunt comutate prin triplu clic pe butonul stang i drept - un eveniment puin probabil in timpul utilizarii normale a mouse-ului. Cel mai simplu mod de a face triplu clic este apasarea unuia dintre butoane i triplul clic pe celalalt. Atunci cand se comuta procesarea speciala, apare un mesaj pe consola (i difuzorul emite doua bipuri, daca avei un difuzor); daca utilizatorul elibereaza toate butoanele i apasa din nou pe unul dintre ele in decurs de trei secunde, atunci se executa comanda speciala corespunzatoare butonului respectiv. Comenzile speciale implicite sunt: butonul stang Repornete sistemul prin semnalizarea procesului init butonul din mijloc (daca exista) Executa comanda <> butonul drept Executa comanda <> Opiunea din linia de comanda ,,-S" activeaza procesarea comenzilor speciale i permite modificarea celor trei comenzi speciale. Pentru a accepta comenzile implicite, utilizai -S "" (de exemplu, specificai un argument gol). Pentru a specifica propriile comenzi, utilizai o lista separata prin doua puncte pentru a specifica comenzile asociate butonului din stanga, mijloc i dreapta. Daca una dintre comenzi este goala, aceasta este interpretata ca ,,trimite un semnal catre procesul init". Aceasta operaie particulara este acceptata, in plus faa de executarea comenzilor externe, deoarece uneori erorile grave pun sistemul in imposibilitatea de a executa un apel fork(); in aceste cazuri rare, programatorul ar trebui sa poata oricum sa opreasca sistemul, iar omorarea lui <> dintr-un proces in curs de execuie este singura modalitate de a face acest lucru. Ca un exemplu, -S ":telinit 1:/sbin/halt", asociaza omorarea init cu butonul din stanga, trecerea la un singur utilizator cu cel din mijloc i oprirea sistemului cu butonul din dreapta. In mod evident, administratorii de sistem trebuie sa fie ateni la comenzile speciale, deoarece <> ruleaza cu permisiuni de superutilizator. Comenzile speciale sunt cele mai potrivite pentru calculatoarele al caror mouse poate fi accesat fizic doar de persoane de incredere. OPIUNI DE LINIE DE COMANDA Opiunile disponibile in linia de comanda sunt urmatoarele: -a accel Stabilete valoarea acceleraiei utilizata atunci cand un singur eveniment de micare este mai lung decat delta (a se vedea opiunea ,,-d"). -A[limita] Pornete cu selecia lipirii dezactivata. Aceasta este o masura de securitate; un atac plauzibil asupra unui sistem pare sa fie acela de a introduce o comanda shell periculoasa in memoria tampon de selecie (rm -rf /), inclusiv intreruperea de linie de terminare, dupa care victima nu trebuie decat sa faca clic pe butonul din mijloc al mouse-ului... Incepand cu versiunea 1.17.2, acest lucru s-a transformat intr-un mecanism de imbatranire mai general; demonul <> poate dezactiva (imbatrani) lipirea seleciei in mod automat dupa o perioada de inactivitate. Pentru a activa acest mod, trebuie doar sa se dea parametrul opional limita (fara spaiu intre !) care este interpretat ca fiind timpul in secunde pentru care o selecie este considerata valida i pasibila de lipire. Incepand cu versiunea 1.15.7, este furnizat un program trivial numit ,,disable-paste". Urmatoarele reprezinta o buna adaugare la ,,/etc/profile" daca permitei mai multor utilizatori sa lucreze la consola. case $( /usr/bin/tty ) in /dev/tty[0-9]*) /usr/bin/disable-paste ;; esac -b baud Stabilete viteza de transmisie in baud. -B secvena Stabilete secvena de butoane. 123 este secvena normala, 321 poate fi folosit de stangaci, iar 132 poate fi util cu mouse-urile cu doua butoane (in special in cadrul Emacs). Toate permutarile de butoane sunt permise. -d delta Stabilete valoarea delta. Atunci cand un singur eveniment de micare este mai lung decat delta, accel este utilizat ca factor de multiplicare; (trebuie sa fie 2 sau mai mare). -D Nu intra automat in funciune in fundal la pornire i inregistreaza mesajele in fluxul de eroare standard, nu in mecanismul syslog. Acest lucru este util pentru depanare; in versiunile anterioare, acest lucru se facea cu o opiune de compilare. -g numar In cazul dispozitivelor glidepoint, emulai butonul specificat prin atingere. numarul trebuie sa fie ,1 2 sau 3, i se refera la numarul butonului inainte de efectuarea reamplasarii butonului cu ,,-B". Aceasta opiune se aplica la decodificarea mman i ps2. In mod implicit nu este emulat niciun buton, deoarece apasarea ps2 este incompatibila cu unele mouse-uri ps2 normale. -h Afieaza un rezumat al opiunilor liniei de comanda. -i interval Stabilete interval pentru a fi utilizat ca limita superioara de timp pentru clicuri multiple. In cazul in care intervalul dintre evenimentele de ridicare i coborare a butonului este mai mic decat limita, apasarea este considerata un clic dublu sau triplu. Timpul este exprimat in milisecunde. -k Omoara un <> in execuie. Acest lucru poate fi folosit de utilizatorii ,,busmouse" pentru a omori <> inainte de a rula X (cu excepia cazului in care folosete ,,-R" sau daca limitarea la o singura deschidere este eliminata din nucleu). -l set-caractere Alege tabelul de cautare inword(). Argumentul set-caractere este o lista de caractere. ,,-" este utilizata pentru a specifica un interval, iar ,,\" este utilizat pentru a eluda caracterul urmator sau pentru a furniza coduri octale. Numai caracterul vizibil poate aparea in setul de caractere, deoarece caracterele de control nu pot aparea in memoria video in modul text, de unde se taie selecia. -m nume-fiier Alege fiierul mouse pentru a fi deschis. Trebuie sa fie inainte de ,,-t" i ,,-o". -M Activeaza modul multiplu. Demonul va citi doua dispozitive de mouse diferite. Orice opiune ulterioara se va referi la cel de-al doilea dispozitiv, in timp ce orice opiune anterioara va fi utilizata pentru primul dispozitiv. Aceasta opiune foreaza automat activarea opiunii de repetare (-R). -o lista-de-opiuni-suplimentare Opiunea funcioneaza in mod similar cu opiunea ,,-o" din mount; este utilizata pentru a specifica o lista de ,,opiuni suplimentare" specifice fiecarui tip de mouse. Lista este desparita prin virgule. Opiunile dtr, rts sau ambele sunt utilizate de iniializarea seriala pentru a comuta liniile modemului ca, compatibil cu versiunile anterioare ale <>; reinei totui ca utilizarea opiunii ,,-o dtr" asociata cu tipuri de mouse care nu sunt seriale poate genera acum o eroare. i, apropo, utilizai ,,-o" dupa ,,-m" i dupa ,,-t". -p Foreaza indicatorul sa fie vizibil in timpul seleciei. Acesta este comportamentul din selection-1.7, dar uneori este confuz. Valoarea implicita este de a nu afia indicatorul, ceea ce poate fi, de asemenea, derutant. -r numar Stabilete capacitatea de reacie. O capacitate de reacie mai mare este utilizata pentru o micare mai rapida a cursorului. -R[nume] Determina <> sa acioneze ca un repetitor: orice date de mouse primite in modul grafic vor fi produse pe fifo ,,/dev/gpmdata" in protocolul nume, dat ca argument opional (fara spaiu intre !). In principiu, putei folosi aceleai nume ca pentru opiunea ,,-t", dei repetarea in unele protocoale s-ar putea sa nu fie implementata pentru o vreme. In plus, putei specifica raw ca nume, pentru a repeta datele mouse-ului octet cu octet, fara nicio traducere de protocol. In cazul in care nume este omis, valoarea implicita este ,,msc". Utilizand <> in modul repetitor, putei configura serverul X pentru a utiliza fifo-ul sau ca dispozitiv de mouse. Aceasta opiune este utila pentru posesorii de bus-mouse pentru a trece peste limitarea cu o singura deschidere. Este, de asemenea, o modalitate uoara de a gestiona acele mouse-uri stupide cu mod dual care va obliga sa inei butonul din mijloc apasat in timp ce schimbai modul video. Opiunea este forata de opiunea ,,-M". -s numar Stabilete rata de eantionare pentru dispozitivul mouse-ului. -S comenzi Activeaza procesarea comenzilor speciale i, opional, specifica comenzile personalizate ca o lista separata prin doua puncte. Consultai mai sus pentru o descriere detaliata a comenzilor speciale. -t nume Stabilete tipul de mouse. Utilizai ,,-t help" pentru a obine o lista cu tipurile permise. Incepand cu versiunea 1.18.1, lista arata, de asemenea, ce protocoale sunt disponibile ca repetitoare (a se vedea ,,-R" de mai sus), marcandu-le cu un asterisc (,,*"). Utilizai ,,-t" dupa ce ai selectat dispozitivul mouse-ului cu ,,-m". -v Afieaza informaiile despre versiune i iese. -2 Foreaza doua butoane. Aceasta inseamna ca butonul din mijloc, daca exista, va fi luat ca i cum ar fi fost cel din dreapta. -3 Foreaza trei butoane. In mod implicit, mouse-ul este considerat ca fiind unul cu doua butoane, pana cand este apasat butonul din mijloc. Daca exista trei butoane, cel din dreapta este utilizat pentru a extinde selecia, iar cel din mijloc pentru a o lipi. Atenie: daca folosii opiunea ,,-3" cu un mouse cu 2 butoane, nu vei putea lipi selecia. OPERAIA Pentru a selecta textul, apasai butonul stang al mouse-ului i tragei mouse-ul. Pentru a lipi textul in aceeai consola sau in alta consola, apasai butonul din mijloc. Butonul din dreapta este utilizat pentru a extinde selecia, ca in <>. Mouse-urile cu doua butoane folosesc butonul din dreapta pentru a lipi textul. Clicurile duble i triple selecteaza cuvinte i linii intregi. Se recomanda utilizarea opiunii ,,-p" pentru un raspuns vizual optim. In cazul in care este evideniat un spaiu dupa coninutul unei linii i daca nu exista alt text pe restul liniei, restul liniei va fi selectat automat. In cazul in care sunt selectate mai multe linii, spaiile finale evideniate de pe fiecare linie vor fi eliminate din memoria tampon de selecie. Orice ieire pe consola virtuala care conine selecia va terge selecia evideniata de pe ecran, pentru a menine integritatea afiajului, dei coninutul tamponului de lipire nu va fi afectat. Mecanismul de selecie este dezactivat daca consola virtuala de control este plasata in modul grafic, de exemplu, atunci cand se ruleaza X11, i este reactivat atunci cand se reia modul text; (dar pentru aceasta, a se vedea seciunea ERORI de mai jos). ERORI Este posibil ca serverul <> sa aiba probleme de interaciune cu X: daca mouse-ul dumneavoastra este un dispozitiv cu o singura deschidere (adica un mouse de bus), trebuie sa omorai <> inainte de a porni X sau sa utilizai opiunea ,,-R" (a se vedea mai sus). Pentru a omori <> trebuie doar sa apelai <>. Aceasta problema nu se aplica la mouse-uri seriale. Doua instane de <> nu pot rula pe acelai sistem. Daca avei doua mouse-uri, utilizai opiunea ,,-M" (a se vedea mai sus). In timp ce consola curenta este in modul grafic, <> doarme pana la revenirea la modul text (cu excepia cazului in care se utilizeaza opiunea ,, -R"). Prin urmare, nu va raspunde clienilor. In orice caz, este puin probabil ca clienii dornici de mouse sa se avante in consolele ascunse. Clienii livrai impreuna cu <> nu sunt actualizai, astfel ca exista poteniale riscuri de securitate atunci cand ii folosii. AUTORI Andrew Haylett (codul de selecie original, codul lui <>) Ian Zimmerman (fostul responsabil de intreinere) Alessandro Rubini (fostul responsabil de intreinere (inca ajuta foarte mult)) Nico Schottelius (actualul responsabil de intreinere) Muli i muli contribuitori, atat pentru <>, cat i pentru <>. RESPONSABILI CU INTREINEREA Actualul responsabil cu intreinerea este Nico Schottelius. Dar fara ajutorul lui Alessandro Rubini i al listei de discuii mi-ar fi imposibil sa menin ,,gpm". Lista de discuii pentru dezvoltare poate fi accesata la gpm@lists.linux.it. Mai multe informaii despre lista se gasesc in fiierul README, parte a distribuiei sursa a ,,gpm". FIIERE /var/run/gpm.pid PID-ul de funcionare a <> /dev/gpmctl Un soclu de control pentru clieni /dev/gpmdata Fifo scris de un demon repeater (`-R'). CONSULTAI I mev(1) Un exemplu de client pentru demonul <>. gpm-root(1) Un gestionar pentru evenimentele Control-Mouse. Fiierul de informaii despre <>, care ofera informaii mai complete i explica cum se poate scrie un client gpm. 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 . 4th Berkeley Distribution februarie 2002 GPM(8)