57954a2b24
The exact semantics of this command are complicated. I'll describe each test scenario as s-expressions. Everything assumes L_HORIZ if not specified, but if you rotate everything 90 degrees the same test cases hold. ``` (container (view a) (view b focus) (view c)) -> move left (container (view b focus) (view a) (view c)) (container (view a) (view b focus) (view c)) -> move right (container (view a) (view c) (view b focus)) (container L_VERT (view a)) (container L_HORIZ (view b) (view c focus)) -> move up (container L_VERT (view a) (view c focus)) (container L_HORIZ (view b)) (workspace (view a) (view b focus) (view c)) -> move up (workspace [split direction flipped] (view b focus) (container (view a) (view c))) (workspace (view a) (view b focus) (view c)) -> move down (workspace [split direction flipped] (container (view a) (view c)) (view b focus))) Note: outputs use wlr_output_layout instead of assuming that i+/-1 is the next output in the move direction. (root (output X11-1 (workspace 1)) (output X11-2 (workspace 1 (view a focus) (view b))))) -> move left (root (output X11-1 (workspace 1 (view a focus))) (output X11-2 (workspace 1 (view b))))) (root (output X11-1 (workspace 1 (container (view a) (view b))) (output X11-2 (workspace 1 (view c focus))))) -> move left (root (output X11-1 (workspace 1 (container (view a) (view b)) (view c focus))) (output X11-2 (workspace 1))) ``` |
||
---|---|---|
.. | ||
bar | ||
input | ||
seat | ||
bar.c | ||
bind.c | ||
default_orientation.c | ||
exec.c | ||
exec_always.c | ||
exit.c | ||
focus.c | ||
focus_follows_mouse.c | ||
include.c | ||
input.c | ||
kill.c | ||
layout.c | ||
mode.c | ||
mouse_warping.c | ||
move.c | ||
opacity.c | ||
output.c | ||
reload.c | ||
resize.c | ||
seat.c | ||
set.c | ||
split.c | ||
swaybg_command.c | ||
workspace.c |