ローカルネットワーク上の Windows から Ubuntu にキーボード入力を送信する

ローカルネットワーク上の Windows から Ubuntu にキーボード入力を送信する

ローカル ネットワーク上に 2 台のマシンがあります。1 台は Windows 10、もう 1 台は Ubuntu 16.04 です。

Linux マシンは私のメイン コンピュータではなく、オフィスの反対側に置かれており、モニターが私のほうを向いているので、Plex や Netflix などを再生できます。

Windows マシンからの入力を送信して、Linux マシンでキーボード入力をシミュレートできるソフトウェアがあるかどうか知りたいです。この方法を使用すると、物理的に立ち上がって他のマシンに移動することなく、他のコンピューターでインターネットを閲覧 (新しい曲やビデオなどを選択) できます。

役立つかどうかはわかりませんが、すでに 2 つの間に SSH が設定されています。

私は次のような機能を備えたシンプルなコマンドライン ツールを期待していました:

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

自動化するための独自のスクリプトを作成できるようにするためです。ただし、GUI ベースのアプリケーションに反対しているわけではありません。リモート デスクトップ表示アプリケーションを使用するオーバーヘッドを回避したいのです。

アドバイスやツールがあれば、ぜひ教えてください。Ubuntu マシンで使用しているソフトウェアで使用できるキーボード ショートカットに完全にアクセスできるように、キーの組み合わせを送信できる必要があると思います。

答え1

Ubuntu に xdotool をインストールし、ssh 経由で使用する必要があります。

cygwinのsshの場合:

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

キーストロークは、keysymdef.h 内のキーの名前で、先頭の「XK_KP_」を削除します。 https://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h

キーといくつかの修飾子を送信することもできます: "Alt+a"

sshはエスケープされたテキストの1レベルを「消費」していることに注意してください。

テキストを入力したり、クリックしたり、マウスを移動したり、ウィンドウを上げたりすることもできます。

テキスト例(返信を送信する場合は 2 行で):

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

できることは以下のとおりです:

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

答え2

リモート マシンでインターネットを閲覧する場合、キーボードを共有するだけでなく、自分が何をしているのかを確認できるようにディスプレイも共有する必要があるでしょう。

その方法の一つはVCWindows/Ubuntuでの設定方法については、例えば以下を参照してください。ここ(またはグーグル)。

SSH接続があれば、リモートマシン上のほとんどすべてを自動化できます。他のプログラムを制御するプログラムを実行するだけでなく、さまざまなレベルでデバイス入力を挿入することもできます。1つの方法は、/dev/input/event*正しい形式でデバイスに直接書き込むことです。例:ここ(答えは下にあります。キーボードやその他の入力デバイスでも機能します)。別の方法は、、、xdotoolまたは同様xneexmacroプログラムを使用して、X イベント (キーボードとマウスの両方) を挿入することです。これを実行する場合は、DISPLAYリモート シェルで を正しく設定する必要があり (通常は に設定:0)、X 認証が機能することも確認する必要があります (Ubuntu でこれがデフォルトでどのように構成されているかはわかりませんが、一般に には~/.Xauthorityディスプレイ マネージャーによって発行される有効な Cookie が含まれている必要があります)。

答え3

その距離でカーソルが見える場合は Synergy を使用し、見えない場合は VNC を使用します。

関連情報