GPM(8) System Manager's Manual GPM(8) NAZWA gpm - narzedzie do kopiowania i wklejania oraz serwer myszy konsoli wirtualnych SKLADNIA gpm [ opcje ] OPIS Ten program stara sie byc uzytecznym serwerem myszy dla aplikacji uruchamianych na konsoli linuksowej. Bazuje on na pakiecie "selection" i czesc jego kodu pochodzi wlasnie z selection. Pakiet ma byc zamiennikiem programu "selection" jako mechanizmu kopiowania i wklejania, zapewnia takze dodatkowe uslugi. "Selection" bylo pierwsza implementacja mechanizmu kopiowania i wklejania w Linuksie, uzywajaca dwoch przyciskow myszy. Zaznaczony tekst bedzie dalej w tym dokumencie nazywany zaznaczeniem (ang. selection). Ponizsze informacje zostaly wziete z pliku texinfo, ktory nadal jest polecanym zrodlem informacji. Plik wykonywalny gpm ma dzialac jako demon (tak wiec gpmd byloby dla niego lepsza nazwa). Ta czesc opisuje opcje w linii polecen gpm, a funkcje programu opisuje kolejna czesc. Z powodu ograniczen wywolania systemowego "ioctl(TIOCLINUX)", gpm musi byc uruchamiany przez administratora. Ograniczenia zostaly dodane w ostatnich jadrach 1.1, w celu usuniecia bledu ochrony zwiazanego z zaznaczaniem i robieniem zrzutow ekranowych. Serwer moze byc ustawiony, tak by pasowal do gustu uzytkownika i dowolne aplikacje uzywajace myszy odziedzicza te ustawienia. W wersjach od 1.02 az do 1.19.2, wlasciwosci myszy mogly byc zmieniane przez kazdego uzytkownika logujacego sie na konsoli systemowej za pomoca opcji -q. Ze wzgledow bezpieczenstwa ta opcja nie jest juz dostepna. Od wersji 0.97 serwer sam umieszcza sie w tle. Aby usunac gpm z pamieci nalezy wywolac go jeszcze raz z opcja -k, chociaz killall gpm moze byc lepszym wyjsciem. POLECENIA SPECJALNE Wersja 1.10 dodala mozliwosc wykonywania polecen specjalnych w odpowiednich warunkach. Standardowo jest to ponowne uruchomienie lub zatrzymanie systemu, ale uzytkownik moze ustawic wlasne. Mozliwosc wywolywania polecen jest ciekawa dla programistow, gdyz pozwala na czyste wylaczenie komputera, kiedy klawiatura jest zablokowana i niedostepna jest siec, w celu przywrocenia systemu do stanu uzywalnosci. Polecenia specjalne sa wlaczane przez potrojne klikniecie lewym i prawym przyciskiem -- bardzo nietypowe przy normalnym uzywaniu myszy. Najprosciej jest je wykonac trzymajac jeden przycisk i trzykrotnie klikajac drugim. Kiedy wykonywanie specjalnych komend zostanie uruchomione, na konsoli pojawi sie wiadomosc (i dwa dzwieki z glosniczka jesli sie go posiada); jesli uzytkownik pusci wszystkie przyciski i wcisnie znowu jeden z nich w ciagu trzech sekund, wtedy wykonane zostanie polecenie przypisane do tego przycisku. Standardowe polecenia specjalne to: lewy przycisk Ponowne uruchomienie systemu, przez wyslanie sygnalu do procesu init. srodkowy przycisk (jesli jest) Wykonuje /sbin/shutdown -h now prawy przycisk Wykonuje /sbin/shutdown -r now Opcja -S wlacza wykonywanie polecen specjalnych i pozwala na zmiane trzech specjalnych polecen. Aby zaakceptowac standardowe polecenia nalezy wpisac -S "" (podaje pusty argument). Aby podac swoje wlasne polecenia, prosze uzyc listy rozdzielonej dwukropkami podajac polecenia dla lewego, srodkowego i prawego przycisku. Jesli jakies polecenie jest puste, zostanie zinterpretowane jako "wyslij sygnal do procesu inicjujacego (init)". Ta szczegolna operacja jest udostepniana w polaczeniu z wykonywaniem polecen zewnetrznych, poniewaz czasem blad programu uniemozliwia forkowanie; w takim rzadkim przypadku programista powinien byc w stanie wylaczyc system pomimo tego, a zabicie procesu init jest jedyna mozliwoscia zrobienia tego. Jako przyklad: -S ":telinit 1:/sbin/halt", przypisuje zabicie init lewemu przyciskowi, uruchomienie w trybie jednego uzytkownika srodkowemu i zatrzymanie systemu prawemu przyciskowi. Administratorzy systemu powinni oczywiscie postepowac bardzo ostroznie z tymi poleceniami, poniewaz gpm uruchamia sie z prawami administratora. Polecenia specjalne sa dobre tylko w komputerach, gdzie fizyczny dostep do myszy jest mozliwy tylko dla zaufanych osob. OPCJE WIERSZA POLECEN W wierszu polecen dostepne sa nastepujace opcje: -a przysp Ustawia przyspieszenie myszy kiedy pojedynczy ruch mysza jest dluzszy niz delta (zobacz -d). -A[limit] Uruchamia z wylaczonym mechanizmem wklejania. Jest to pomyslane jako srodek bezpieczenstwa - prawdopodobny wydaje sie nastepujacy atak na system: ktos wkleja do bufora selekcji zlosliwe polecenie powloki (rm -rf /) wlaczajac znak konca linii, a ofiara naciska srodkowy przycisk myszy... W wersji 1.17.2 zostal wprowadzony bardziej ogolny mechanizm czasu oczekiwania - serwer gpm moze samoczynnie wylaczyc mechanizm wklejania po pewnym czasie nieaktywnosci. Aby wlaczyc ten tryb pracy, nalezy podac opcjonalny parametr limit (bez spacji pomiedzy opcja a argumentem!), ktory zostanie zinterpretowany jako czas w sekundach, w ktorym bufor zaznaczenia jest uwazany za poprawny i mozliwy do wklejania. W wersji 1.15.7 zostal dodany prosty program "disable-paste". Jezeli wiele uzytkownikow moze pracowac na konsoli systemowej, to dobrym dodatkiem do pliku /etc/profile moga byc nastepujace wiersze: case $( /usr/bin/tty ) in /dev/tty[0-9]*) /usr/bin/disable-paste ;; esac -b baud Ustawia predkosc (baud rate). -B sekwencja Ustawia kolejnosc przyciskow. "123" jest normalnym ustawieniem, "321" moze byc uzywane przez osoby leworeczne, a "132" moze byc uzyteczne przy myszy dwuprzyciskowej (zwlaszcza w Emacsie). Wszystkie kombinacje sa dozwolone. -d delta Ustawia wartosc delty. Kiedy pojedynczy ruch mysza jest dluzszy niz delta, przysp jest uzywane jako mnoznik (musi byc wieksze lub rowne 2). -D Przy uruchamianiu nie uruchamia sie automatycznie w tle i wypisuje wiadomosci na standardowego wyjscie bledow, a nie poprzez mechanizm syslog. Jest to uzyteczne w celu odpluskiwania; w poprzednich wersjach bylo to robione za pomoca opcji kompilacji. -g numer Uzywany z urzadzeniami typu glidepoint, emuluje okreslony przycisk przez stukanie w gladzik. Numer musi wynosic 1, 2 lub 3 i okresla numer przycisku przed zmiana ustawien w opcji -B. Ta opcja wiaze sie z dekodowaniem mman i ps2. Standardowo zaden przycisk nie jest emulowany, poniewaz stukanie w tych urzadzeniach jest niekompatybilne z normalnymi myszkami ps2. -h Pokazuje streszczenie opcji w wierszu polecen. -i interwal Ustawia gorny limit czasowy przy wielokrotnych kliknieciach. Jesli czas pomiedzy puszczeniem i wcisnieciem przycisku jest mniejszy niz ten interwal, uwazane jest to za podwojne lub potrojne klikniecie. Jednostka sa milisekundy. -k Zabija dzialajacy gpm. Moze byc uzywane przez uzytkownikow myszy typu "bus" w celu zabicia gpm, przed uruchamianiem X (chyba ze uzyja opcji -R lub ograniczenie pojedynczego otwarcia zostanie usuniete z jadra). -l kodowanie Wybiera tablice (LUT) dla "inword()". Argument kodowanie jest lista znakow. "-" jest uzywane do podania zakresu, a "\" do ochrony nastepnego znaku lub zapewnienia kodu osemkowego. Tylko widoczne znaki moga pojawic sie w kodowaniu, poniewaz znaki specjalne nie moga pojawic sie w pamieci video w trybie tekstowym podczas kopiowania zaznaczenia. -m plik Wybiera urzadzenie myszy do otwarcia. Musi byc podane przed opcja -t i -o. -M Wlacza tryb wielu urzadzen. Demon bedzie czytal dwa rozne urzadzenia myszy. Kazda nastepna opcja odnosi sie do drugiego urzadzenia, a kazda wczesniejsza do pierwszego. Ta opcja automatycznie uruchamia "powielacz" (opcja -R). -o lista-opcji-dodatkowych Opcja ta dziala podobnie do opcji "-o" polecenia mount - pozwala okreslic liste "dodatkowych opcji", specyficznych dla danego typu myszy. Lista ta jest rozdzielona przecinkami. Opcje dtr, rts lub both sa uzywane przy inicjalizacji myszy szeregowej do wlaczenia linii modemu; opcje te sa zgodne ze wczesniejszymi wersjami gpm, jednakze uzywanie -o dtr z urzadzeniami myszy nie bedacymi typu serial, moze teraz generowac blad. -p Wlacza widoczny wskaznik podczas zaznaczania. Tak zachowuje sie selection-1.7, lecz czasem jest to denerwujace. Standardowo wskaznik nie jest pokazywany, co moze byc rownie denerwujace. -r numer Ustawia responsywnosc. Wyzsza oznacza szybszy ruch kursora. -R[nazwa] Zmienia gpm, aby dzialal jako powielacz: wszystkie dane od myszy w trybie graficznym zostana przekazane do kolejki fifo /dev/gpmdata w protokole nazwa (uwaga, brak spacji przed argumentem!). W szczegolnosci mozna uzyc tych samych nazw, jak dla opcji -t, aczkolwiek tryb powtarzania dla pewnych protokolow moze jeszcze nie byc zaimplementowany. Dodatkowo, mozna podac raw jako nazwe, aby uzyskac powtarzanie bajt po bajcie bez jakiejkolwiek translacji protokolow. Jezeli nie podano nazwy, to wartoscia domyslna jest msc. Uzywajac gpm w trybie powtarzania mozna skonfigurowac serwer X do uzywania jego kolejki jako urzadzenia myszy. Ta opcja jest przydatna dla wlascicieli myszy typu bus w celu ominiecia ograniczen pojedynczego otwarcia. To pozwala w prosty sposob poradzic sobie z glupimi myszami, mogacymi dzialac w dwoch trybach, co zmusza uzytkownika do trzymania srodkowego przycisku w czasie zmiany trybu graficznego. Ta opcja jest wlaczana przez opcje -M. -s numer Ustawia czestotliwosc probkowania dla urzadzenia myszy. -S polecenia Wlacza przetwarzanie polecen specjalnych i opcjonalnie ustawia polecenia specjalne (przez liste oddzielona dwukropkami). Zob. wyzej na dokladniejszy opis polecen specjalnych. -t nazwa Ustawia typ myszy. Liste dozwolonych typow mozna uzyskac za pomoca opcji -t. Od wersji 1.18.1 lista pokazuje rowniez ktore protokoly sa dostepne jako powielacze (zob. opcje -R powyzej), oznaczajac je znakiem gwiazdki *. Opcji -t mozna uzyc po wybraniu urzadzenia za pomoca opcji -m -v Pokazuje informacje o wersji i konczy dzialanie. -2 Wymusza dwa przyciski. To oznacza, ze srodkowy przycisk (jesli istnieje) bedzie dzialal jakby byl prawym. -3 Wymusza trzy przyciski. Standardowo mysz jest uwazana za dwuprzyciskowa, dopoki srodkowy przycisk nie zostanie wcisniety. Jezeli sa trzy przyciski, prawy jest uzywany do rozszerzenia zaznaczenie, a srodkowy do wklejenia. Uwaga: jesli uzyje sie opcji -3 z myszka dwuprzyciskowa nie bedzie mozna wkleic zaznaczenia. DZIALANIE Aby zaznaczyc tekst prosze wcisnac lewy przycisk i przeciagnac mysza. Aby wkleic tekst na tej samej lub innej konsoli nalezy wcisnac srodkowy przycisk. Prawy przycisk jest uzywany do zmiany rozmiaru zaznaczenia (tak jak w "xterm"). Myszy dwuprzyciskowe uzywaja prawego przycisku do wklejania. Podwojne i potrojne klikniecia zaznaczaja caly wyraz lub caly wiersz. Uzycie opcji -p jest polecane w celu uzyskania lepszej widocznosci. Jesli po zawartosci wiersza zaznaczona jest konczaca spacja i jesli nie ma w tym wierszu wiecej tekstu, jego reszta zostanie zaznaczona automatycznie. Jesli zaznaczone jest kilka wierszy, zaznaczone spacje na koncach kazdego z nich zostana usuniete z bufora zaznaczenia. Jesli w trakcie zaznaczenia na konsoli wirtualnej wyswietlone zostana jakies znaki w zaznaczonym miejscu, podswietlenie zostanie usuniete z ekranu, aby zachowac integralnosc wyswietlania, ale zawartosc bufora zostanie nienaruszona. Mechanizm zaznaczania jest wylaczony jesli wirtualna konsola zostanie ustawiona w tryb graficzny, np. w czasie uruchamiania X11, i zostanie przywrocona przy powrocie do trybu tekstowego (zob. czesc USTERKI ponizej). USTERKI Serwer gpm moze miec problemy w czasie wspoldzialania z X: jesli dana mysz jest urzadzeniem z mozliwoscia pojedynczego otwarcia (np. myszy typu bus), powinno sie wylaczyc gpm przed uruchamianiem X lub uzyc opcji -R (zob. wyzej). Aby wylaczyc gpm, prosze uzyc gpm -k. Ten problem nie dotyczy myszy szeregowej. Dwie instancje gpm nie moga zostac uruchomione na tym samym systemie. Aby uzyc dwoch myszy prosze skorzystac z opcji -M (zob. wyzej). Podczas gdy aktualna konsola jest w trybie graficznym, gpm jest uspiony dopoki nie powroci do trybu tekstowego (chyba ze zostanie uzyte -R). Przez to nie bedzie zwracal odpowiedzi klientom. Jednak jest to nietypowe, aby programy wykorzystujace mysz, odczytywaly ja na ukrytej konsoli. Klienty wydzielone z gpm nie sa aktualizowane, dlatego uzywanie ich stanowi potencjalne zagrozenie dotyczace bezpieczenstwa. AUTORZY Andrew Haylett (oryginalny kod selection) Alessandro Rubini (stary opiekun (wciaz bardzo pomaga)) Ian Zimmerman (stary opiekun) Nico Schottelius (opiekun) A takze bardzo wiele innych osob, ktore pomogly tworzyc selection i gpm. OPIEKUNOWIE Obecnym opiekunem jest Nico Schottelius. Jednak bez pomocy Alessandra Rubiniego i czlonkow listy dyskusyjnej, on sam nie podolalby zadaniu opiekowania sie gpm. Adres lista dyskusyjnej dla deweloperow to gpm@lists.linux.it. Wiecej informacji o liscie znajduje sie w pliku README, w czesci poswieconej dystrybucji zrodel gpm. PLIKI /var/run/gpm.pid PID uruchomionego gpm /dev/gpmctl Gniazdko kontrolne dla klientow /dev/gpmdata Kolejka fifo zapisywana przez powielacz (opcja -R). ZOBACZ TAKZE mev(1) przykladowy klient demona gpm. gpm-root(1) obsluga zdarzen myszy. Plik info o gpm, ktory zawiera kompletne informacje i wyjasnia jak napisac klienta gpm. TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Jarek Woloszyn , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . 4th Berkeley Distribution luty 2002 GPM(8)