6

Я использую Ubuntu Linux. У меня есть два открытых окна терминала, работающих рядом. Я надеюсь, что смогу нажать один раз клавишу ввода и отправить этот ход клавиш в оба окна.

(То, что я делаю, это пошагово просматривая код в двух разных системах с помощью отладчика, и мне не нужно постоянно переключаться между окнами, пока я выполняю код.)

Спасибо!

5 ответов5

3

Я не вижу простого способа сделать это, находясь в одном из ваших окон отладки, но вы могли бы использовать третье окно, в котором запущен скрипт, обернутый вокруг xvkbd. Это в хранилище Ubuntu (может быть во вселенной). Сценарий может прочитать ваш ввод с клавиатуры, а затем дважды вызвать xvkbd, посылая нажатия клавиш в оба окна. Обычно графическая программа, использующая

xvkbd -window xterm2 -text $foo

отправляет ключевые события в определенные окна, но не вызывает пользовательский интерфейс. Вы также можете обнаружить, что 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
2

Приложение Terminator (не путать с Java-приложением с тем же именем) обеспечивает именно ту функциональность, которая вам нужна. Вы можете установить его из репозиториев Ubuntu с помощью apt-get install terminator .

Вот как это работает:

  • запустить Терминатор
  • открыть несколько сессий во вкладках или фреймах
  • нажмите кнопку в левом верхнем углу рамки
  • выберите пункт меню «Новая группа ...»
  • введите имя для группы
  • в каждой сессии, в которую вы хотите отправить нажатия клавиш, выберите эту группу из меню
  • Вы можете использовать пункты меню "Broadcast group" и "Broadcast off", чтобы переключать нажатия клавиш.

Для этого есть также сочетания клавиш.

1

Помимо clusterssh, который в основном предназначен для этого, но настаивает на создании собственных терминалов, вы можете использовать xlax, который является универсальным решением для распределения / отправки нажатий клавиш на несколько окон X11. Он еще не упакован, но я сделаю это, так как мне сейчас нужно было «что-то вроде clusterssh, просто для virt-manager», и я нашел, что это мой инструмент выбора.

1

Вы не сможете сделать это в терминале GNOME, IIRC.

Если вы хотите попробовать Konsole, в Konsole 3 есть опция « Send Input to All Sessions сеансам», которая становится « Copy Input to... в Konsole 4.

0

Используйте клавиатурную трансляцию, которая предназначена для этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .