web-dev-qa-db-ja.com

1つのキーストロークを2つのウィンドウに送信する(Ubuntu)

私はUbuntuLinuxを実行しています。 2つの開いているターミナルウィンドウが並んで実行されています。エンターキーを1回押して、そのキーストロークを両方のウィンドウに送信できるようにしたいと考えています。

(私が行っているのは、デバッガーを使用して2つの異なるシステム上のコードをステップ実行することです。コードをステップ実行するときに、ウィンドウを切り替え続ける必要はありません。)

ありがとう!

6
Jenna

デバッグウィンドウの1つでこれを行う簡単な方法はわかりませんが、 xvkbd をラップしたスクリプトを実行する3番目のウィンドウを使用できます。それはubuntuリポジトリにあります(宇宙にあるかもしれません)。スクリプトは、キーボード入力を読み取ってからxvkbdを2回呼び出し、両方のウィンドウにキーストロークを送信できます。通常、を使用するグラフィカルプログラム

xvkbd -window xterm2 -text $foo

キーイベントを特定のウィンドウに送信しますが、UIは呼び出しません。また、 wmctrl がウィンドウなどの識別に役立つこともあります。単純なスクリプトは次のようになります。

#!/bin/bash

while [ 1 ]; do
    wmctrl -i -a 0x02200003   #forcibly set focus in window running script
    read keys
    xvkbd -window 0x2202ea4 -text "$keys\r"
    xvkbd -window 0x2200084 -text "$keys\r"
done
3
DaveParillo

ターミネーター アプリケーション(同じ名前の Javaアプリケーション と混同しないでください)は、必要な機能を正確に提供します。 apt-get install terminatorを使用してUbuntuのリポジトリからインストールできます。

仕組みは次のとおりです。

  • ターミネーターを実行する
  • タブまたはフレームで複数のセッションを開く
  • フレームの左上隅にあるボタンをクリックします
  • 「新しいグループ...」メニュー項目を選択します
  • グループの名前を入力します
  • キーストロークを送信する各セッションで、メニューからそのグループを選択します
  • 「ブロードキャストグループ」および「ブロードキャストオフ」メニュー項目を使用して、ブロードキャストキーストロークを切り替えることができます。

このためのキーボードショートカットもあります。

2
akaihola

clusterssh は基本的にこれを行うように設計されていますが、独自の端末を生成することを主張していますが、 xlax を使用できます。これは、キーストロークを複数のX11に配布/送信するための一般的なソリューションです。ウィンドウズ。まだパッケージ化されていませんが、今すぐ「virt-managerのためだけに、clustersshのようなもの」が必要であり、これが私の選択ツールであることがわかったので、これを行います。

1
mirabilos

GNOMEターミナル、IIRCではそれを行うことはできません。

Konsoleを試してみたい場合は、Konsole3にSend Input to All Sessionsオプションがあり、Konsole4ではCopy Input to...になります。

1
0x44

このために設計された keyboardcast を使用します。

0
R J