我该如何配置i3 窗口管理器打开在特定工作区的终端中启动的新程序(窗口)?
答案1
这是你必须放入你的〜/.i3/config文件:
例如你想要Emacs工作空间始终保持开放状态4。
assign [class="Emacs"] 4
你如何获得班级信息?
运行xprop
并单击要捕获的窗口。例如,当 Emacs 运行时,使用另一个终端执行 xprop,然后单击 Emacs 窗口。在输出中你会发现:
WM_CLASS(STRING) = "emacs", "Emacs"
第一个字符串是实例第二个是班级。
最后重启i3($mod+Shift+r)以进行更改。
答案2
我相信 i3 用户指南中已经回答了这个问题:4.16。自动将客户置于特定工作区。您可以根据许多标准来匹配窗口 - 详细解释这里。
例如,以下配置将始终在工作区 2 上打开 Firefox:
assign [class="Firefox"] 2
根据我在class
选择器中链接的第二个文档,您可以使用正则表达式,因此您可以说不是您终端的所有内容都将在特定工作区中打开。
答案3
启动时,您使用
assign [class="X-terminal-emulator"] 1'
assign [class="Firefox"] 10'
assign [class="Thunderbird"] 9'
assign [title="cmus v2.9.0"] 8'
您也可以从命令行执行此操作,请注意语法不同:
i3-msg '[class="X-terminal-emulator"] move to workspace 1'
i3-msg '[class="Firefox"] move to workspace 10'
i3-msg '[class="Thunderbird"] move to workspace 9'
i3-msg '[title="cmus v2.9.0"] move to workspace 8'