如何在 i3 启动时在特定工作区上启动特定程序而无需分配?

如何在 i3 启动时在特定工作区上启动特定程序而无需分配?

我的工作区 1 在 i3 配置文件中被命名为

set $ws1 "1: Browser "

我已经设置了 Firefox 在启动时执行,并将其分配给配置文件中的 ws1,如下所示:

# Startup appplication run
exec firefox
assign [class="Firefox"] $ws1

但是,这意味着每当我打开 Firefox 时,窗口只会在 ws1 中打开。我只希望启动 Firefox 在 ws1 中打开,并且还可以选择在我选择的任何其他工作区中打开 Firefox。

问题1:我该怎么做?

问题 2:有没有对多个应用程序执行此操作的有效方法?

答案1

你可能错过了出色的 i3 用户文档4.17),但你可以用如下结构来实现

exec --no-startup-id i3-msg 'workspace 3; exec firefox; workspace 1'

在工作区 3 上启动时启动 Firefox。

不清楚您认为什么是“有效方法”。您需要为要自动启动的任何应用程序发出命令。您可以在上面的构造中包含多个语句来更改工作区并启动不同的应用程序,但在某些时候,这会妨碍配置文件的可读性。

相关内容