如何指定终结器启动时哪个子终端获得焦点

如何指定终结器启动时哪个子终端获得焦点

我有一个终结者布局,如下所示:

+-----+-----+
|     |  2  |
|  1  +-----+
|     |  3  |
+-----+-----+

当我启动 Terminator 时,子终端 3 获得焦点。是否有一个配置指令我可以通过 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

以下是我对您的个人资料设置进行的测试: nohup terminator -l TestProfile --command="xdotool key Ctrl+Tab;$SHELL" & 2>/dev/null

此命令从 gnome-terminal 运行,使用您指定的布局打开终结器,并执行两个命令 -xdotool key Ctrl+Tab$SHELL。xdotool 基本上是键盘或鼠标行为的模拟器,一旦终结器启动,它就会模拟按 Ctrl+Tab,这会使焦点从窗口 3 切换到窗口 1。$SHELL环境变量然后扩展到您的 shell(例如,对我来说它是 /bin/mksh),这样,一旦 xdotool 命令完成,窗口就不会退出。

您可以将脚本绑定到快捷方式(脚本的完整路径)或创建。桌面文件(在您的 中~/.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

答案2

我想做基本相同的事情,经过反复尝试,我找到了一个解决方案,即使用配置中的终端“顺序”设置。在我的例子中,每个选项卡都有一个终端,我想将初始焦点放在第一个(最左边的)选项卡上,我实现如下:

这并不像想象的那么简单,因为终结器似乎总是将焦点放在最后打开的选项卡(编号最高的终端条目)上,所以您需要这样做。如果您的终端配置当前为:

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

现在,您将在相同的选项卡中获得相同的终端,但初始焦点现在是最左边的选项卡。

请注意,如果您在子条目中设置了标签,那么请不要更改这些标签 - 它们仍然适用于从左到右的选项卡,就像更改之前一样。

我认为相同的解决方案也可以应用于原始问题的配置,其中终端位于不同的子条目中。

相关内容