GPM(8) GPM(8)
gpm - narzdzie kopiowania i wklejania oraz serwer myszy
gpm [ opcje ]
Ten program stara si by uytecznym serwerem myszy dla aplikacji
uruchamianych na konsoli linuksowej. Bazuje on na pakiecie "selection"
i cz jego kodu pochodzi wanie z selection. Ten pakiet ma by zamien-
nikiem programu "selection" jako mechanizmu kopiowania i wklejania, a
take zapewnia dodatkowe usugi. "Selection" byo pierwsz implementacj
mechanizmu kopiowania i wklejania w Linuksie, uywajc dwch przyciskw
myszy. Zaznaczony tekst bdzie dalej w tym dokumencie nazywany zaznacze-
niem (ang. selection). Ponisze informacje zostay wzite z pliku texinfo,
ktry nadal jest polecanym rdem informacji.
Plik wykonywalny gpm ma dziaa jako demon (tak wic gpmd byoby dla niego
lepsz nazw). Ta cz opisuje opcje w linii polece gpm, a funkcje programu
opisuje kolejna cz.
Z powodu ogranicze wywoania systemowego "ioctl(TIOCLINUX)", gpm musi by
uruchamiany przez administratora. Ograniczenia zostay dodane w ostat-
nich jdrach 1.1, w celu usunicia bdu ochrony zwizanego z zaznaczaniem i
robieniem zrzutw ekranowych.
Serwer moe by ustawiony, tak by pasowa do gustu uytkownika i dowolne
aplikacje uywajce myszy odziedzicz te ustawienia. W wersjach od 1.02 a
do 1.19.2, waciwoci myszy mogy by zmieniane przez kadego uytkownika
logujcego si na konsoli systemowej. Ze wzgldw bezpieczestwa ta opcja
nie jest ju dostpna.
Od wersji 0.97 serwer sam umieszcza si w tle. Aby usun gpm z pamici
wywoaj go jeszcze raz z opcj `-k', chocia `killall gpm' moe by lepszym
wyjciem.
Wersja 1.10 dodaa moliwo wykonywania polece specjalnych w odpowiednich
warunkach. Standardowo jest to reboot lub zatrzymanie systemu, ale
uytkownik moe ustawi wasne. Moliwo wywoywania polece jest ciekawa dla
programistw, gdy pozwala na czyste wyczenie komputera, kiedy klawiatura
jest zablokowana i niedostpna jest sie, w celu przywrcenia systemu do
stanu uywalnoci.
Polecenia specjalne s wczane przez potrjne kliknicie lewym i prawym
przyciskiem -- bardzo nietypowe przy normalnym uywaniu myszy. Najpro-
ciej jest je wykona trzymajc jeden przycisk i trzykrotnie klikajc
drugim. Kiedy wykonywanie specjalnych komend zostanie uruchomione, na
konsoli pojawi si wiadomo (i dwa dwiki z goniczka jeli go posiadasz);
jeli uytkownik puci wszystkie przyciski i wcinie znowu jeden z nich w
cigu trzech sekund, wtedy wykonane zostanie polecenie przypisane do
tego przycisku.
Standardowe polecenia specjalne to:
lewy przycisk
Reboot systemu, przez zasygnalizowanie procesu inicjujcego.
rodkowy przycisk (jeli jest)
Wykonuje `/sbin/shutdown -h now'
prawy przycisk
Wykonuje `/sbin/shutdown -r now'
Opcja `-S' wcza wykonywanie polece specjalnych i pozwala na zmian
trzech specjalnych polece. Aby zaakceptowa standardowe polecenia uyj
`-S ""' (podaje pusty argument). Aby poda swoje wasne polecenia, uyj
listy rozdzielonej dwukropkami podajc polecenia dla lewego, rodkowego i
prawego przycisku. Jeli jakie polecenie jest puste, zostanie zinterpre-
towane jako `wylij sygna do procesu inicjujcego (init)'. Ta szczeglna
operacja jest udostpniana w poczeniu z wykonywaniem polece zewntrznych,
poniewa czasem bd programu uniemoliwia forkowanie; w takim rzadkim
przypadku programista powinien by w stanie wyczy system pomimo tego, a
zabicie procesu `init' jest jedyn moliwoci zrobienia tego.
Jako przykad: `-S ":telinit 1:/sbin/halt"', przypisuje zabicie `init'
lewemu przyciskowi, uruchomienie w trybie jednego uytkownika rodkowemu
i zatrzymanie systemu prawemu przyciskowi.
Administratorzy systemu powinni oczywicie postpowa bardzo ostronie z
tymi poleceniami, poniewa gpm uruchamia si z prawami administratora.
Polecenia specjalne s dobre tylko w komputerach, gdzie fizyczny dostp
do myszy jest moliwy tylko dla zaufanych osb.
Opcje w linii polece s nastpujce:
-a accel
Ustawia przyspieszenie myszy kiedy pojedynczy ruch mysz jest
duszy ni delta (zobacz -d).
-A [limit]
Uruchamia z wyczonym mechanizmem wklejania. Jest to pomylna jako
rodek bezpieczestwa - prawdopodobny wydaje si nastpujcy atak na
system: kto wkleja do bufora selekcji zoliwe polecenie powoki
(`rm -rf /') wczajc znak koca linii, a ofiara naciska rodkowy
przycisk myszy... W wersji 1.17.2 zosta wprowadzony bardziej
oglny mechanizm timeoutu - serwer gpm moe samoczynnie wyczy
mechanizm wklejania po pewnym czasie nieaktywnoci. Aby wczy ten
tryb pracy, naley poda opcjonalny parametr limit, ktry zostanie
zinterpretowany jako czas w sekundach, w ktrym bufor zaznaczenia
jest uwaany za poprawny i moliwy do wklejania. W wersji 1.15.7
zosta dodany prosty program `disable-paste'. Jeeli wiele
uytkownikw moe pracowa na konsoli systemowej, to dobrym
dodatkiem do pliku `/etc/profile' mog by nastpujce linie:
`case $( /usr/bin/tty ) in
/dev/tty[0-9]*) /usr/bin/disable-paste ;;
esac'
-b baud
Ustawia prdko (baud rate).
-B sekwencja
Ustawia kolejno przyciskw. ``123'' jest normalnym ustawieniem,
``321'' moe by uywane przez osoby leworczne, a ``132'' moe by
uyteczne przy myszy dwuprzyciskowej (zwaszcza w emacsie). Wszys-
tkie kombinacje s dozwolone.
-d delta
Ustawia warto delty. Kiedy pojedynczy ruch mysz jest duszy ni
delta, accel jest uywane jako mnonik. (Musi by wiksze lub rwne
2).
-D Przy uruchamianiu nie uruchamia si automatycznie w tle i wyp-
isuje wiadomoci do standardowego wyjcia bdw, a nie poprzez mech-
anizm syslog. Jest to uyteczne w celu odpluskiwania; w poprzed-
nich wersjach byo to robione za pomoc opcji kompilacji.
-g numer
Uywany z urzdzeniami typu glidepoint, emuluje okrelony przycisk
przez stukanie w tabliczk. numer musi wynosi `1', `2' lub `3' i
okrela numer przycisku przed zmian ustawie w opcji `-B'. Ta
opcja wie si z dekodowaniem mman i ps2. Standardowo aden przy-
cisk nie jest emulowany, poniewa stukanie w tych urzdzeniach
jest niekompatybilne z normalnymi myszkami ps2.
-h Pokazuje streszczenie opcji w linii polece.
-i interwa
Ustawia grny limit czasowy przy wielokrotnych klikniciach. Jeli
czas pomidzy puszczeniem i wciniciem przycisku jest mniejszy ni
ten limit, uwaane jest za podwjne lub potrjne kliknicie. Czas
jest w milisekundach.
-k Usuwa dziaajcy gpm. Moe by uywane przez uytkownikw myszy typu
`bus' w celu usunicia gpm, przed uruchamianiem X-w (chyba e uyj
opcji `-R' lub ograniczenie pojedynczego otwarcia zostanie
usunite z jdra).
-l charset
Wybiera tablic (LUT) dla `inword()'. Argument charset jest list
znakw. `-' jest uywane do podania zakresu, a `\ ' do `eskejpowa-
nia' nastpnego znaku lub zapewnienia kodu semkowego. Tylko
widoczne znaki mog pojawi si w charset, poniewa znaki specjalne
nie mog pojawi si w pamici video w trybie tekstowym podczas
kopiowania zaznaczenia.
-m filename
Wybiera urzdzenie myszy. Standardowo jest to `/dev/mouse'.
-M Wcza tryb wielu urzdze. Deamon bdzie czyta dwa rne urzdzenia
myszy. Kada nastpna opcja odnosi si do drugiego urzdzenia, a
kada wczeniejsza do pierwszego. Ta opcja automatycznie uruchamia
``powielacz'' (opcja `-R').
-o lista-opcji-dodatkowych
Opcja ta dziaa podobnie do opcji ``-o'' polecenia mount -
pozwala okreli list ``dodatkowych opcji'', specyficznych dla
danego typu myszy. Lista ta jest rozdzielona przecinkami. Opcje
`dtr', `rts' lub `both' s uywane przy inicjalizacji myszy typu
serial do wczenia linii modemu; opcje te s zgodne ze wcze-
niejszymi wersjami gpm, jednake uywanie -o dtr z urzdzeniami
myszy nie bdcymi typu serial, moe teraz generowa bd.
-p Wcza widoczny wskanik podczas zaznaczania. Tak zachowuje si
selection-1.7, lecz czasem jest to denerwujce. Standardowo
wskanik nie jest pokazywany, co moe by rwnie denerwujce.
-r numer
Ustawia czuo. Wysza czuo jest uywana do szybszego ruchu kursora.
-Rnazwa
Zmienia gpm, aby dziaa jako powielacz: wszystkie dane od myszy w
trybie graficznym zostan przekazane do kolejki fifo /dev/gpmdata
w protokole nazwa. W szczeglnoci mona uy tych samych nazw, jak
dla opcji `-t', aczkolwiek tryb powtarzania dla pewnych protokow
moe jeszcze nie by zaimplementowany. Dodatkowo, mona poda `raw'
jako nazwa, aby uzyska powtarzanie bajt po bajcie bez jakiejkol-
wiek translacji protokow. Jeeli nie podano nazwy, to wartoci
domyln jest `msc'. Uywajc gpm w trybie powtarzania mona skon-
figurowa serwer X do uywania jego kolejki jako urzdzenia myszy.
Ta opcja jest przydatna dla wacicieli myszy typu bus w celu
ominicia ogranicze pojedynczego otwarcia. To pozwala w prosty
sposb poradzi sobie z gupimi myszami, mogcymi dziaa w dwch try-
bach, co zmusza ci do trzymania rodkowego przycisku w czasie
zmiany trybu graficznego. Ta opcja jest wczana przez opcj `-M'.
-s numer
Ustawia czstotliwo prbkowania dla urzdzenia myszy.
-S polecenia
Wcza przetwarzanie polece specjalnych i opcjonalnie ustawia
polecenia specjalne (przez list oddzielon dwukropkami). Zobacz
wyej na dokadniejszy opis polece specjalnych.
-t nazwa
Ustawia typ myszy. Uyj `-t help', aby uzyska list moliwych typw.
Od wersji 1.18.1 lista ta pokazuje take, ktre protokoy s dostpne
jako `powielniki' (patrz opis opcji -R powyej), oznaczajc je
gwiazdk (``*'').
-v Pokazuje informacj o wersji i koczy dziaanie.
-V verbosity increment
Zwiksza lub zmniejsza maksymalny poziom wiadomoci, ktre bd
zapisywane w logu systemu. Podanie argumentu dodatniego
spowoduje zwikszenie liczby komunikatw. Mona rwnie poda argument
ujemny w celu wyciszenia programu; jednake z powodu zasad
getopt(3) argument ujemny musi by sklejony z opcj, tj. nie moe
by spacji midzy opcj a argumentem (`-V-1', a nie `-V -1'). Argu-
ment tej opcji jest opcjonalny i wynosi domylnie 1. Domylnym
poziomem logowania 5 (`LOG_NOTICE').
-2 Wymusza dwa przyciski. To oznacza, e rodkowy przycisk (jeli ist-
nieje) bdzie dziaa jakby by prawym.
-3 Wymusza trzy przyciski. Standardowo mysz jest uwaana za dwuprzy-
ciskow, dopki rodkowy przycisk nie zostanie wcinity. Jeeli s
trzy przyciski, prawy jest uywany do rozszerzenia zaznaczenie, a
rodkowy do wklejenia. Uwaga: jeli uyjesz opcji -3 z myszk
dwuprzyciskow nie bdziesz mg wklei zaznaczenia.
Aby zaznaczy tekst wcinij lewy przycisk i przecignij mysz. Aby wklei
tekst na tej samej lub innej konsoli wcinij rodkowy przycisk. Prawy
przycisk jest uywany do zmiany rozmiaru zaznaczenia (tak jak w
`xterm').
Myszy dwuprzyciskowe uywaj prawego przycisku do wklejania,
Podwjne i potrjne kliknicia zaznaczaj cay wyraz lub ca lini. Uycie
opcji `-p' jest polecane w celu uzyskania lepszej widocznoci.
Jeli po zawartoci linii zaznaczona jest koczca spacja i jeli nie ma w
tej linii wicej tekstu, reszta linii zostanie zaznaczona automatycznie.
Jeli zaznaczone jest kilka linii, zaznaczone spacje na kocach kadej z
nich zostan usunite z bufora zaznaczenia.
Cokolwiek pokazane na wirtualnej konsoli w zaznaczonym miejscu usunie
podwietlone zaznaczenie z ekranu, aby zachowa integralno wywietlania,
ale zawarto bufora zostanie nienaruszona.
Mechanizm zaznaczania jest wyczony jeli wirtualna konsola zostanie
ustawiona w tryb graficzny, np. w czasie uruchamiania X11, i zostanie
przywrcona przy powrocie do trybu tekstowego. (Zobacz cz BDY poniej).
Serwer gpm moe mie problemy w czasie wspdziaania z X-ami: jeli Twoja
mysz jest urzdzeniem z moliwoci pojedynczego otwarcia (np. myszy typu
bus), powiniene wyczy gpm przed uruchamianiem X-w, lub uy opcji `-R'
(zobacz wyej). Aby wyczy gpm, uyj `gpm -k'. Ten problem nie dotyczy
myszy typu serial.
Dwie instancje gpm nie mog zosta uruchomione na tym samym systemie.
Jeli masz dwie myszki uyj opcji `-M' (zobacz wyej).
Podczas gdy aktualna konsola jest w trybie graficznym, gpm jest upiony
dopki nie powrci do trybu tekstowego (chyba e zostanie uyte `-R').
Przez to nie bdzie zwraca odpowiedzi klientom. Jednak jest to niety-
powe, aby programy wykorzystujce mysz, odczytyway j na ukrytej konsoli.
Andrew Haylett <ajh [AT] gec-mrc.uk> (oryginalny kod selection)
Alessandro Rubini <rubini [AT] linux.it> (stary maintainer (wci bardzo pomaga))
Ian Zimmerman <itz [AT] speakeasy.org> (stary maintainer)
Nico Schottelius <nico [AT] schottelius.org> (maintainer)
A take bardzo wiele innych osb, ktre pomogy tworzy selection i gpm.
Obecnym opiekunem jest Nico Schottelius. Jednak bez pomocy Alessandra
Rubiniego i czonkw listy emailowej, on sam nie podoaby zadaniu
opiekowania si gpm. Adres lista emailowej dla developerw to
gpm [AT] lists.it. Wicej informacji o licie znajduje si w pliku
README, w czci powiconej dystrybucji rde gpm.
/var/run/gpm.pid PID uruchomionego gpm
/dev/gpmctl Gniazdko kontrolne dla klientw
/dev/gpmdata Kolejka fifo zapisywana przez powielacz (opcja `-R').
mev(1) Prosty klient serwera gpm.
gpm-root(1) Program do obsugi komunikatw kontrolnych myszy.
Plik info o `gpm', ktry zawiera kompletne informacje i wyjania jak
napisa klienta gpm.
4th Berkeley Distribution padziernik 2001 GPM(8)