NAZWA¶
gpm - narzędzie do kopiowania i wklejania oraz serwer myszy konsoli
wirtualnych
SKŁADNIA¶
gpm [
opcje ]
OPIS¶
Ten program stara się być użytecznym serwerem myszy dla
aplikacji uruchamianych na konsoli linuksowej. Bazuje on na pakiecie
"selection" i część jego kodu pochodzi
właśnie z selection. Pakiet ma być zamiennikiem programu
"selection" jako mechanizmu kopiowania i wklejania, zapewnia
także dodatkowe usługi. "Selection" było
pierwszą implementacją mechanizmu kopiowania i wklejania w
Linuksie, używającą dwóch przycisków myszy.
Zaznaczony tekst będzie dalej w tym dokumencie nazywany zaznaczeniem
(ang. selection). Poniższe informacje zostały wzięte z
pliku texinfo, który nadal jest polecanym źródłem
informacji.
Plik wykonywalny gpm ma działać jako demon (tak więc gpmd
byłoby dla niego lepszą nazwą). Ta
część opisuje opcje w linii poleceń gpm, a funkcje
programu opisuje kolejna część.
Z powodu ograniczeń wywołania systemowego
"ioctl(TIOCLINUX)", gpm musi być uruchamiany przez
administratora. Ograniczenia zostały dodane w ostatnich jądrach
1.1, w celu usunięcia błędu ochrony związanego z
zaznaczaniem i robieniem zrzutów ekranowych.
Serwer może być ustawiony, tak by pasował do gustu
użytkownika i dowolne aplikacje używające myszy
odziedziczą te ustawienia. W wersjach od 1.02 aż do 1.19.2,
właściwości myszy mogły być zmieniane przez
każdego użytkownika logującego się na konsoli
systemowej za pomocą opcji -q. Ze względów
bezpieczeństwa ta opcja nie jest już dostępna.
Od wersji 0.97 serwer sam umieszcza się w tle. Aby usunąć
gpm z pamięci należy wywołać go jeszcze raz z
opcją
-k, chociaż
killall gpm może
być lepszym wyjściem.
POLECENIA SPECJALNE¶
Wersja 1.10 dodała możliwość wykonywania
poleceń specjalnych w odpowiednich warunkach. Standardowo jest to
ponowne uruchomienie lub zatrzymanie systemu, ale użytkownik
może ustawić własne. Możliwość
wywoływania poleceń jest ciekawa dla programistów,
gdyż pozwala na czyste wyłączenie komputera, kiedy
klawiatura jest zablokowana i niedostępna jest sieć, w celu
przywrócenia systemu do stanu używalności.
Polecenia specjalne są włączane przez potrójne
kliknięcie lewym i prawym przyciskiem -- bardzo nietypowe przy
normalnym używaniu myszy. Najprościej jest je wykonać
trzymając jeden przycisk i trzykrotnie klikając drugim. Kiedy
wykonywanie specjalnych komend zostanie uruchomione, na konsoli pojawi
się wiadomość (i dwa dźwięki z
głośniczka jeśli się go posiada); jeśli
użytkownik puści wszystkie przyciski i wciśnie znowu
jeden z nich w ciągu trzech sekund, wtedy wykonane zostanie polecenie
przypisane do tego przycisku.
Standardowe polecenia specjalne to:
- lewy przycisk
- Ponowne uruchomienie systemu, przez wysłanie sygnału do
procesu init.
- środkowy przycisk (jeśli jest)
- Wykonuje /sbin/shutdown -h now
- prawy przycisk
- Wykonuje /sbin/shutdown -r now
Opcja
-S włącza wykonywanie poleceń specjalnych i
pozwala na zmianę trzech specjalnych poleceń. Aby
zaakceptować standardowe polecenia należy wpisać
-S
"" (podaje pusty argument). Aby podać swoje własne
polecenia, proszę użyć listy rozdzielonej dwukropkami
podając polecenia dla lewego, środkowego i prawego przycisku.
Jeśli jakieś polecenie jest puste, zostanie zinterpretowane jako
"wyślij sygnał do procesu inicjującego (init)".
Ta szczególna operacja jest udostępniana w
połączeniu z wykonywaniem poleceń zewnętrznych,
ponieważ czasem błąd programu uniemożliwia
forkowanie; w takim rzadkim przypadku programista powinien być w stanie
wyłączyć system pomimo tego, a zabicie procesu init jest
jedyną możliwością zrobienia tego.
Jako przykład:
-S ":telinit 1:/sbin/halt", przypisuje
zabicie
init lewemu przyciskowi, uruchomienie w trybie jednego
użytkownika środkowemu i zatrzymanie systemu prawemu
przyciskowi.
Administratorzy systemu powinni oczywiście postępować
bardzo ostrożnie z tymi poleceniami, ponieważ gpm uruchamia
się z prawami administratora. Polecenia specjalne są dobre tylko
w komputerach, gdzie fizyczny dostęp do myszy jest możliwy tylko
dla zaufanych osób.
OPCJE WIERSZA POLECEѶ
W wierszu poleceń dostępne są następujące
opcje:
- -a przysp
- Ustawia przyspieszenie myszy kiedy pojedynczy ruch myszą jest
dłuższy niż delta (zobacz -d).
- -A[limit]
- Uruchamia z wyłączonym mechanizmem wklejania. Jest to
pomyślane jako środek bezpieczeństwa - prawdopodobny
wydaje się następujący atak na system: ktoś
wkleja do bufora selekcji złośliwe polecenie powłoki
(rm -rf /) włączając znak końca linii, a
ofiara naciska środkowy przycisk myszy... W wersji 1.17.2
został wprowadzony bardziej ogólny mechanizm czasu
oczekiwania - serwer gpm może samoczynnie
wyłączyć mechanizm wklejania po pewnym czasie
nieaktywności. Aby włączyć ten tryb pracy,
należy podać opcjonalny parametr limit (bez spacji
pomiędzy opcją a argumentem!), który zostanie
zinterpretowany jako czas w sekundach, w którym bufor zaznaczenia
jest uważany za poprawny i możliwy do wklejania. W wersji
1.15.7 został dodany prosty program "disable-paste".
Jeżeli wiele użytkowników może pracować
na konsoli systemowej, to dobrym dodatkiem do pliku /etc/profile
mogą być następujące wiersze:
case $( /usr/bin/tty ) in
/dev/tty[0-9]*) /usr/bin/disable-paste ;;
esac
- -b baud
- Ustawia prędkość (baud rate).
- -B sekwencja
- Ustawia kolejność przycisków. “123”
jest normalnym ustawieniem, “321” może być
używane przez osoby leworęczne, a “132”
może być użyteczne przy myszy dwuprzyciskowej
(zwłaszcza w Emacsie). Wszystkie kombinacje są
dozwolone.
- -d delta
- Ustawia wartość delty. Kiedy pojedynczy ruch myszą
jest dłuższy niż delta, przysp jest
używane jako mnożnik (musi być większe lub
równe 2).
- -D
- Przy uruchamianiu nie uruchamia się automatycznie w tle i wypisuje
wiadomości na standardowego wyjście
błędów, a nie poprzez mechanizm syslog. Jest to
użyteczne w celu odpluskiwania; w poprzednich wersjach było
to robione za pomocą opcji kompilacji.
- -g numer
- Używany z urządzeniami typu glidepoint, emuluje
określony przycisk przez stukanie w gładzik. Numer
musi wynosić 1, 2 lub 3 i określa numer
przycisku przed zmianą ustawień w opcji -B. Ta opcja
wiąże się z dekodowaniem mman i ps2. Standardowo
żaden przycisk nie jest emulowany, ponieważ stukanie w tych
urządzeniach jest niekompatybilne z normalnymi myszkami ps2.
- -h
- Pokazuje streszczenie opcji w wierszu poleceń.
- -i interwał
- Ustawia górny limit czasowy przy wielokrotnych kliknięciach.
Jeśli czas pomiędzy puszczeniem i wciśnięciem
przycisku jest mniejszy niż ten interwał,
uważane jest to za podwójne lub potrójne
kliknięcie. Jednostką są milisekundy.
- -k
- Zabija działający gpm. Może być używane
przez użytkowników myszy typu "bus" w celu zabicia
gpm, przed uruchamianiem X (chyba że użyją opcji
-R lub ograniczenie pojedynczego otwarcia zostanie usunięte
z jądra).
- -l kodowanie
- Wybiera tablicę (LUT) dla "inword()". Argument
kodowanie jest listą znaków. "-" jest
używane do podania zakresu, a "\" do ochrony
następnego znaku lub zapewnienia kodu ósemkowego. Tylko
widoczne znaki mogą pojawić się w kodowaniu,
ponieważ znaki specjalne nie mogą pojawić się
w pamięci video w trybie tekstowym podczas kopiowania
zaznaczenia.
- -m plik
- Wybiera urządzenie myszy do otwarcia. Musi być podane przed
opcją -t i -o.
- -M
- Włącza tryb wielu urządzeń. Demon
będzie czytał dwa różne urządzenia
myszy. Każda następna opcja odnosi się do drugiego
urządzenia, a każda wcześniejsza do pierwszego. Ta
opcja automatycznie uruchamia "powielacz" (opcja
-R).
- -o lista-opcji-dodatkowych
- Opcja ta działa podobnie do opcji "-o" polecenia mount -
pozwala określić listę "dodatkowych opcji",
specyficznych dla danego typu myszy. Lista ta jest rozdzielona
przecinkami. Opcje dtr, rts lub both są
używane przy inicjalizacji myszy szeregowej do
włączenia linii modemu; opcje te są zgodne ze
wcześniejszymi wersjami gpm, jednakże używanie -o
dtr z urządzeniami myszy nie będącymi typu
serial, może teraz generować błąd.
- -p
- Włącza widoczny wskaźnik podczas zaznaczania. Tak
zachowuje się selection-1.7, lecz czasem jest to
denerwujące. Standardowo wskaźnik nie jest pokazywany, co
może być równie denerwujące.
- -r numer
- Ustawia czułość jako wartość
procentową (od 1 do 100, domyślnie 10). Niższa
czułość może posłużyć do
zwolnienia ruchów kursora, lecz nie da się w ten
sposób go przyspieszyć (zob. -a).
- -R[nazwa]
- Zmienia gpm, aby działał jako powielacz: wszystkie dane od
myszy w trybie graficznym zostaną przekazane do kolejki fifo
/dev/gpmdata w protokole nazwa. W
szczególności można użyć tych samych
nazw, jak dla opcji -t, aczkolwiek tryb powtarzania dla pewnych
protokołów może jeszcze nie być
zaimplementowany. Dodatkowo, można podać raw jako
nazwę, aby uzyskać powtarzanie bajt po bajcie bez
jakiejkolwiek translacji protokołów. Jeżeli nie
podano nazwy, to wartością domyślną
jest msc. Używając gpm w trybie powtarzania
można skonfigurować serwer X do używania jego kolejki
jako urządzenia myszy. Ta opcja jest przydatna dla
właścicieli myszy typu bus w celu ominięcia
ograniczeń pojedynczego otwarcia. To pozwala w prosty sposób
poradzić sobie z głupimi myszami, mogącymi
działać w dwóch trybach, co zmusza użytkownika
do trzymania środkowego przycisku w czasie zmiany trybu
graficznego. Ta opcja jest włączana przez opcję
-M.
- -s numer
- Ustawia częstotliwość próbkowania dla
urządzenia myszy.
- -S polecenia
- Włącza przetwarzanie poleceń specjalnych i
opcjonalnie ustawia polecenia specjalne (przez listę
oddzieloną dwukropkami). Zob. wyżej na dokładniejszy
opis poleceń specjalnych.
- -t nazwa
- Ustawia typ myszy. Wpis -t help pozwala uzyskać listę
możliwych typów. Opcji -t można
użyć po wybraniu urządzenia za pomocą opcji
-m
- -v
- Pokazuje informację o wersji i kończy działanie.
- -2
- Wymusza dwa przyciski. To oznacza, że środkowy przycisk
(jeśli istnieje) będzie działał jakby
był prawym.
- -3
- Wymusza trzy przyciski. Standardowo mysz jest uważana za
dwuprzyciskową, dopóki środkowy przycisk nie zostanie
wciśnięty. Jeżeli są trzy przyciski, prawy
jest używany do rozszerzenia zaznaczenie, a środkowy do
wklejenia. Uwaga: jeśli użyje się opcji -3 z
myszką dwuprzyciskową nie będzie móżna
wkleić zaznaczenia.
DZIAŁANIE¶
Aby zaznaczyć tekst proszę wcisnąć lewy przycisk i
przeciągnąć myszą. Aby wkleić tekst na tej
samej lub innej konsoli należy wcisnąć środkowy
przycisk. Prawy przycisk jest używany do zmiany rozmiaru zaznaczenia
(tak jak w "xterm").
Myszy dwuprzyciskowe używają prawego przycisku do wklejania.
Podwójne i potrójne kliknięcia zaznaczają
cały wyraz lub cały wiersz. Użycie opcji
-p jest
polecane w celu uzyskania lepszej widoczności.
Jeśli po zawartości wiersza zaznaczona jest kończąca
spacja i jeśli nie ma w tym wierszu więcej tekstu, jego reszta
zostanie zaznaczona automatycznie. Jeśli zaznaczone jest kilka wierszy,
zaznaczone spacje na końcach każdego z nich zostaną
usunięte z bufora zaznaczenia.
Jeśli w trakcie zaznaczenia na konsoli wirtualnej wyświetlone
zostaną jakieś znaki w zaznaczonym miejscu, podświetlenie
zostanie usunięte z ekranu, aby zachować
integralność wyświetlania, ale zawartość
bufora zostanie nienaruszona.
Mechanizm zaznaczania jest wyłączony jeśli wirtualna
konsola zostanie ustawiona w tryb graficzny, np. w czasie uruchamiania X11, i
zostanie przywrócona przy powrocie do trybu tekstowego (zob.
część BŁĘDY poniżej).
BŁĘDY¶
Serwer gpm może mieć problemy w czasie
współdziałania z X: jeśli dana mysz jest
urządzeniem z możliwością pojedynczego otwarcia
(np. myszy typu bus), powinno się wyłączyć gpm
przed uruchamianiem X lub użyć opcji
-R (zob.
wyżej). Aby wyłączyć gpm, proszę
użyć
gpm -k. Ten problem nie dotyczy myszy typu serial.
Dwie instancje gpm nie mogą zostać uruchomione na tym samym
systemie. Aby użyć dwóch myszki proszę
skorzystać z opcji
-M (zob. wyżej).
Podczas gdy aktualna konsola jest w trybie graficznym,
gpm jest
uśpiony dopóki nie powróci do trybu tekstowego (chyba
że zostanie użyte
-R). Przez to nie będzie
zwracał odpowiedzi klientom. Jednak jest to nietypowe, aby programy
wykorzystujące mysz, odczytywały ją na ukrytej konsoli.
Klienty wydzielone z gpm nie są aktualizowane, dlatego używanie
ich stanowi potencjalne zagrożenie dotyczące
bezpieczeństwa.
AUTORZY¶
Andrew Haylett <ajh@gec-mrc.co.uk> (oryginalny kod selection)
Alessandro Rubini <rubini@linux.it> (stary opiekun
(wciąż bardzo pomaga))
Ian Zimmerman <itz@speakeasy.org> (stary opiekun)
Nico Schottelius <nico@schottelius.org> (opiekun)
A także bardzo wiele innych osób, które pomogły tworzyć selection i gpm.
OPIEKUNOWIE¶
Obecnym opiekunem jest Nico Schottelius. Jednak bez pomocy Alessandra Rubiniego
i członków listy dyskusyjnej, on sam nie podołałby
zadaniu opiekowania się gpm. Adres lista dyskusyjnej dla
deweloperów to gpm@lists.linux.it. Więcej informacji o
liście znajduje się w pliku README, w części
poświęconej dystrybucji źródeł gpm.
PLIKI¶
/var/run/gpm.pid PID uruchomionego gpm
/dev/gpmctl Gniazdko kontrolne dla klientów
/dev/gpmdata Kolejka fifo zapisywana przez powielacz (opcja -R).
ZOBACZ TAKŻE¶
gpm-types(7)
Opis aktualnych typów urządzeń wskazujących obsługiwanych przez gpm.
Plik info o
gpm, który zawiera kompletne informacje i
wyjaśnia jak napisać klienta gpm.
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man
są: Jarek Wołoszyn (PTM) <yossa@dione.ids.pl>, Robert
Luberda (PTM) <robert@debian.org> i Michał Kułach
<michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu
manpages-pl; uwagi, pomoc, zgłaszanie błędów na
stronie
http://sourceforge.net/projects/manpages-pl/. Jest zgodne z
wersją
1.20.4 oryginału.