如何使用append_layout完全覆盖默认的i3wm布局?

如何使用append_layout完全覆盖默认的i3wm布局?

我在全新安装的 Arch linux 下使用 i3 WM。

目标:

我希望在每次启动时都有一个特定的布局,其中包含两个选项卡模式的窗口。就我而言,它是终结者加火狐。

问题:

我尝试使用append_layout方法,如中所述文档。到目前为止,我已经成功地从 json 文件中实际加载了之前保存的选项卡式布局,但不幸的是,带有两个垂直分割的 i3 终端的默认容器也出现了。所以基本上我有

默认容器 |我的容器

屏幕上。 DefaultContainer 有两个基本终端,MyContainer 有选项卡模式下的 firefox 和 Terminator。我希望默认容器永远不会在启动时出现。

配置:

这是我的 i3 配置文件的最后部分:

workspace_layout tabbed
exec --no-startup-id "i3-msg 'workspace 1; append_layout /home/cloudcat/.config/i3/workspace-1.json; exec firefox; exec terminator'"
exec --no-startup-id compton

这是 json 布局:

{
    // tabbed split container with 2 children
    "border": "normal",
    "floating": "auto_off",
    "layout": "tabbed",
    "percent": null,
    "type": "con",
    "nodes": [
        {
            "border": "normal",
            "current_border_width": 2,
            "floating": "auto_off",
            "geometry": {
               "height": 453,
               "width": 734,
               "x": 0,
               "y": 0
            },
            "name": "cloudcat@cloudcat-pc:~",
            "percent": 0.5,
            "swallows": [
               {
               "class": "^Terminator$"
               // "instance": "^terminator$",
               // "title": "^cloudcat\\@cloudcat\\-pc\\:\\~$",
               // "transient_for": "^$"
               }
            ],
            "type": "con"
        },
        {
            "border": "normal",
            "current_border_width": 2,
            "floating": "auto_off",
            "geometry": {
               "height": 947,
               "width": 1280,
               "x": 0,
               "y": 0
            },
            "name": "Arch Linux - perl-anyevent-i3 0.17-3 (any) - Mozilla Firefox",
            "percent": 0.5,
            "swallows": [
               {
               "class": "^Firefox$"
               // "instance": "^Navigator$",
               // "title": "^Arch\\ Linux\\ \\-\\ perl\\-anyevent\\-i3\\ 0\\.17\\-3\\ \\(any\\)\\ \\-\\ Mozilla\\ Firefox$",
               // "transient_for": "^$",
               // "window_role": "^browser$"
               }
            ],
            "type": "con"
        }
    ]
}

我也检查了这个问题,但找不到配置中的任何重大差异。也许我错过了一些东西。

问题:

我如何告诉 i3 不要使用两个终端加载默认的 v-splitted 容器?我只需要带有 FF 和 Terminator 的容器在启动后出现在屏幕上。谢谢。

答案1

好吧,我真的做过错过一些东西。在我的.xinitrc文件之前有两行exec i3

xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
...

看起来这些是骨骼的遗骸.xinitrc我用作我自己的配置模板的文件。因此,对于其他可能在启动时偶然发现一些不需要的正在运行的应用程序的人,也请检查此配置。就我而言,它位于用户的主目录中。

相关内容