我在我的配置文件中尝试了多种方法来让 chromium 在 $ws2 上打开,但它只是在启动时一直在 $ws1 上打开。
2 回答
首先你必须WM_CLASS(STRING)
从 xprop 中找到。打开 xprop 并单击目标窗口,您将看到有关该窗口的信息。找到WM_CLASS(STRING)
第二个字符串(对于 i3wm)然后转到 i3 wm 的配置文件.config/i3/config
并像这样定义规则for_window [class="Chromium"] move to workspace $ws2 for_window [class="TelegramDesktop"] move to workspace $ws3
这里用class="String"
我们之前找到的字符串替换为 xprop。
或者,按照i3 用户指南第4.17节中的说明,在您的配置文件中插入声明,例如. 这将直接在指定的工作空间上打开程序。但是,对于像 Spotify 这样表现不佳的程序,该方法需要在程序打开后移动程序。assign
assign [class="Chromium"] $ws2
for_window ... move to workspace ...
要在启动期间在特定工作区上打开程序(在您的情况下为铬)并返回到您的第一个工作区:
1:将以下内容添加到您的 ~/.config/i3/config 文件中。
exec --no-startup-id i3-msg '工作区 $ws2; 执行程序;工作区 $ws1'
1a:将示例中的“$ws2”替换为您要使用的工作空间的名称。
1b:用 PROGRAM 的任何选项替换要运行(执行)的程序的名称。本节不需要引号
1c:将示例中的“$ws1”替换为您要返回的工作空间的名称,或者省略“;workspace $ws1”以进入$ws2。
1d:确保您在示例中包含单引号
2:保存编辑(我让编辑器保持打开状态,以防重启后我必须将文件改回来)
3:测试:
3a:让 i3 重新读取配置文件(我的系统上的 mod4+shift+c)
3b:就地重启 i3(我的系统上的 mod4+shift+r)
注意:我在我的配置中使用了 $ws1 $ws2 等,因为一旦配置了这些,我就可以更轻松地在一个地方而不是多个地方更改标题和真棒图标。方法无耻地从 i3 和其他人那里窃取,这是我所有的 linux 知识。:-)