i3wm: How to move workspaces between monitors?
You can define a binding in your i3 config. Note: windows are called "containers", and monitors are called "outputs".
move workspace to output left|right|down|up|current|primary|<output>
Here's what I use in my config:
# move focused workspace between monitors
bindsym $mod+Ctrl+greater move workspace to output right
bindsym $mod+Ctrl+less move workspace to output left
Strangely, I'd expect the $mod+Ctrl+greater
to require me to hit Ctrl and Shift at the same time, since you need to press Shift to type <
and >
. However, pressing just mod, Ctrl, and ,
works, which is very nice.
Note, you can also set a keybinding to send things to a specific monitor by its name.
The workspace can be explicitly specified by name like this, for values of workspace_name and output_name:
i3-msg '[workspace="workspace_name"]' move workspace to output output_index
Note that if you name your workspaces like 1:first
, you use 1
not first
.