i3wm:如何在显示器之间移动工作区?

cry*_*ick 21 window-manager multi-monitor workspaces i3

在多显示器设置中,有没有办法将整个工作区(而不是单个应用程序)转移到不同的显示器?

cry*_*ick 38

您可以在 i3 配置中定义绑定。注意:窗口被称为“容器”,监视器被称为“输出”。

move workspace to output left|right|down|up|current|primary|<output>

这是我在配置中使用的内容:

# move focused workspace between monitors
bindsym $mod+Ctrl+greater move workspace to output right
bindsym $mod+Ctrl+less move workspace to output left
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我希望$mod+Ctrl+greater要求我同时按下 Ctrl 和 Shift,因为您需要按 Shift 来输入<>。但是,只需按 mod、Ctrl 和,工作,这非常好。

请注意,您还可以设置键绑定以按名称将内容发送到特定监视器。


小智 9

对于workspace_name 和output_name 的值,可以像这样通过名称显式指定工作空间:

i3-msg '[workspace="workspace_name"]' move workspace to output output_index
Run Code Online (Sandbox Code Playgroud)

请注意,如果您将工作区命名为1:first,则使用1not first


小智 9

要移动到下一个工作区,您可以使用:

bindsym $mod+Ctrl+greater move workspace to output next
Run Code Online (Sandbox Code Playgroud)

文档

这样做的优点是不知道工作空间的位置- 它只是循环它们,无论它们是向上还是向下还是其他什么。