web-dev-qa-db-ja.com

SSH経由でリモートXセッションにキー押下を送信する

だから、Ubuntu HTPCで制御されているテレビを見ながら作業しているUbuntuラップトップのリビングルームに座っています。私はIRリモートをセットアップしており、99%の時間で必要なすべてを制御できます。

ただし、リモートでのテキスト入力は非常に簡単ではありません。頻繁に行う必要はありませんが、そうすることで、15フィート歩いてUSBキーボードを差し込み、そのようにする方が簡単になります。しかし...私は犯罪的にも医学的にも怠け者で、どんな距離を歩くことも不必要ではなく、勝ったロボットを示しています。もう言わない!

HTPCにSSHでうまく接続できます...では、そのリモートコンピューターのXセッションにキーを押す方法を教えてください。

VNCを使用できることはわかっていますが、TVは1080p、ラップトップは720pであるため、スケーリングの問題が発生します。技術的なレベルでは、ラップトップを一時的にリモートキーボードに変える方法を提供してくれる解決策が必要です。

12
Oli

x2xといくつかのX11転送を使用して、これを機能させました。

ssh -X htpc x2x -to :0

現在のところ唯一の欠点は、SSHを終了して終了するためにTTYにぶつかる必要があったことです。終了したら、まだ終了する方法を探しています!それ以外の場合は、入力を1台のコンピューターから別のコンピューターに転送するための非常に素晴らしく簡単な(およびショートカットテーブル)メソッドです。

編集:-nomouseを追加すると、転送されたx2xウィンドウを閉じることができ、接続をシャットダウンせずに他のことにすばやく戻るためにフォーカスを外すことができます。

10
Oli

適切なXディスプレイを指定した後、xdotoolコマンドを使用してそれを行うことができるはずです。現在アクティブなウィンドウで単一の「下矢印」を押すことをシミュレートする

$ DISPLAY=:0 xdotool getactivewindow key Down

リテラルテキストを入力するには、xdotool type <string>を使用できます。

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

xdotoolパッケージは、ユニバースリポジトリから入手できる必要があります。

12
steeldriver