Ответы:
Создайте небольшой скрипт, который вызовет терминал GNOME:
echo 'xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)'> ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh
или если вы хотите проверить, запущен ли уже терминал, используйте:
echo -e $'if ps aux | grep "[g]nome-terminal" > /dev/null\n then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)\n else gnome-terminal &\nfi' > ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh
Это создаст скрипт ~ / riseterminal.sh с таким содержимым:
if ps aux | grep "[g]nome-terminal" > /dev/null
then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)
else gnome-terminal&
fi
Откройте настройки, чтобы настроить настраиваемое сочетание клавиш и установить команду на /home/$USER/raiseterminal.sh
, но обязательно измените $ USER на свое фактическое имя пользователя.
Если вы хотите поднять терминал только на определенном экране или рабочем столе, см. xdotool search --help
Дополнительную информацию о том, как это сделать.
Есть также различные другие методы, которые лучше работают с другими оконными менеджерами.
почему бы вам не попробовать tilda
или guake
оба доступны в репозиториях Ubuntu. Хотя они специально не делают то, что вы ищете, я уверен, что это то, что вы искали, но не знали, что это было. ;)
РЕДАКТИРОВАТЬ : хорошо, я был немного расплывчатым, больше информации следует:
из википедии :
Tilda - эмулятор терминала GTK +. Его дизайн был создан на основе консолей в компьютерных играх, таких как Quake, которые скользят вниз от верхней части экрана при нажатии клавиши, обычно тильды, и сдвигаются вверх при повторном нажатии клавиши.
Запуск Tilda может быть быстрее, чем запуск нового терминала с сочетанием клавиш, поскольку программа уже загружена в память; это может быть полезно людям, которые часто открывают и закрывают терминалы для нечетных задач.
guake
на самом деле то же самое, единственное отличие, которое я заметил, это то, что я не мог заставить его открывать http ссылки с помощью Ctrl + клик, что я нашел раздражающим
Моя версия (=
Скрипт для запуска / поднятия любого приложения:
PID=$$
xdotool search --class $1 | while read line
do
echo "$line"
if [ `xdotool windowactivate $line 2> /dev/stdout | grep -c fail` -eq 0 ]
then
kill $PID
exit
fi
done
## Launch the program if we reach here
$1 & disown
например
sh ~/raise.sh chromium
Еще один вариант: запустить или переключиться. Скрипт использует wmctrl для проверки, открыто ли уже окно. Если это так, скрипт переключается на существующий, отдавая приоритет существующему окну на текущем рабочем столе. В противном случае открывается новое окно. Этот скрипт опубликован Воном Диксоном .
#!/bin/sh
terminal_wm_class="gnome-terminal"
terminal_exec="gnome-terminal"
# no terminal started, so start one
if [ -z "`wmctrl -lx | grep gnome-terminal`" ]; then
$terminal_exec &
else
# search for existing terminals on current desktop
current_desk=`wmctrl -d | grep '*' | cut -d ' ' -f 1`
term_on_this_desk=`wmctrl -lx | grep "$current_desk[ ]*$terminal_wm_class" | cut -d ' ' -f 1`
if [ -n "$term_on_this_desk" ]; then
wmctrl -i -a $term_on_this_desk
else
# no terminals on current desktop, so just open the first one we find
wmctrl -x -a $terminal_wm_class
fi;
fi;
Поместите этот скрипт в папку bin в вашей домашней папке и сделайте его исполняемым. Затем в разделе «Сочетания клавиш» («Настройки» - «Клавиатура») отключите существующую горячую клавишу для «Запустить терминал» в разделе «Пусковые установки»: нажмите на нее, а затем нажмите клавишу Backspace, чтобы отключить текущее назначение. Затем в разделе «Пользовательские ярлыки» создайте новый пользовательский ярлык, нажав значок +. Введите имя вашего скрипта в качестве «команды» и присвойте ему Ctrl+ Alt+ tярлык.
| head -n1
после поиска окна терминала gnome, чтобы предотвратить ошибку, если найдено более одного окна