24 i3
这是关于如何使用i3窗口管理器在单个工作区上自动启动应用程序以及在配置文件中可以做什么和不能做什么的先前问题的后续。~/.i3/config
首先,提供的解决方案基于Arch Linux文档和 op 提供的更新,他进一步推动了逻辑:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'
Run Code Online (Sandbox Code Playgroud)
同样有趣的是这种交流直接在命令行上利用其中的一些而不重复:
i3-msg workspace 3; i3-msg exec firefox
i3-msg workspace 9; i3-msg exec chromium
Run Code Online (Sandbox Code Playgroud)
但是我从未见过根据所需的垂直或水平布局在每个工作区中自动启动许多窗口/应用程序的配置。我的目标是自动启动我使用的这个简单配置:
_____ _____ ___________ ___________
| lx | lx | | |u_| | | | proportions:
|_____|_____| | FF |lx| |spacefm | 1- 25% each
|medit| lx | | |__| | | vlc | 2- 75/25 x 25/50/25
|_____|_____| |________|u_| |_____|_____| 3- 50/50
1 2 3
Run Code Online (Sandbox Code Playgroud)
所以它以config
文件中的类似内容开始:
exec --no-startup-id i3-msg 'workspace 1; exec i3-sensible-terminal; layout toggle split; layout splitv; split vertical; exec i3-sensible-terminal; exec i3-sensible-terminal; exec i3-sensible-terminal; workspace 2; exec firefox; exec urxvt; exec i3-sensible-terminal; exec urxvt; workspace 3; exec spacefm; exec vlc'
Run Code Online (Sandbox Code Playgroud)
但是,您究竟如何实现您想要的布局类型和垂直/水平分割?我正在尝试,但不清楚您如何“混合”执行和布局。语法开始时感觉很特别,因为您i3-img
在 i3 的配置中执行。你在每次通话之间使用split h
(或 v) - layout split v
- exec layout split v
- focus down
(或 right)exec
吗?
对于单个工作区,配置以垂直或水平方式启动所有应用程序,我似乎无法影响布局 - 或者split
链中的最后一个命令决定是垂直还是水平添加窗口。i3-msg
似乎忽略了在某些情况下格式不正确的命令部分,因此很难调试。由于您确实需要startx
每次都退出 X 并再次退出以验证结果,mod+shift+R
因此即使您关闭每个工作区上的所有内容,仅刷新配置也不会削减它,这进一步加剧了这种情况。
配置它的正确方法是什么?有没有人有一个解决方案可以实现类似的东西?该文档非常好,但它没有提供我可以看到在多个工作区上混合执行和布局的详细示例。
dam*_*ien 14
我相信您正在寻找i3 v4.8 (2014-06-15) 中引入的新 布局保存功能。链接的文档似乎非常详尽。
从文档中引用:
布局保存/恢复允许您加载 JSON 布局文件,以便您可以在打开计算机电源后开始使用基本布局。还会想到动态用例:如果您经常(但并非总是!)需要带有 ping/traceroute 命令的终端网格布局来诊断网络问题,您可以轻松地以正确的布局自动打开这些窗口。
...以及发行说明:
TL;博士:出口1当前的布局JSON文件,将其加载到新酷睿i3的会议,获得将由实际的应用程序,一旦你开始它们被替换占位符的窗口。
1. 您可能需要perl-anyevent-i3和perl-json-xs包才能使用该i3-save-tree
实用程序。