відправлення одного штриха ключа до двох вікон (Ubuntu)


6

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

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

Дякую!

Відповіді:


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

1 = 1 не є необхідним, тоді як [1] ​​робить те саме: P
Іоанн T

Я використовував цей підхід для управління двома вікнами Evince, що відображають дві версії одного й того ж PDF-документа. Чомусь одне вікно пропустило кожен 10-й натиск клавіші. Я не міг зрозуміти, чому це було.
akaihola

2

Додаток Terminator (не плутати те ж саме з додатком Java ) забезпечує саме потрібну функціональність. Ви можете встановити його з сховищ Ubuntu за допомогою apt-get install terminator.

Ось як це працює:

  • запустити Термінатор
  • відкрити кілька сеансів на вкладках або кадрах
  • натисніть кнопку у верхньому лівому куті кадру
  • виберіть пункт меню "Нова група ..."
  • введіть назву для групи
  • у кожному сеансі, на який потрібно надіслати натискання клавіш, виберіть у меню цю групу
  • ви можете використовувати пункти меню "Групова трансляція" та "Трансляція вимкнено" для перемикання трансляційних натискань клавіш.

Для цього також є комбінації клавіш.


1

Ви б не змогли це зробити в терміналі GNOME, IIRC.

Якщо ви хочете спробувати Konsole, Send Input to All Sessionsв Konsole 3 є варіант, який стає Copy Input to...в Konsole 4.


1
Я перевірив свій приклад сценарію в gnome-терміналі. працював нормально.
DaveParillo

1
Я маю на увазі вбудовані фунції терміналу GNOME. :-)
0x44

1

Окрім clusterssh , який в основному призначений для цього, але наполягає на нерестуванні власних терміналів, ви можете використовувати xlax , який є загальним рішенням для розподілу / відправлення натискань клавіш на декілька вікон X11. Це ще не упаковано, але я зроблю це, як мені було потрібне "щось на кшталт clusterssh, тільки для virt-менеджера", і я вважаю, що це мій інструмент вибору.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.