Intereting Posts
apt-get не работает после неудачной попытки установить графический интерфейс пользователя Рекомендация о покупке USB-тюнера (аналогового или гибридного), который будет работать? Как написать на экран за пределами обычных границ окна? Загрузочный ISO-диск не работает на ноутбуке Acer 1362 Как добавить / удалить учетные записи пользователей в Ubuntu с удаленной машины Безопасно перезапустить compiz? Какой сценарий фактически автоматически приостанавливает работу машины? Нужно перезапустить lightdm на каждом экране запуска – консоли Как удалить логотип Nvidia при загрузке без использования xorg.conf? Что я могу установить ncurses-dev в Ubuntu 12.10? Пользователь в группе sudo не может выполнять операции sudo Как перенаправить содержимое файла в команду pastebinit? Какое имя пакета для программного обеспечения и обновлений и как его удалить? Инструкции Ubuntu «USB для OS X» не создают загрузочный USB-накопитель Подключение к коэффициенту OpenVPN 2 через сетевой менеджер

Принесите все открытые окна терминала с помощью скрипта

Я пытаюсь использовать сценарий, предложенный для ответа, который я задал ранее, однако у меня возникают проблемы с его работой.

Сценарий должен принести все экземпляры программы (чье имя передано как аргумент) вперед.

Вот копия скрипта:

#!/bin/bash Program=$@ wmctrl -l | while read Window; do if [[ "$Window" == *"$Program"* ]]; then echo "DEBUG: I bring $Window" code=`echo "$Window" | cut -f 1 -d " "` wmctrl -i -a $code fi done 

Я добавил сочетание клавиш в настройках, команда которых:

 bash /home/michael/Scripts/bring-all-windows.bash terminal 

Он отлично работает для других приложений, таких как gedit, но я не получаю ответа, когда я пытаюсь использовать его с терминалом, терминалом или терминалом gnome.

Кто-нибудь знает, почему это может случиться?

Сценарий из вопроса работает отлично, но проблема заключается в заголовке окна терминала, который не содержит слова (строки) «Терминал». Чтобы преодолеть эту «неадекватность», у вас есть три возможности:

  1. Сделайте в окне терминала слово «терминал». Для этого, когда вы находитесь в терминале, откройте « Редактировать» → « Настройки профиля» (или нажмите « Alt + E», а затем « ), выберите вкладку « Название и команда » и следуйте инструкциям ниже:

    название терминала

  2. Как я вижу на этом изображении , заголовок окна терминала совпадает с названием терминала. Таким образом, сценарий будет работать, как ожидалось, если вы используете следующую команду:

     /home/michael/Scripts/bring-all-windows.bash michael@michael 

    (вам не нужно добавлять команду выше с помощью bash ).

  3. Или, может быть, лучший выбор, в скрипте совпадают с идентификатором окна, а не с заголовком окна:

     #!/bin/bash Program=" $(pidof $@) " wmctrl -lp | while read Window; do if [ "${Program/ `echo "$Window" | cut -f 4 -d " "` }" != "$Program" ]; then echo "DEBUG: I bring $Window" code=`echo "$Window" | cut -f 1 -d " "` wmctrl -i -a $code fi done 

    Затем запустите сценарий, используя следующую команду:

     /home/michael/Scripts/bring-all-windows.bash gnome-terminal