ローカル ネットワーク上に 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
または同様xnee
のxmacro
プログラムを使用して、X イベント (キーボードとマウスの両方) を挿入することです。これを実行する場合は、DISPLAY
リモート シェルで を正しく設定する必要があり (通常は に設定:0
)、X 認証が機能することも確認する必要があります (Ubuntu でこれがデフォルトでどのように構成されているかはわかりませんが、一般に には~/.Xauthority
ディスプレイ マネージャーによって発行される有効な Cookie が含まれている必要があります)。
答え3
その距離でカーソルが見える場合は Synergy を使用し、見えない場合は VNC を使用します。