После перехода на веб-страницу или в редактор, есть ли способ вернуть все открытые терминалы обратно в исходное положение? Немного сложно щелкнуть значок терминала, а затем вернуть каждый из них по отдельности.
Спасибо!
Пример:
<ч>
Можно нажать Alt+Tab для переключения вперед между окнами и Alt+Shift+Tab для переключения назад между окнами. Этот ярлык сделан работать почти во всех графических операционных системах. Yow может также использовать Super+W и клавиши со стрелками для той же цели.
После обеспечения одного окна терминала в передней стороне нажмите Alt + ~ для обеспечения всех других окон терминала в передней стороне один за другим:
Для автоматического обеспечения всех открытых терминалов в передней стороне (не один за другим, поскольку я описал прежде), необходимо будет добавить сочетание клавиш для следующего сценария (сценарий, взятый из ответа Adobe и улучшенного рассмотрения, что версия сценария не работала на меня):
#!/bin/bash
if [ $# -ne 1 ];then
echo -e "Usage: `basename $0` PROGRAM_NAME\n
For example:\n\t
'`basename $0` gnome-terminal' for Terminal\n\t
'`basename $0` firefox' for Firefox\n\t
'`basename $0` chromium-browser' for Chromium\n\t..."
exit 1
fi
pids=" $(pidof $@) "
if [ "$pids" = " " ]; then # the string " " contain two spaces
echo "There is no program named '$@' opened at the moment."
exit 1
fi
wmctrl -lp | while read identity desktop_number PID window_title; do
if [ "${pids/ $PID }" != "$pids" ]; then
wmctrl -ia $identity
fi
done
Не забывайте делать исполняемый файл сценария:
chmod +x /path/to/script/script_name
После тестирования сценария в терминале Вы должны для наблюдения:
Вот маленький сценарий удара, который приносит все окна чей АРГУМЕНТ матчей за титул к передней стороне:
bring-all-windows.bash ARG
Сценарий:
#!/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
Можно связать
bring-all-windows.bash Terminal
к горячей клавише (не забывают помещать сценарий в ПУТЬ оболочки входа в систему или писать полный путь в него).
Сценарий требует wmctrl
быть установленным.
Править:
Для выполнения чего-то от терминала перейдите к dir, куда Вы помещаете сценарий, затем
chmod +x bring-all-windows.bash
./bring-all-windows.bash Terminal
Когда Вы уверены, что это работает от терминала, попытайтесь связать его с горячей клавишей, дав полный путь. Когда Вы уверены, что это работает с горячей клавишей и полным путем к сценарию, затем попытайтесь добавить, что это - dir к ПУТИ оболочки входа в систему, и посмотрите, прокладывает ли это себе путь.
Другой способ использует xdotool
. Сначала вы должны установить его, поэтому sudo apt-get install xdotool
является обязательным.
xdotool search --class "terminal" windowactivate %@
xdotool search --name "braiam@bt" windowactivate %@
Первый ищет любой двоичный файл с именем *terminal*
, второй ищет любое окно с заголовком *braiam@bt*
. Затем, если вы поместите это в скрипт bash:
#!/bin/bash
set -e
program=$@
xdotool search --class '$program' windowactivate %@
xdotool search --name '$program' windowactivate %@
Вы можете узнать больше об этом в руководстве xdotool
.
Для архива: https://gist.github.com/psi-4ward/18c3a596d28a3cfa772101af755545df
Скрипт, который учитывает недавно использованные приложения
Графически на моем рабочем столе Ubuntu мои иконки расположены вертикально на левом краю рабочего стола. Если вы щелкните левой кнопкой мыши на значке терминала, вы увидите все окна терминала. Затем вы можете выбрать любой из них для работы. Если вы щелкните правой кнопкой мыши на значке терминала, вы увидите список меню с надписью «Новый терминал» вверху и весь ваш открытый терминал в нижней части списка. Вы можете выбрать, какой из них будет вашим активным терминалом.
Этот же метод должен работать для любого другого приложения, такого как ваш браузер.