In a multiple monitor set-up, is there a way to transfer entire workspaces (as opposed to single applications) to a different monitor?
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
>. 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.
in 2021 they added something, you can now also use;
bindsym $mod+Ctrl+greater move workspace to output next
This has the advantage of being agnostic as to the position of the workspace - it just cycles through them, no matter if they are up or down or whatever.