Antworten:
Ich habe es selbst herausgefunden.
Stellen Sie zunächst sicher, dass Sie das evdev- Kernelmodul auf beiden Rechnern geladen haben .
Auf dem Remote-Computer, den Sie ausführen:
$ cat /dev/input/by-path/platform-i8042-serio-0-event-kbd | nc <IP> 4444
Und auf dem Client:
$ nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
(Hinweis: Wenn Sie netcat von netcat-openbsd verwenden, zum Beispiel in Ubuntu oder Fedora, verwenden Sie nicht das '-p')
Es funktioniert perfekt, egal ob ich in einem TTY oder in X.org bin. Und es läuft ohne Verzögerung!
Leider werden alle Schlüssel auch auf dem Remote-Computer eingegeben. Gibt es eine Möglichkeit, sie vorübergehend zu deaktivieren, während nc ausgeführt wird? Ich dachte, ich würde "cat -" auf dem entfernten Rechner ausführen, aber ein Strg-C würde es natürlich beenden.
Synergy teilt eine Tastatur über das Netzwerk zwischen mehreren Computern. Wenn es nicht direkt das tut, was Sie wollen, gibt es dort sicher Code, der Ihnen das Einrichten erleichtert.
Schauen Sie sich Synergy an .
Synergy ist eine kostenlose Open Source-Software, mit der Sie Ihre Maus und Tastatur auf einfache Weise für mehrere Computer freigeben können, wobei jeder Computer über ein eigenes Display verfügt. Es ist keine spezielle Hardware erforderlich. Sie benötigen lediglich ein lokales Netzwerk. Synergy wird unter Windows, Mac OS X und Linux unterstützt. Das Umleiten von Maus und Tastatur ist so einfach wie das Bewegen der Maus vom Bildschirmrand.
Der obige Vorschlag, nc (netcat) zu verwenden, funktioniert bei mir nicht.
Ich kann den Eingabestream mit diesem Befehl öffnen:
nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd
Ich bekomme die Erlaubnis verweigert, auch wenn ich es als sudo mache. Auf dem Zielcomputer ist eine sehr alte Linux-Installation installiert, daher waren die Dateien von / dev / input-Geräten möglicherweise vor langer Zeit schreibgeschützt.
Ich konnte dieses Problem jedoch mit x2x lösen und das Ergebnis ist sehr benutzerfreundlich.
Sie müssen "xhost +" auf dem Zielcomputer ausführen und gdmsetup verwenden, um Remoteverbindungen zu aktivieren (dies entfernt das Flag -nolisten für X, wenn gdm das nächste Mal eine X-Sitzung startet).
Danach ist Ihr xserver für Remoteverbindungen offen und x2x kann von der Quellmaschine (Tastatur) aus eine Verbindung zu ihm herstellen
x2x -to 192.168.1.3:0
Das Coole an x2x ist, dass es Ihnen ein kleines Steuerungsfenster auf dem Quellcomputer gibt und Tastaturereignisse nur dann an das Ziel gesendet werden, wenn dieses Fenster fokussiert ist. Dies ist eine sehr praktische Möglichkeit, dies zu tun (ich tippe diese Antwort gerade auf dem Quellcomputer ein, und es gelangen keine Tastendrücke auf den Zielcomputer, da das Kontrollfenster deaktiviert ist). Durch Klicken in die Mitte des Steuerfensters werden auch Mausereignisse weitergeleitet, und durch Klicken mit zwei Tasten wird das Senden von Mausereignissen beendet. Wenn Sie die Mausweiterleitung mit einem Klick im Steuerungsfenster aktivieren, werden ALLE Tastaturereignisse an das Ziel und keine an die Quelle gesendet. Somit wird ALT-TAB an das Ziel gesendet, ohne das Steuerfenster auf dem Quellcomputer zu defokussieren.
Ich habe virtuelle Desktops auf dem Quellcomputer aktiviert, also stecke ich das x2x-Steuerungsfenster einfach auf einen entfernten Desktop und gehe nur dorthin, wenn ich den Zielcomputer steuern muss.
Diese Version der Lösung befindet sich auf der X-Ebene, wobei sich die obige Antwort auf der Ebene der Linux-Geräte befindet. Dies funktioniert natürlich überhaupt nicht, wenn Sie X nicht sowohl auf dem Ziel als auch auf der Quelle ausführen.
nc -l 4444
, ohne das-p
. Lautman nc
,-p
ist in Kombination mit explizit verboten-l
. Ansonsten ist dies eine fantastische Lösung und genau das, was ich brauchte :)