Wie kann man die Tastatur und Maus programmgesteuert vorübergehend "einfrieren", so dass niemand mit dem System in Konflikt geraten kann?
Es gibt verschiedene Möglichkeiten, wo dies nützlich ist. Ich habe zum Beispiel einen Laptop und möchte sicherstellen, dass niemand ihn benutzt, während ich gehe, auch wenn jemand das Passwort kennt oder es erraten kann (wie Frau oder Kinder) und den Appetit der Diebe stillt (wie es dis scheint) -Funktion). oder ich mache etwas aus der Ferne, um sicherzustellen, dass der Benutzer am Computer nicht stört.
Antworten:
Angenommen, Ihre GUI ist X-basiert (wie fast alle UNIX-GUIs), verwenden Sie
xinput
.Listen Sie zunächst Ihre Geräte auf:
Listen Sie die Details für Ihre Maus auf (id = 6 in unserem Beispiel):
Jetzt deaktiviere es:
So aktivieren Sie es:
Das gleiche gilt für die Tastatur. Ersetzen Sie einfach die int-prop-Nummer durch die richtige ID.
Getestet und gearbeitet an cygwin.
Natürlich müssen Sie im Voraus planen, wie Sie Ihre Geräte wieder aktivieren. Planen Sie es beispielsweise auf cron, aktivieren Sie es aus der Ferne wieder oder deaktivieren Sie nur eines davon an erster Stelle.
quelle
xinput set-int-prop 9 "Device Enabled" 8 0
- Nur 1) Ich möchte den Mauszeiger ebenfalls ausblenden und 2) wenn ich von X zu einem tty (Linux-Konsole / VTs) gehe und dann zurück zu X, dies wird zurückgesetzt (xinput list-props 9
bestätigt dies).xinput --set-int-prop
ist veraltet. Sie sollten--set-prop
stattdessen verwenden. Außerdemxinput --enable [device]
undxinput --disable [device]
können zum Aktivieren bzw. Deaktivieren von Geräten verwendet werden.Hier ist ein Shell-Skript, mit dem ich das Touchpad meines Laptops aktiviere, deaktiviere und umschalte:
quelle
xinput --disable 9
.Die mit xinput beantwortete Frage ist die richtige, aber hier ist eine kurze Frage, wenn Sie nur nach einer einfachen Bildschirmschoner-Sperre suchen. Ich habe dies in den 90er Jahren geschrieben, und alles, was es tut, ist, die Tastatur- und Mausereignisse des X-Servers zu verarbeiten, bis Sie das Kennwort eingeben. Keine Rückmeldung, es sei denn, Sie beenden das Programm, wenn Sie es richtig eingeben.
http://ishiboo.com/~danny/Projects/xl/
Ich benutze es als Bildschirmsperre, genau so, wie Sie es verwenden möchten.
quelle
Ihre Antwort ist wahrscheinlich die beste für Ihren zweiten Anwendungsfall (etwas aus der Ferne tun), aber wahrscheinlich nicht für Ihren ersten (nicht auf der Tastatur). Wie würden Sie xinput erneut ausführen, um den Zugriff wiederherzustellen, wenn Sie zurückkehren?
Die Standardlösung, um das System zu sperren, während Sie sich nicht in der Nähe befinden, ist XScreenSaver , das in den meisten Distributionen standardmäßig installiert ist. Wenn die Tastatur gesperrt ist, werden Sie vor dem Entsperren zur Eingabe Ihres Kennworts aufgefordert.
quelle
Zumindest auf Debian-basierten Systemen wie Ubuntu gibt es ein Hilfsprogramm,
xtrlock (1)
das über die Paket-Repositorys verfügbar ist.Dieses Dienstprogramm sperrt die Tastatur und die Maus, bis das Kennwort eingegeben wird, während Windows sichtbar bleibt. Ich finde es nützlich für Computer mit Informationsanzeigen und dergleichen.
quelle
Abhängig von Ihrer Hardware können Sie die Module entfernen und Ihre Hardware steuern. Ich habe ein solches Skript,
touchpadtoggle
um mein Touchpad zu aktivieren und zu deaktivieren.Der Tastatur scheint jedoch kein Modul zugeordnet zu sein, und das psmouse-Modul funktioniert nur gelegentlich.
quelle
Wenn Sie eine Desktop-Umgebung oder einen Anmeldemanager verwenden (GNOME, KDE, XFCE, LXDE), verfügen fast alle über eine Sperrbildschirmfunktion, bei der Sie Ihr Kennwort eingeben müssen, um zu Ihren Programmen zurückzukehren.
Da dies jedoch sehr einfach ist, ist Ihr Problem meines Erachtens komplexer / anders.
quelle
Ich schrieb dies (in
.zshrc
, sollte aber auch funktionieren.bashrc
), um dies mit Hilfe der obigen Antworten zu tun. Um dies mit der Tastatur zu tun, ändern Sie den Parameter ingrep Mouse
.quelle