Вопрос или проблема
У меня есть комбинация клавиш, которая связана с выполнением команды gnome-terminal
(я на Fedora 27).
Я хочу, чтобы эта клавиша открывала новый терминал, если ни один терминал не открыт, но открывала новую вкладку в существующем окне терминала, если окно терминала уже открыто.
Какая команда для этого потребуется?
Я не уверен насчет Fedora, но в CentOS команда для открытия нового вкладкового окна терминала – это Ctrl+Shift+t
, когда окно терминала выбрано! Что касается открытия нового окна, вам придется привязать это, как вы уже сделали!
Вам понадобится способ определить работающий терминал и отправить клавиши в это окно. Их несколько.
Я бы посоветовал вам использовать xdotool ( sudo dnf install xdotool
для Fedora )
#!/bin/sh
EW=$(xdotool search --onlyvisible --classname Gnome-terminal|head -1)
if [[ -z $EW ]]
then
gnome-terminal &
else
xdotool windowactivate --sync $EW
xdotool key --clearmodifiers ctrl+shift+t
fi
Поместите этот код в файл, скажем, ~/bin/gterm, затем выполните chmod 0755 ~/bin/gterm
После этого команда gterm готова. Кроме того, вы можете привязать ее к комбинации клавиш.
osascript -e 'tell app "Terminal"
do script "echo hello"
end tell'
Это открывает новый терминал и выполняет команду “echo hello” внутри него.
Я думал, как вы сказали в комментарии
gnome-terminal
Если вы запустите код, он откроет еще один терминал
из существующего терминала
Ответ или решение
Чтобы создать скрипт, который будет открывать новое окно терминала или новую вкладку в существующем окне терминала на Fedora 27, вам необходимо использовать несколько инструментов и простую логику управления окнами. В данной инструкции я расскажу вам, как это сделать пошагово.
Шаг 1: Установите необходимый инструмент
Для начала вам понадобится установить xdotool
, который позволит вам управлять окнами и отправлять нажатия клавиш. Это можно сделать с помощью следующей команды в терминале:
sudo dnf install xdotool
Шаг 2: Создайте скрипт
Теперь вам нужно создать скрипт, который будет выполнять необходимую проверку и запускать нужные команды. Откройте текстовый редактор и создайте файл, например gterm
в директории ~/bin/
:
mkdir -p ~/bin
nano ~/bin/gterm
Теперь вставьте в файл следующий код:
#!/bin/sh
# Поиск открытых окон терминала
EW=$(xdotool search --onlyvisible --classname Gnome-terminal | head -1)
# Если терминал не найден, откройте новый
if [[ -z $EW ]]; then
gnome-terminal &
else
# Если найден, активируйте его и откройте новую вкладку
xdotool windowactivate --sync $EW
xdotool key --clearmodifiers ctrl+shift+t
fi
Шаг 3: Дайте скрипту права на выполнение
После создания скрипта не забудьте установить на него права на выполнение, выполнив команду:
chmod 0755 ~/bin/gterm
Шаг 4: Настройте сочетание клавиш
Теперь вы можете привязать выполненный вами скрипт к сочетанию клавиш. Обычно это делается в настройках системы:
- Перейдите в «Настройки» → «Клавиатура» → «Сочетания клавиш».
- Здесь добавьте новое сочетание клавиш и введите путь к вашему скрипту, то есть
~/bin/gterm
.
Заключение
Теперь, когда вы настроили все необходимые компоненты, вы можете использовать ваше новое сочетание клавиш для открытия нового окна терминала или перехода к существующему окну терминала с новой вкладкой. Этот подход значительно упрощает работу с терминалом и ускоряет выполнение задач.
Если у вас будут дополнительные вопросы или возникнут трудности, не стесняйтесь обращаться за помощью!