You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

i3窗口平铺管理器:创建新工作区后终端未在目标工作区打开的问题解决咨询

解决i3中终端打开在错误工作区的问题

我之前也碰到过一模一样的情况——明明先切换了工作区,终端却还是跑到原来的工作区去。问题的核心在于:直接用bash启动gnome-terminal时,程序会继承当前shell的工作区上下文,而i3的工作区切换和终端启动之间的微小时间差,导致终端启动时目标工作区还没完全成为当前激活的状态(或者说终端没感知到工作区切换)。

下面是两种可靠的解决方法,优先推荐第一种:

方法一:用i3的exec命令启动终端(最稳定)

i3的exec命令会让窗口管理器直接接管程序的启动流程,确保程序在当前激活的工作区打开。只需要把你原来直接启动gnome-terminal的代码,替换成i3-msg exec包裹的形式即可:

修改后的完整脚本:

#!/usr/bin/env bash
WS='9:Dashboard'
# 切换到目标工作区
i3-msg "workspace $WS"

# 用i3 exec启动终端,确保它们在目标工作区打开
i3-msg exec "gnome-terminal --title=MATRIX -- bash -lc 'cmatrix -C green; exec bash'"
i3-msg exec "gnome-terminal --title=CLOCK -- bash -lc 'tty-clock -c -C 4; exec bash'"
i3-msg exec "gnome-terminal --title=SPOTIFY -- bash -lc 'spotify_player; exec bash'"
i3-msg exec "gnome-terminal --title=ASCII -- bash -lc 'cat ~/.config/dashbord_art.txt; exec bash'"

# 等待窗口创建完成(可根据系统性能调整时间)
sleep 0.3

# 调整窗口位置和大小
i3-msg '[title="^MATRIX$"] floating enable, border none, move position 105 131, resize set 80'
i3-msg '[title="^CLOCK$"] floating enable, border none, move position 1304 374, resize set 49'
i3-msg '[title="^SPOTIFY$"] floating enable, border none, move position 931 132, resize set 8'
i3-msg '[title="^ASCII$"] floating enable, border none, move position 933 373, resize set 354'

方法二:启动终端后手动移动到目标工作区

如果你不想改变终端的启动方式,可以在每个终端启动后,立即用i3命令把它移动到目标工作区。这种方法需要给终端一点时间创建窗口,所以要加短暂的sleep:

示例代码片段:

gnome-terminal --title=MATRIX -- bash -lc 'cmatrix -C green; exec bash' &
sleep 0.1 # 等待窗口完成创建
i3-msg '[title="^MATRIX$"] move workspace '"$WS"

这种方法的缺点是sleep的时间需要根据系统性能调整,稳定性不如方法一,所以仅作为备选方案。

额外优化:用wait_for_window替代固定sleep

如果想彻底摆脱固定sleep的不确定性,可以用i3的wait_for_window命令,等待目标窗口真正出现后再执行位置调整:

i3-msg exec "gnome-terminal --title=MATRIX -- bash -lc 'cmatrix -C green; exec bash'"
i3-msg wait_for_window '[title="^MATRIX$"]'
i3-msg '[title="^MATRIX$"] floating enable, border none, move position 105 131, resize set 80'

这样能确保只有当窗口完全创建后,才会执行后续的调整命令,比固定sleep更可靠。

内容的提问来源于stack exchange,提问作者oumaima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 12:37:44