Scroll to navigation

GPM(8) System Manager's Manual GPM(8)

NAZWA

gpm - narzędzie kopiowania i wklejania oraz serwer myszy

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. Ten pakiet ma być zamiennikiem programu "selection" jako mechanizmu kopiowania i wklejania, a także zapewnia 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. 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 wywołaj 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 reboot 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 go posiadasz); 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:

Reboot systemu, przez zasygnalizowanie procesu inicjującego.
środkowy przycisk (jeśli jest)
Wykonuje `/sbin/shutdown -h now'
Wykonuje `/sbin/shutdown -r now'

Opcja `-S' włącza wykonywanie poleceń specjalnych i pozwala na zmianę trzech specjalnych poleceń. Aby zaakceptować standardowe polecenia użyj `-S ""' (podaje pusty argument). Aby podać swoje własne polecenia, użyj 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 LINII POLECEŃ

Opcje w linii poleceń są następujące:

Ustawia przyspieszenie myszy kiedy pojedynczy ruch myszą jest dłuższy niż delta (zobacz -d).
Uruchamia z wyłączonym mechanizmem wklejania. Jest to pomyślna 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 timeoutu - 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, 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 linie:

`case $( /usr/bin/tty ) in
/dev/tty[0-9]*) /usr/bin/disable-paste ;;
esac'

Ustawia prędkość (baud rate).
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.
Ustawia wartość delty. Kiedy pojedynczy ruch myszą jest dłuższy niż delta, accel jest używane jako mnożnik. (Musi być większe lub równe 2).
Przy uruchamianiu nie uruchamia się automatycznie w tle i wypisuje wiadomości do standardowego wyjścia 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.
Używany z urządzeniami typu glidepoint, emuluje określony przycisk przez stukanie w tabliczkę. 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.
Pokazuje streszczenie opcji w linii poleceń.
Ustawia górny limit czasowy przy wielokrotnych kliknięciach. Jeśli czas pomiędzy puszczeniem i wciśnięciem przycisku jest mniejszy niż ten limit, uważane jest za podwójne lub potrójne kliknięcie. Czas jest w milisekundach.
Usuwa działający gpm. Może być używane przez użytkowników myszy typu `bus' w celu usunięcia gpm, przed uruchamianiem X-ów (chyba że użyją opcji `-R' lub ograniczenie pojedynczego otwarcia zostanie usunięte z jądra).
Wybiera tablicę (LUT) dla `inword()'. Argument charset jest listą znaków. `-' jest używane do podania zakresu, a `\ ' do `eskejpowania' następnego znaku lub zapewnienia kodu ósemkowego. Tylko widoczne znaki mogą pojawić się w charset, ponieważ znaki specjalne nie mogą pojawić się w pamięci video w trybie tekstowym podczas kopiowania zaznaczenia.
Wybiera urządzenie myszy. Standardowo jest to `/dev/mouse'.
Włącza tryb wielu urządzeń. Deamon 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').
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 typu serial 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.
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.
Ustawia czułość. Wyższa czułość jest używana do szybszego ruchu kursora.
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 nazwa, 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 cię do trzymania środkowego przycisku w czasie zmiany trybu graficznego. Ta opcja jest włączana przez opcję `-M'.
Ustawia częstotliwość próbkowania dla urządzenia myszy.
Włącza przetwarzanie poleceń specjalnych i opcjonalnie ustawia polecenia specjalne (przez listę oddzieloną dwukropkami). Zobacz wyżej na dokładniejszy opis poleceń specjalnych.
Ustawia typ myszy. Użyj `-t help', aby uzyskać listę możliwych typów. Od wersji 1.18.1 lista ta pokazuje także, które protokoły są dostępne jako `powielniki' (patrz opis opcji -R powyżej), oznaczając je gwiazdką (``*'').
Pokazuje informację o wersji i kończy działanie.
Zwiększa lub zmniejsza maksymalny poziom wiadomości, które będą zapisywane w logu systemu. Podanie argumentu dodatniego spowoduje zwiększenie liczby komunikatów. Można również podać argument ujemny w celu wyciszenia programu; jednakże z powodu zasad getopt(3) argument ujemny musi być sklejony z opcją, tj. nie może być spacji między opcją a argumentem (`-V-1', a nie `-V -1'). Argument tej opcji jest opcjonalny i wynosi domyślnie 1. Domyślnym poziomem logowania 5 (`LOG_NOTICE').
-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żyjesz opcji -3 z myszką dwuprzyciskową nie będziesz mógł wkleić zaznaczenia.

DZIAŁANIE

Aby zaznaczyć tekst wciśnij lewy przycisk i przeciągnij myszą. Aby wkleić tekst na tej samej lub innej konsoli wciśnij ś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łą linię. Użycie opcji `-p' jest polecane w celu uzyskania lepszej widoczności.

Jeśli po zawartości linii zaznaczona jest kończąca spacja i jeśli nie ma w tej linii więcej tekstu, reszta linii zostanie zaznaczona automatycznie. Jeśli zaznaczone jest kilka linii, zaznaczone spacje na końcach każdej z nich zostaną usunięte z bufora zaznaczenia.

Cokolwiek pokazane na wirtualnej konsoli w zaznaczonym miejscu usunie podświetlone zaznaczenie 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. (Zobacz część BŁĘDY poniżej).

BŁĘDY

Serwer gpm może mieć problemy w czasie współdziałania z X-ami: jeśli Twoja mysz jest urządzeniem z możliwością pojedynczego otwarcia (np. myszy typu bus), powinieneś wyłączyć gpm przed uruchamianiem X-ów, lub użyć opcji `-R' (zobacz wyżej). Aby wyłączyć gpm, użyj `gpm -k'. Ten problem nie dotyczy myszy typu serial.

Dwie instancje gpm nie mogą zostać uruchomione na tym samym systemie. Jeśli masz dwie myszki użyj opcji `-M' (zobacz 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.

AUTORZY

Andrew Haylett <ajh@gec-mrc.co.uk> (oryginalny kod selection)
Alessandro Rubini <rubini@linux.it> (stary maintainer (wciąż bardzo pomaga))
Ian Zimmerman <itz@speakeasy.org> (stary maintainer)
Nico Schottelius <nico@schottelius.org> (maintainer)
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 emailowej, on sam nie podołałby zadaniu opiekowania się gpm. Adres lista emailowej dla developeró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

 mev(1)      Prosty klient serwera gpm.
 gpm-root(1) Program do obsługi komunikatów kontrolnych myszy.

Plik info o `gpm', który zawiera kompletne informacje i wyjaśnia jak napisać klienta gpm.

październik 2001 4th Berkeley Distribution