Фокусировать существующий терминал с помощью комбинации клавиш Ctrl-Alt-T

16

Я часто пользуюсь терминалом,

Так что я интересно , если есть способ , я могу сделать Ctrl+ Alt+ Tсосредоточиться существующий терминал , если таковой имеется, в противном случае создать новый терминал?

Hailwood
источник

Ответы:

24

Создайте небольшой скрипт, который вызовет терминал 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Дополнительную информацию о том, как это сделать.

Есть также различные другие методы, которые лучше работают с другими оконными менеджерами.

zerwas
источник
Вы можете добавить | head -n1после поиска окна терминала gnome, чтобы предотвратить ошибку, если найдено более одного окна
ggalmazor
8

почему бы вам не попробовать tildaили guakeоба доступны в репозиториях Ubuntu. Хотя они специально не делают то, что вы ищете, я уверен, что это то, что вы искали, но не знали, что это было. ;)

РЕДАКТИРОВАТЬ : хорошо, я был немного расплывчатым, больше информации следует:

из википедии :

Tilda - эмулятор терминала GTK +. Его дизайн был создан на основе консолей в компьютерных играх, таких как Quake, которые скользят вниз от верхней части экрана при нажатии клавиши, обычно тильды, и сдвигаются вверх при повторном нажатии клавиши.

Запуск Tilda может быть быстрее, чем запуск нового терминала с сочетанием клавиш, поскольку программа уже загружена в память; это может быть полезно людям, которые часто открывают и закрывают терминалы для нечетных задач.

guake на самом деле то же самое, единственное отличие, которое я заметил, это то, что я не мог заставить его открывать http ссылки с помощью Ctrl + клик, что я нашел раздражающим

bartekbrak
источник
1

Моя версия (=

Скрипт для запуска / поднятия любого приложения:

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
Поссум Галло
источник
0

пытаться

sudo apt-get install wmctrl
wmctrl -xa 'gnome-terminal-server.Gnome-terminal'

Зайдите в настройки системы - Keyborad, добавьте пользовательский ярлык и вставьте туда команду wmctrl. Оно работает.

откуда взята строка gnome-Terminal- *

wmctrl -xl
Джейк
источник
0

Еще один вариант: запустить или переключиться. Скрипт использует 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ярлык.

ванадий
источник