i3 Windows Manager - 将窗口分配给工作区

i3 Windows Manager - 将窗口分配给工作区

我该如何配置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'

相关内容