Как указать, какой дочерний терминал получает фокус при запуске терминатора
У меня есть схема терминатора, которая выглядит следующим образом:
+-----+-----+
| | 2 |
| 1 +-----+
| | 3 |
+-----+-----+
Когда я запускаю терминатор, дочерний терминал 3 получает фокус. Есть ли директива config, которую я могу использовать либо через pref gui, либо в ~/.config/terminator/config, которая даст начальный фокус дочернему термину 1 при запуске?
РЕДАКТИРОВАТЬ
Раздел макета в моей конфигурации выглядит следующим образом:
[layouts]
[[default]]
[[[child0]]]
position = 0:0
type = Window
order = 0
parent = ""
size = 1920, 1030
[[[child1]]]
position = 960
type = HPaned
order = 0
parent = child0
[[[child3]]]
position = 515
type = VPaned
order = 1
parent = child1
[[[terminal2]]]
profile = default
type = Terminal
order = 0
parent = child1
[[[terminal5]]]
profile = default
type = Terminal
order = 1
parent = child3
[[[terminal4]]]
profile = default
type = Terminal
order = 0
parent = child3
1 ответ
Я хотел сделать в основном то же самое и придумал решение, используя настройку "порядка" терминала в конфиге, после проб и ошибок. В моем случае у меня есть один терминал для каждой вкладки, и я хочу дать начальный фокус первой (самой левой) вкладке, чего я достиг следующим образом:
Это не так просто, как должно быть, потому что терминатор, кажется, всегда оставляет фокус на последней открытой вкладке (запись терминала с наибольшим номером), поэтому вам нужно сделать следующее. Если ваша конфигурация терминала в настоящее время:
[[[terminal2]]]
order = 0
parent = child1
profile = Profile-1
type = Terminal
[[[terminal3]]]
order = 1
parent = child1
profile = Profile-2
type = Terminal
[[[terminal4]]]
order = 2
parent = child1
profile = Profile-3
type = Terminal
Затем измените его на:
[[[terminal2]]]
order = 2
parent = child1
profile = Profile-3
type = Terminal
[[[terminal3]]]
order = 1
parent = child1
profile = Profile-2
type = Terminal
[[[terminal4]]]
order = 0
parent = child1
profile = Profile-1
type = Terminal
Теперь у вас будут те же терминалы на тех же вкладках, но начальный фокус теперь будет самой левой вкладкой.
Обратите внимание, что если в дочерних записях установлены метки, не меняйте их - они по-прежнему применяются к вкладкам слева направо, как и до изменения.
Я полагаю, что одно и то же решение может быть применено к исходной конфигурации вопроса с терминалами в разных дочерних записях.
Вот что я тестировал с настройкой вашего профиля:nohup terminator -l TestProfile --command="xdotool key Ctrl+Tab;$SHELL" & 2>/dev/null
Эта команда, запущенная из gnome-терминала, открывает терминатор с указанным макетом и выполняет две команды: xdotool key Ctrl+Tab
а также $SHELL
, По сути, xdotool - это эмулятор поведения клавиатуры или мыши, и после запуска терминатора он эмулирует нажатие клавиш Ctrl+Tab, в результате чего фокус переключается с окна 3 на окно 1. $SHELL
Затем переменная окружения раскрывается в вашей оболочке (например, для меня это /bin/mksh), и окно не закрывается после завершения команды xdotool.
Вы можете привязать скрипт к ярлыку (полный путь к скрипту) или создать файл .desktop (в вашем ~/.config/autostart
), чтобы запустить всю эту настройку при запуске. Сценарий должен идти примерно так:
#!/bin/bash
terminator -l TestProfile --command="xdotool key Ctrl+Tab;$SHELL" &
Плюсы? Делает именно то, что вы просите об этом. Если вы хотите сосредоточиться на окне 2, ваш --command=
будет выглядеть --command=xdotool key Ctrl+Tab;xdotool key Ctrl+Tab;$SHELL
эмулировать нажатие Ctrl + Tab дважды.
Минусы: нужно установить xdotool
и не забудьте сделать скрипт исполняемым с chmod +x