The last desktop and monitor are now deduced from the history.
The stacking order is now independent from the history of the focused
nodes: this prevents hacks on both sides.
All windows are now considered in the stacking algorithm: it prevents
tiled windows from one monitor to appear above the floating windows of
another monitor.
Transfered windows are stacked below the windows of the same kind.
Allows selecting windows based on their mode (manual/automatic). This
is useful for duplicating the old shift-can-be-transplant behavior.
# Usage: squish DIR
squish() {
dir=$1
bspc window -w ${dir}.manual || bspc window -s ${dir}
}
1. Pass the correct desktop when checking if the focused desktop matches.
2. Don't assume that a last desktop exists.
2. Don't assume that a last monitor exists.
Window:
* cycle - no change
* direction - only consider matching nodes
* last - walk history
* focused - match or NULL
* biggest - find biggest matching
Desktop:
* cycle - no change
* focused - match or NULL
* last - match or NULL
Monitor:
* cycle - no change
* direction - only consider matching nodes
* last - match or NULL
* focused - match or NULL
The new message syntax:
- Provides 10 commands instead of 60.
- Allows multiple actions to be applied in one call.
The client now returns an non zero exit code when a message fails.
The `is_adjacent` function now handles vacant nodes.