Senden von Tastatureingaben von Windows an Ubuntu im lokalen Netzwerk

Senden von Tastatureingaben von Windows an Ubuntu im lokalen Netzwerk

Ich habe zwei Maschinen in einem lokalen Netzwerk. Eine ist Windows 10, die andere Ubuntu 16.04.

Die Linux-Maschine ist nicht mein Hauptcomputer und steht auf der anderen Seite meines Büros, mit dem Monitor zu mir gerichtet, sodass ich Plex oder Netflix usw. spielen kann.

Ich möchte wissen, ob es eine Software gibt, mit der ich Tastatureingaben auf dem Linux-Rechner simulieren kann, indem ich die Eingaben vom Windows-Rechner sende. Auf diese Weise kann ich auf dem anderen Computer im Internet surfen (ein neues Lied oder Video auswählen usw.), ohne physisch aufstehen und zum anderen Rechner gehen zu müssen.

Ich habe bereits SSH zwischen den beiden eingerichtet, falls das hilft.

Ich hatte auf ein einfaches Befehlszeilentool gehofft, das so etwas macht wie:

C:/Users/Luke> sendinput 192.168.0.10 "keycode here"

Damit ich meine eigenen Skripte erstellen kann, um Dinge zu automatisieren. Ich bin jedoch auch nicht gegen eine GUI-basierte Anwendung. Ich möchte den Mehraufwand vermeiden, der mit der Verwendung einer Anwendung zur Remote-Desktop-Anzeige verbunden ist.

Jeder Ratschlag oder jedes Tool, das Sie vorschlagen können, wäre großartig. Ich nehme an, ich müsste in der Lage sein, Tastenkombinationen zu senden, damit ich vollen Zugriff auf die Tastaturkürzel habe, die in der Software verfügbar sind, die ich auf dem Ubuntu-Rechner verwende.

Antwort1

Sie sollten xdotool auf Ubuntu installieren und es dann über SSH verwenden:

Mit SSH von Cygwin:

ssh [email protected] /bin/dash -c  "'DISPLAY=:0 xdotool key Page_Up'"

Die Tastenanschläge sind die Namen der Tasten in keysymdef.h, wobei Sie das führende „XK_KP_“ entfernen: https://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h

Sie können auch eine Taste und mehrere Modifikatoren senden: „Alt+a“

Beachten Sie, dass ssh eine Ebene des maskierten Textes „frisst“.

Sie können auch Text eingeben, klicken, den Mauszeiger bewegen, Fenster öffnen usw.

Textbeispiel (auf zwei Zeilen für eine Rücksendung):

ssh [email protected] /bin/dash -c "'DISPLAY=:0 xdotool type \"echo hello
\"'"

Hier ist alles, was Sie tun können:

Usage: xdotool <cmd> <args>
Available commands:
  getactivewindow
  getwindowfocus
  getwindowpid
  search
  help
  version
  click
  getmouselocation
  key
  keydown
  keyup
  mousedown
  mousemove
  mousemove_relative
  mouseup
  type
  windowactivate
  windowfocus
  windowmap
  windowmove
  windowraise
  windowsize
  windowunmap
  set_window
  set_num_desktops
  get_num_desktops
  set_desktop
  get_desktop
  set_desktop_for_window
  get_desktop_for_window

Antwort2

Wenn Sie auf dem Remotecomputer im Internet surfen möchten, möchten Sie wahrscheinlich nicht nur die Tastatur freigeben, sondern auch den Bildschirm, damit Sie sehen können, was Sie tun.

Eine Möglichkeit hierzu istVNC, Anweisungen zur Einrichtung unter Windows/Ubuntu finden Sie beispielsweise unterHier(oder Google).

Wenn Sie eine SSH-Verbindung haben, können Sie praktisch alles auf dem Remote-Rechner automatisieren. Neben der Ausführung von Programmen, die andere Programme steuern, können Sie auch Geräteeingaben auf verschiedenen Ebenen einfügen. Eine Möglichkeit besteht darin, /dev/input/event*direkt im richtigen Format auf Geräte zu schreiben, siehe z. B.Hier(Antworten weiter unten, funktioniert auch für Tastaturen oder andere Eingabegeräte). Eine andere Möglichkeit besteht darin, X-Ereignisse (sowohl Tastatur als auch Maus) mithilfe von , oder ähnlichen Programmen einzufügen . xdotoolWenn Sie das tun möchten, müssen Sie in Ihrer Remote-Shell richtig einstellen (normalerweise auf ) und Sie müssen auch sicherstellen, dass die X-Autorisierung funktioniert (ich bin nicht sicher, wie dies in Ubuntu standardmäßig konfiguriert ist, im Allgemeinen muss ein gültiges Cookie enthalten sein, das vom Display-Manager ausgegeben wird).xneexmacroDISPLAY:0~/.Xauthority

Antwort3

Wenn Sie den Cursor aus dieser Entfernung sehen können, verwenden Sie Synergy, wenn nicht, verwenden Sie VNC.

verwandte Informationen