Как указать, какой дочерний терминал получает фокус при запуске терминатора

У меня есть схема терминатора, которая выглядит следующим образом:

+-----+-----+
|     |  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

Другие вопросы по тегам