Senden von Tastendrücken an eine Remote-X-Sitzung über SSH

12

Also sitze ich in unserem Wohnzimmer auf einem Ubuntu-Laptop und schaue gleichzeitig einen Fernseher, der von einem Ubuntu-HTPC gesteuert wird. Ich habe eine IR-Fernbedienung eingerichtet und kann damit in 99% der Fälle alles steuern, was ich brauche.

Die Texteingabe auf einer Fernbedienung ist jedoch nicht einfach. Ich muss es nicht oft tun, aber wenn ich es tue, fühlt es sich einfacher an, 15 Fuß zu laufen, um eine USB-Tastatur anzuschließen und es auf diese Weise zu tun. Allerdings ... bin ich kriminell und medizinisch faul und habe das Gefühl, dass das Gehen über Entfernungen nicht nur unnötig ist, sondern die Roboter zeigt, die sie gewonnen haben. Mehr sage ich nicht!

Ich kann SSH in den HTPC einbinden ... Wie sende ich nun Tastendrücke an die X-Sitzung dieses Remote-Computers?

Ich sollte erwähnen, dass ich weiß, ich könnte VNC, aber der Fernseher ist 1080p und der Laptop ist 720p, so dass dies einige Skalierungsprobleme einführt. Aus technischer Sicht wäre mir eine Lösung lieber, mit der ich den Laptop vorübergehend in eine Remote-Tastatur verwandeln kann.

Oli
quelle
Ich bin sogar fauler als du. Anstatt eine IR-Fernbedienung zu konfigurieren (ich habe sogar eine gekauft!), Habe ich zusätzlich eine Trust-Funk-Tastatur gekauft .
MadMike

Antworten:

13

Sie sollten in der Lage sein, dies mit dem xdotoolBefehl zu tun , nachdem Sie die entsprechende X-Anzeige festgelegt haben, um z. B. einen einzelnen Abwärtspfeil im derzeit aktiven Fenster zu simulieren

$ DISPLAY=:0 xdotool getactivewindow key Down

Zur Eingabe von wörtlichem Text können Sie xdotool type <string>z

$ DISPLAY=:0 xdotool getactivewindow type 'your text here'

Das xdotoolPaket sollte im Universe-Repository verfügbar sein.

Stahlfahrer
quelle
Ich leugne nicht, dass es funktioniert, aber es ist ein bisschen miserabel, wenn Sie versuchen, einen Netzwerkstandort einzeln einzugeben.
Oli
3
Sie können verwenden xdotool type, um vollständige Zeichenfolgen wie eingegeben zu senden - siehe meine Bearbeitung oben.
Steeldriver
10

Mit x2xund etwas X11-Weiterleitung habe ich das zum Laufen gebracht.

ssh -X htpc x2x -to :0

Der einzige Nachteil im Moment ist, dass ich in einen TTY stoßen musste, um SSH zu töten, um ihn zu beenden. Ich schaue immer noch nach, wie ich aufhöre, wenn ich fertig bin! Ansonsten ist es eine nette und einfache (und abkürzbare) Methode, um Eingaben von einem Computer auf einen anderen zu übertragen.

Bearbeiten: Durch das Hinzufügen konnte -nomouseich das weitergeleitete x2xFenster schließen und es deaktivieren, um schnell zu anderen Dingen zurückzukehren, ohne die Verbindung trennen zu müssen.

Oli
quelle
-nomousescheint nicht mehr zu funktionieren; für mich unter Ubuntu 16.04 x2x druckt nur die Nutzungsinformationen, egal wo ich diese Flagge gesetzt habe.
Philipp Ludwig