Intereting Posts
Почему я получаю ошибку «Не могу chdir в домашний каталог» монтаж / преобразование изображения v2i в linux systemd: переместить getty в tty2 + и запустить скрипт на tty1 как grep для определенного периода времени в журнале В чем смысл строки ** / * при использовании с grep? Разница между .tar.gz.asc, git.tar.bz2 и .tar.bz2 Разница между длительным процессом и демоном? Невозможно изменить яркость на Toshiba P855 – попробовал каждый дистрибутив уже опция tmux `xterm-keys` не включает управление + стрелки Как перенести файлы из определенных каталогов во вновь созданные каталоги на основе их расширения? Обновления системы в архиве linux с / boot в отдельном разделе? Ошибка HTTP-запроса после прослушивания на нескольких портах или после включения модуля SSL на моей плате Linux Модуль ядра для net.bridge.bridge-nf-call-iptables Я не хочу, чтобы другие пользователи видели мои процессы в ps aux. У меня есть корень. Это Debian. Как использовать grsec? удалить с начала файла до n-го вхождения шаблона

переключиться на существующий эмулятор терминала с помощью команды (wmctrl) или сочетания клавиш

Это довольно сложно сделать. wmctrl должен знать название окна, чтобы работать на нем, но чертовски сложно узнать название любого эмулятора терминала, будь то gnome-terminal, rxvt, xterm …

Потому как

  • Часто .bashrc указывает PS1, чтобы изменить заголовок окна на текущий путь.
  • редактор, такой как VIM, изменяет заголовок окна на текущий файл.
  • инструменты командной строки, такие как mosh, чтобы изменить название окна.
  • ssh в другую машину, обычно оболочка (bash) на удаленном хосте меняет заголовок. Поэтому, если вы удаляете часть PS1, меняющую название, вам нужно сделать это на каждом компьютере, к которому вы можете подключиться, – длинный список для любого опытного сисопа.
  • Даже если вы запустили экран GNU в терминале, сеанс внутри экрана все равно может изменить название эмулятора терминала outter.

fluxbox исключительно позволяет ссылаться на окно другими свойствами X-window (xwininfo), чем заголовок. но переключение на fluxbox слишком велико для этой маленькой потребности.

Короче говоря, кажется, нет никакого способа узнать название окна эмулятора терминала … или, есть ли он?

Многие терминальные эмуляторы (по крайней мере, Xterm, Rxvt, Gnome-terminal и Konsole) устанавливают WINDOWID среды WINDOWID в ID окна X11. Вы можете передать это окно ID в wmctrl :

 wmctrl -i -a "$target_window_id" 

Помните, что внутри сеанса Screen или Tmux вы получите идентификатор окна, в котором вы сначала запустили мультиплексор, а не тот, где он в настоящее время подключен.

Используйте wmctrl -l до и после запуска эмулятора терминала и wmctrl -l вывод оба раза. Строка, различающаяся между выходами, даст вам идентификатор окна, используя разрез, чтобы автоматически получить первое значение (это идентификатор).

Этот идентификатор не зависит от названия окна эмулятора терминала. Вы можете использовать это, чтобы выполнить wmctrl -a ID пока не закроете эмулятор терминала, и идентификатор больше недействителен.