gpm - ein Tool zum Kopieren und Einfügen sowie ein Mausservier für virtuelle Konsolen
SYNOPSIS
gpm [ Optionen ]
DESCRIPTION
Dieses Paket soll ein nützlicher Mausservier für Anwendungen sein, die auf der Linux-Konsole ausgeführt werden. Es basiert auf dem Paket „selection“, und ein Teil seines Codes stammt von „selection“ selbst. Dieses Paket ist als Ersatz für „selection“ als Mechanismus zum Kopieren und Einfügen gedacht; es bietet auch zusätzliche Funktionen. Das Paket „selection“ bot die erste Implementierung zum Kopieren und Einfügen für Linux unter Verwendung von zwei Maustasten, und der Zwischenspeicher wird weiterhin als „Selection Buffer“ oder einfach „Selection“ bezeichnet. Die folgenden Informationen stammen aus der Texinfo-Datei, die die bevorzugte Informationsquelle ist.
Das ausführbare Programm gpm soll wie ein Daemon fungieren (daher wäre gpmd ein besserer Name dafür).
Dieser Abschnitt soll die Befehlszeilenoptionen für gpm beschreiben, während seine internen Abläufe
im nächsten Abschnitt beschrieben werden.
Aufgrund von Einschränkungen im ioctl(TIOCLINUX)-Systemaufruf muss gpm als Superuser ausgeführt werden.
Die Einschränkungen wurden in den letzten 1.1-Kerneln hinzugefügt, um ein Sicherheitsloch im Zusammenhang mit „selection“ und Bildschirmdumping zu beheben.
Der Server kann so konfiguriert werden, dass er den Vorlieben des Benutzers entspricht, und jede Anwendung, die die Maus verwendet,
erbt die Einstellungen des Servers. Von Version 1.02 bis 1.19.2 war es möglich, dass jeder Benutzer, der an der Systemkonsole angemeldet ist, das Mausverhalten mit der Option -q ändern konnte. Dies ist aus Sicherheitsgründen nicht mehr möglich.
Ab Version 0.97 führt das Serverprogramm sich selbst in den Hintergrund aus. Um gpm zu beenden, können Sie es einfach mit dem Befehlszeilenschalter -k erneut aufrufen, obwohl killall gpm eine bessere Wahl sein könnte.
SPEZIELLE BEFEHLE
Version 1.10 fügt die Möglichkeit hinzu, spezielle Befehle unter bestimmten Umständen auszuführen. Standardmäßig werden die speziellen Befehle zum Neustarten und Herunterfahren des Systems verwendet, aber der Benutzer kann seine/ihre bevorzugten Befehle angeben. Die Möglichkeit, Befehle mit der Maus auszulösen, ist für Programmierer nützlich, da sie es ermöglicht, ein sauberes Herunterfahren auszulösen, wenn die Tastatur gesperrt ist und kein Netzwerk verfügbar ist, um das System in einen stabilen Zustand zurückzuversetzen.
Spezielle Befehle werden durch Dreifachklicken der linken und rechten Taste ausgelöst – ein unwahrscheinliches Ereignis während der normalen Mausbedienung. Die einfachste Möglichkeit, dreifach zu klicken, besteht darin, eine der Tasten gedrückt zu halten und mit der anderen dreifach zu klicken. Wenn die spezielle Verarbeitung aktiviert ist, wird eine Meldung auf der Konsole angezeigt (und der Lautsprecher gibt zweimal einen Ton ab, falls vorhanden); wenn der Benutzer alle Tasten loslässt und innerhalb von drei Sekunden eine der Tasten erneut drückt, wird der entsprechende spezielle Befehl ausgeführt.
Die Standard-Befehle für die Maustasten sind:
linke Maustaste
Startet das System neu, indem ein Signal an den Init-Prozess gesendet wird.
mittlere Maustaste (falls vorhanden)
Führt /sbin/shutdown -h now aus.
rechte Maustaste
Führt /sbin/shutdown -r now aus.
Die Option -S aktiviert die Verarbeitung spezieller Befehle und ermöglicht es, die drei Befehle für die Maustasten zu ändern. Um die Standardbefehle zu übernehmen, verwenden Sie -S "" (d. h. geben Sie ein leeres Argument an). Um eigene Befehle anzugeben, verwenden Sie eine durch Doppelpunkte getrennte Liste, um die Befehle für die linke, mittlere und rechte Maustaste anzugeben. Wenn einer der Befehle leer ist, wird dies als "ein Signal an den Init-Prozess senden" interpretiert. Diese spezielle Operation wird zusätzlich zur Ausführung externer Befehle unterstützt, da es manchmal zu schwerwiegenden Fehlern kommt, die das System daran hindern, einen neuen Prozess zu starten. In diesen seltenen Fällen sollte der Programmierer dennoch in der Lage sein, das System herunterzufahren, und das Beenden des Init-Prozesses von einem laufenden Prozess aus ist die einzige Möglichkeit.
Als Beispiel verbindet '-S ":telinit 1:/sbin/halt"' das Beenden des Init-Prozesses mit der linken Maustaste, das Wechseln in den Single-User-Modus mit der mittleren Maustaste und das Anhalten des Systems mit der rechten Maustaste.
Systemadministratoren sollten bei der Verwendung spezieller Befehle vorsichtig sein, da GPM mit Superuser-Rechten ausgeführt wird. Spezielle Befehle eignen sich am besten für Computer, deren Maus nur von vertrauenswürdigen Personen physisch bedient werden kann.
KONTROLLZEILEN-OPTIONEN
Die folgenden Kontrollzeilen-Optionen sind verfügbar:
-a Beschl
Setzt den Beschleunigungswert, der verwendet wird, wenn ein einzelnes Bewegungereignis länger als delta ist (siehe -d).
-A[limit]
Startet mit deaktivierter Auswahlkopie. Dies ist als Sicherheitsmaßnahme gedacht; eine mögliche Attacke auf ein System besteht darin, einen bösartigen Shell-Befehl (z. B. rm -rf /) einschließlich des abschließenden Zeilenumbruchs in den Auswahlpuffer einzufügen, und dann muss das Opfer nur noch die mittlere Maustaste klicken. Ab Version 1.17.2 hat sich dies zu einem allgemeineren Mechanismus entwickelt; der GPM-Daemon kann die Auswahlkopie nach einer gewissen Inaktivitätszeit automatisch deaktivieren (altern lassen). Um diesen Modus zu aktivieren, geben Sie einfach den optionalen Limit-Parameter (ohne Leerzeichen dazwischen!) an, der als die Zeit in Sekunden interpretiert wird, für die eine Auswahl gültig und kopierbar ist. Ab Version 1.15.7 wird ein kleines Programm namens disable-paste bereitgestellt. Das Folgende ist eine gute Ergänzung zu /etc/profile, wenn Sie mehreren Benutzern erlauben, an Ihrer Konsole zu arbeiten.
`case $( /usr/bin/tty ) in
/dev/tty[0-9]*) /usr/bin/disable-paste ;;
esac'
-b Baudrate
Setzt die Baudrate.
-B Sequenz
Setzt die Tastensequenz. 123 ist die normale Sequenz, 321 kann von Linkshändern verwendet werden und 132 kann bei Mäusen mit zwei Tasten nützlich sein (insbesondere in Emacs). Alle Tastenpermutationen sind zulässig.
-d Delta
Setzt den Delta-Wert. Wenn ein einzelnes Bewegungereignis länger als Delta ist, wird accel als Multiplikator verwendet. (Muss 2 oder größer sein).
-D Verhindert das automatische Ausführen im Hintergrund beim Start und leitet Protokollmeldungen an den Standardfehlerausgabestrom und nicht an den Syslog-Mechanismus weiter. Dies ist nützlich zum Debuggen; in früheren Versionen wurde dies mit einer Compilezeit-Option durchgeführt.
-g nummer
Bei Geräten mit Gleitpunktemulation wird die angegebene Schaltfläche durch Tippen emuliert. Die Nummer muss 1, 2 oder 3 sein und bezieht sich auf die Schaltflächennummer vor der -B-Schaltflächen-Neuzuordnung. Diese Option gilt für die mman- und ps2-Dekodierung. Standardmäßig wird keine Schaltfläche emuliert, da das ps2-Tippen mit einigen normalen ps2-Mäusen nicht kompatibel ist.
-h Gibt eine Zusammenfassung der Befehlszeilenoptionen aus.
-i Intervall
Legt das Intervall als obere Zeitgrenze für mehrere Klicks fest. Wenn das Intervall zwischen dem Loslassen und dem Drücken einer Schaltfläche kürzer als die Grenze ist, wird der Vorgang als Doppelklick oder Dreifachklick betrachtet. Die Zeit wird in Millisekunden angegeben.
-k Beendet eine laufende gpm-Instanz. Dies kann von Busmouse-Benutzern verwendet werden, um gpm zu beenden, bevor X ausgeführt wird (es sei denn, sie verwenden `-R` oder die Einzelöffnungsbeschränkung wird aus dem Kernel entfernt).
-l Zeichensatz
Wählt die Nachschlagetabelle inword() aus. Das Argument Zeichensatz ist eine Liste von Zeichen. -' wird verwendet, um einen Bereich anzugeben, und` wird verwendet, um das nächste Zeichen zu maskieren oder Oktalcodes bereitzustellen. Nur sichtbare Zeichen können im Zeichensatz enthalten sein, da Steuerzeichen nicht im Textmodus-Videobereich angezeigt werden können, wo die Auswahl erfolgt.
-m Dateiname
Wählt die zu öffnende Mausdatei aus. Muss vor -t und -o stehen.
-M Aktiviert den Mehrfachmodus. Das Daemon-Programm liest zwei verschiedene Mausgeräte. Alle nachfolgenden Optionen beziehen sich auf das zweite Gerät, während alle vorhergehenden Optionen für das erste Gerät verwendet werden. Diese Option erzwingt automatisch die Repeater-Option (`-R`).
-o Liste-von-Zusatzoptionen
Die Option funktioniert ähnlich wie die Option '-o' von mount; sie wird verwendet, um eine Liste von Zusatzoptionen anzugeben, die für jeden Maustyp spezifisch sind. Die Liste ist durch Kommas getrennt. Die Optionen dtr, rts oder both werden von der seriellen Initialisierung verwendet, um die Modemleitungen so zu schalten, dass sie mit früheren gpm-Versionen kompatibel sind; beachten Sie jedoch, dass die Verwendung von -o dtr in Verbindung mit nicht-Standard-seriellen Maustypen nun einen Fehler verursachen kann. Und übrigens, verwenden Sie -o nach -m und nach -t.
-p Erzwingt, dass der Zeiger während der Auswahl sichtbar ist. Dies ist das Verhalten von `selection-1.7`, kann aber manchmal verwirrend sein. Standardmäßig wird der Zeiger nicht angezeigt, was ebenfalls verwirrend sein kann.
-r Zahl
Legt die Empfindlichkeit als Prozentsatz der Bewegung fest (1 bis 100, Standardwert 10). Eine niedrigere Zahl kann verwendet werden, um die Cursorbewegung zu verlangsamen; dies kann nicht verwendet werden, um eine Maus schneller zu bewegen, siehe -a.
-R[Name]
Bewirkt, dass gpm als Repeater fungiert: Alle Mausdaten, die im Grafikmodus empfangen werden, werden in das FIFO /dev/gpmdata im Protokollnamen geschrieben, der als optionales Argument angegeben wird (kein Leerzeichen dazwischen!). Im Prinzip können Sie die gleichen Namen wie für die Option -t verwenden, obwohl das Wiederholen in einige Protokolle möglicherweise nicht implementiert ist. Darüber hinaus können Sie raw als Namen angeben, um die Mausdaten Byte für Byte zu wiederholen, ohne Übersetzung des Protokolls. Wenn der Name weggelassen wird, ist der Standardwert msc. Durch die Verwendung von gpm im Repeater-Modus können Sie den X-Server so konfigurieren, dass er sein FIFO als Mausgerät verwendet. Diese Option ist nützlich für Busmouse-Benutzer, um die Einzelöffnungsbeschränkung zu umgehen. Es ist auch eine einfache Möglichkeit, diese dummen Dual-Mode-Mäuse zu verwalten, die Sie zwingen, die mittlere Taste gedrückt zu halten, während Sie den Videomodus ändern. Die Option wird durch die Option -M erzwungen.
-s Zahl
Legt die Abtastrate für das Mausgerät fest.
-S Befehle
Aktiviert die Verarbeitung spezieller Befehle und ermöglicht optional die Angabe benutzerdefinierter Befehle als durch Doppelpunkt getrennte Liste. Siehe oben für eine detaillierte Beschreibung der speziellen Befehle.
-t Name
Legt den Maustyp fest. Verwenden Sie -t help, um eine Liste der zulässigen Typen zu erhalten. Verwenden Sie -t, nachdem Sie das Mausgerät mit -m ausgewählt haben.
-v Gibt Versionsinformationen aus und beendet das Programm.
-2 Erzwingt zwei Tasten. Das bedeutet, dass die mittlere Taste, falls vorhanden, so behandelt wird, als wäre sie die
rechte Taste.
-3 Erzwingt drei Tasten. Standardmäßig wird die Maus als Zwei-Tasten-Maus betrachtet, bis die
mittlere Taste gedrückt wird. Wenn drei Tasten vorhanden sind, wird die rechte Taste verwendet, um die
Auswahl zu erweitern, und die mittlere Taste wird zum Einfügen verwendet. Vorsicht: Wenn Sie die Option
`-3` mit einer Zwei-Tasten-Maus verwenden, können Sie die Auswahl nicht einfügen.
FUNKTIONSWEISE
Um Text auszuwählen, drücken Sie die linke Maustaste und ziehen Sie die Maus. Um Text im selben oder einem anderen Konsolenfenster einzufügen, drücken Sie die mittlere Taste. Die rechte Taste wird
verwendet, um die
Auswahl zu erweitern, wie in xterm.
Mäuse mit zwei Tasten verwenden die rechte Taste zum Einfügen von Text.
Doppel- und Dreifachklicks wählen ganze Wörter und ganze Zeilen aus. Die Verwendung der Option -p wird
für eine optimale visuelle Rückmeldung empfohlen.
Wenn ein nachgestelltes Leerzeichen nach dem Inhalt einer Zeile hervorgehoben ist und sich keine anderen Zeichen auf dem Rest der Zeile befinden, wird der Rest der Zeile automatisch ausgewählt. Wenn eine Anzahl von Zeilen ausgewählt ist, werden hervorgehobene nachgestellte Leerzeichen in jeder Zeile aus dem Auswahlpuffer entfernt.
Jegliche Ausgabe auf der virtuellen Konsole, die die Auswahl enthält, löscht die hervorgehobene Auswahl vom Bildschirm, um die Integrität der Anzeige zu erhalten, wobei der Inhalt des Einfügepuffers jedoch unberührt bleibt.
Der Auswahlmechanismus wird deaktiviert, wenn die steuernde virtuelle Konsole in den Grafikmodus versetzt wird, z. B. beim Ausführen von X11, und wird wieder aktiviert, wenn der Textmodus wiederhergestellt wird. (Siehe jedoch den Abschnitt "BUGS" unten.)
FEHLER
Der gpm-Server kann möglicherweise Probleme bei der Interaktion mit X haben: Wenn Ihre Maus ein
"Single-Open"-Gerät ist (d. h. eine Bus-Maus), sollten Sie gpm beenden, bevor Sie X starten, oder die Option -R verwenden (siehe oben).
Um gpm zu beenden, rufen Sie einfach gpm -k auf. Dieses Problem gilt nicht für serielle Mäuse.
Es können nicht zwei Instanzen von gpm auf demselben System ausgeführt werden. Wenn Sie zwei Mäuse haben, verwenden Sie die Option -M (siehe
oben).
Während sich die aktuelle Konsole im Grafikmodus befindet, wartet gpm, bis der Textmodus wieder aktiv ist (es sei denn, -R wird verwendet). Daher wird es nicht auf Client-Anfragen antworten. Dennoch ist es unwahrscheinlich, dass „maus-begeisterte“ Clients in ausgeblendeten Konsolen auftauchen.
Die mit gpm ausgelieferten Clients sind nicht aktualisiert, was bei der Verwendung potenzielle Sicherheitsrisiken birgt.
AUTOREN
Andrew Haylett <_> (der ursprüngliche Auswahlcode) Ian Zimmerman <_> (alter Betreuer) Alessandro Rubini <_> (alter Betreuer (hilft immer noch sehr)) Nico Schottelius <_> (Betreuer)
Viele, viele Mitwirkende, sowohl für die Auswahl als auch für gpm.
BETREUER
Der derzeitige Betreuer ist Nico Schottelius. Aber ohne die Hilfe von Alessandro Rubini und der Mailingliste wäre es für mich unmöglich, gpm zu betreuen. Die Entwicklungs-Mailingliste ist unter _. Weitere Informationen zur Liste finden Sie im README-Datei-Teil der Quelldistribution von gpm.
DATEIEN
/var/run/gpm.pid Die PID des ausgeführten `gpm`-Prozesses
/dev/gpmctl Ein Steuersocket für Clients
/dev/gpmdata Die FIFO, in die ein Repeater (`-R`-Daemon) schreibt.
SIEHE AUCH
gpm-types(7) Beschreibung der derzeit von `gpm` unterstützten Zeigertypen
Die Info-Datei zu gpm, die umfassendere Informationen enthält und erklärt, wie man einen gpm-Client schreibt.