Answers:
根据Arch Wiki i3页面,要在特定工作区上自动启动应用程序,请使用i3-msg
:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
google-chrome-stable
总是在我的设置中的最后一个工作区上打开。例如,使用此配置,Chrome将在htop旁边的工作区4中打开。
# This is what I use in ie config
# custom variables for workspaces
set $ws1 "1< txt >"
set $ws2 "2> fm "
set $ws3 "3< Web >"
set $ws4 4
set $ws5 5
set $ws6 6
set $ws7 7
set $ws8 8
set $ws9 9
##==================================================##
# *** Workspace specific settings *** #
##=================================================##
# Assign Workspaces:
assign [class="Firefox"] $ws3
assign [class="Chromium"] $ws3
assign [class="Google-chrome-beta"] $ws3
assign [class="^Geany"] $ws1
class
参数中使用的字符串有关。有什么方法可以确切知道应用程序与哪个类相关联?
xprop | grep CLASS
在终端中,鼠标指针变为十字准线,您单击要获取其类的程序,并使用终端中出现的第二个变量。Chrome的搜索结果示例:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
xprop
命令中的字符串,未将窗口分配给所需的工作区。
for_window [class="Spotify"] move to workspace $ws10
,其中$ws10
您的工作区变量是。
它仅是在工作空间启动时自动启动,而不是在i3启动时自动启动,但我认为这可能很有用。
例如,要在名为“ web”的第二个工作区中启动Web浏览器,这就是我在config中所做的:
bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s
当我按下键2时,我的Web浏览器启动,但是当它打开时并没有重新启动它,而是切换到Web工作区。
注意:布局部分有时会很烦人,这不是必需的。
有关更多详细信息,请参见我的conf
我刚在~/.config/i3/config
文件末尾使用它:
for_window [class="Firefox"] move container to workspace 2
exec --no-startup-id firefox
set $ws1 "Firefox"
,然后插入以下行for_window [class="Firefox"] move to workspace $ws1
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'
。但是,我觉得有点奇怪使用exec
上i3-msg
其目的是要执行的i3命令的命令。为什么我不能直接workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1
在配置文件中写?