i3 将窗口移动到工作区但在同一屏幕上

i3 将窗口移动到工作区但在同一屏幕上

我有 3 个屏幕,都工作正常。

所以我尝试实现我的 i3 配置以实现以下行为:

当我按下“主页”键时,每个屏幕都有一个要切换到的特定工作区。这个想法是为所有屏幕提供一组基本的工作空间,以实现一个目的,这里是通用目的和启动默认值(也可以想象的是一组用于编码的工作空间,其中一些终端启动,左侧一些 IDE 弹出中间 stackoverflow 右侧例如,现在主行就足够了)

这基本上看起来像这样。

#screen names / output names
set $screen_left "HDMI-0"
set $screen_middle "DVI-D-0"
set $screen_right "DVI-I-0"

# custom workspace names
set $ws_home  "Home"
set $ws_homeL "HomeL"
set $ws_homeR "HomeR"

workspace $ws_homeL output $screen_left
workspace $ws_home output $screen_middle
workspace $ws_homeR output $screen_right


# workspace key settings
# variable to contain the name of keys related to specific workspaces
set $ws_key_home "dead_circumflex"

# switch to workspace
#
# home workspace
bindsym $mod+$ws_key_home workspace $ws_home ; workspace $ws_homeL ; workspace $ws_homeR

奇迹般有效。
所以现在我开始将窗口移动到这组工作区,在这里我希望一个窗口出现在我通过一个按键将其移动到这组家庭工作区之前的同一屏幕上:

bindsim $mod+Shift+$ws_key_home move container to workspace >select workspace to correct screen here<

假设我有工作区 3,在左侧屏幕上打开了浏览器,然后我点击 $mod+Shift+circumflex,浏览器将重新出现在工作区 HomeL 上,
而如果工作区 3 在右侧屏幕上,它将转至 HomeR。

为每个家庭工作空间提供绑定并不是理想的解决方案。

所以问题是......我可以确定容器所在的屏幕吗?然后,我如何通过表达式在配置内的工作区中进行选择?

我这样做完全错了吗?是否有一些我错过的功能已经提供了我想要的功能?

相关内容