| GPM(8) | System Manager's Manual | GPM(8) |
gpm - o ustensilă de tăiat și lipit și un server de mouse pentru console virtuale
gpm [ opțiuni ]
Acest pachet încearcă să fie un server de mouse util pentru aplicațiile care rulează în consola Linux. Se bazează pe pachetul „selection”, iar o parte din codul său provine chiar din «selection». Acest pachet este destinat să înlocuiască „selection” ca mecanism de tăiere și lipire; de asemenea, oferă facilități suplimentare. Pachetul „selection” a oferit prima implementare de tăiere și lipire pentru Linux folosind două butoane ale mouse-ului, iar memoria tampon de tăiere este încă numită „memorie tampon de selecție” sau pur și simplu „selecție” în tot acest document. Informațiile de mai jos sunt extrase din fișierul texinfo, care este sursa preferată de informații.
Executabilul «gpm» este menit să acționeze ca un demon (astfel, gpmd ar fi un nume mai potrivit pentru el). Această secțiune este menită să descrie opțiunile din linia de comandă pentru «gpm», în timp ce elementele sale interne sunt prezentate în secțiunea următoare.
Din cauza restricțiilor din apelul de sistem „ioctl(TIOCLINUX)”, «gpm» trebuie să fie rulat de către superutilizator. Restricțiile au fost adăugate în ultimele nuclee 1.1 pentru a remedia o breșă de securitate legată de selecția și descărcarea ecranului.
Serverul poate fi configurat în funcție de gustul utilizatorului, iar orice aplicație care utilizează mouse-ul va moșteni atitudinea serverului. De la versiunea 1.02 până la 1.19.2 a fost posibil ca orice utilizator conectat la consola de sistem să schimbe comportamentul mouse-ului folosind opțiunea „-q”. Acest lucru nu mai este posibil din motive de securitate.
Începând cu versiunea 0.97, programul server se plasează singur în fundal. Pentru a omorî «gpm», puteți să-l reinvocați cu ajutorul opțiunii „-k” din linia de comandă, deși comanda «killall gpm» poate fi o alegere mai bună.
Versiunea 1.10 adaugă capacitatea de a executa comenzi speciale în anumite circumstanțe. Comenzile speciale se referă în mod implicit la repornirea și oprirea sistemului, dar utilizatorul poate specifica alegerea sa personală. Capacitatea de a invoca comenzi cu ajutorul mouse-ului este una foarte utilă pentru programatori, deoarece permite emiterea unei închideri curate atunci când tastatura este blocată și nu există nicio rețea disponibilă pentru a readuce sistemul într-o stare sănătoasă.
Comenzile speciale sunt comutate prin triplu clic pe butonul stâng și drept - un eveniment puțin probabil în timpul utilizării normale a mouse-ului. Cel mai simplu mod de a face triplu clic este apăsarea unuia dintre butoane și triplul clic pe celălalt. Atunci când se comută procesarea specială, apare un mesaj pe consolă (și difuzorul emite două bipuri, dacă aveți un difuzor); dacă utilizatorul eliberează toate butoanele și apasă din nou pe unul dintre ele în decurs de trei secunde, atunci se execută comanda specială corespunzătoare butonului respectiv.
Comenzile speciale implicite sunt:
Opțiunea din linia de comandă „-S” activează procesarea comenzilor speciale și permite modificarea celor trei comenzi speciale. Pentru a accepta comenzile implicite, utilizați -S "" (de exemplu, specificați un argument gol). Pentru a specifica propriile comenzi, utilizați o listă separată prin două puncte pentru a specifica comenzile asociate butonului din stânga, mijloc și dreapta. Dacă una dintre comenzi este goală, aceasta este interpretată ca „trimite un semnal către procesul init”. Această operație particulară este acceptată, în plus față de executarea comenzilor externe, deoarece uneori erorile grave pun sistemul în imposibilitatea de a executa un apel fork(); în aceste cazuri rare, programatorul ar trebui să poată oricum să oprească sistemul, iar omorârea lui «init» dintr-un proces în curs de execuție este singura modalitate de a face acest lucru.
Ca un exemplu, -S ":telinit 1:/sbin/halt", asociază omorârea init cu butonul din stânga, trecerea la un singur utilizator cu cel din mijloc și oprirea sistemului cu butonul din dreapta.
În mod evident, administratorii de sistem trebuie să fie atenți la comenzile speciale, deoarece «gpm» rulează cu permisiuni de superutilizator. Comenzile speciale sunt cele mai potrivite pentru calculatoarele al căror mouse poate fi accesat fizic doar de persoane de încredere.
Opțiunile disponibile în linia de comandă sunt următoarele:
`case $( /usr/bin/tty ) in
/dev/tty[0-9]*) /usr/bin/disable-paste ;;
esac'
Pentru a selecta textul, apăsați butonul stâng al mouse-ului și trageți mouse-ul. Pentru a lipi textul în aceeași consolă sau în altă consolă, apăsați butonul din mijloc. Butonul din dreapta este utilizat pentru a extinde selecția, ca în «xterm».
Mouse-urile cu două butoane folosesc butonul din dreapta pentru a lipi textul.
Clicurile duble și triple selectează cuvinte și linii întregi. Se recomandă utilizarea opțiunii „-p” pentru un răspuns vizual optim.
În cazul în care este evidențiat un spațiu după conținutul unei linii și dacă nu există alt text pe restul liniei, restul liniei va fi selectat automat. În cazul în care sunt selectate mai multe linii, spațiile finale evidențiate de pe fiecare linie vor fi eliminate din memoria tampon de selecție.
Orice ieșire pe consola virtuală care conține selecția va șterge selecția evidențiată de pe ecran, pentru a menține integritatea afișajului, deși conținutul tamponului de lipire nu va fi afectat.
Mecanismul de selecție este dezactivat dacă consola virtuală de control este plasată în modul grafic, de exemplu, atunci când se rulează X11, și este reactivat atunci când se reia modul text; (dar pentru aceasta, a se vedea secțiunea ERORI de mai jos).
Este posibil ca serverul «gpm» să aibă probleme de interacțiune cu X: dacă mouse-ul dumneavoastră este un dispozitiv cu o singură deschidere (adică un mouse de bus), trebuie să omorâiți «gpm» înainte de a porni X sau să utilizați opțiunea „-R” (a se vedea mai sus). Pentru a omorî «gpm» trebuie doar să apelați «gpm -k». Această problemă nu se aplică la mouse-uri seriale.
Două instanțe de «gpm» nu pot rula pe același sistem. Dacă aveți două mouse-uri, utilizați opțiunea „-M” (a se vedea mai sus).
În timp ce consola curentă este în modul grafic, «gpm» doarme până la revenirea la modul text (cu excepția cazului în care se utilizează opțiunea „ -R”). Prin urmare, nu va răspunde clienților. În orice caz, este puțin probabil ca clienții dornici de mouse să se avânte în consolele ascunse.
Clienții livrați împreună cu «gpm» nu sunt actualizați, astfel că există potențiale riscuri de securitate atunci când îi folosiți.
Andrew Haylett <ajh@gec-mrc.co.uk> (codul de selecție original, codul lui «selection») Ian Zimmerman <itz@speakeasy.org> (fostul responsabil de întreținere) Alessandro Rubini <rubini@linux.it> (fostul responsabil de întreținere (încă ajută foarte mult)) Nico Schottelius <nico@schottelius.org> (actualul responsabil de întreținere) Mulți și mulți contribuitori, atât pentru «selection», cât și pentru «gpm».
Actualul responsabil cu întreținerea este Nico Schottelius. Dar fără ajutorul lui Alessandro Rubini și al listei de discuții mi-ar fi imposibil să mențin „gpm”. Lista de discuții pentru dezvoltare poate fi accesată la gpm@lists.linux.it. Mai multe informații despre listă se găsesc în fișierul README, parte a distribuției sursă a „gpm”.
/var/run/gpm.pid PID-ul de funcționare a «gpm» /dev/gpmctl Un soclu de control pentru clienți /dev/gpmdata Fifo scris de un demon repeater (`-R').
gpm-types(7) Descrierea tipurilor de mouse/indicatori acceptați de «gpm».
Fișierul de informații despre «gpm», care oferă informații mai complete și explică cum se poate scrie un client gpm.
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.
| februarie 2002 | 4th Berkeley Distribution |