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.
This rewrite is based on a TODO comment for the *stack_refresh*
function of *awesome*:
It might be worth stopping to restack everyone and only stack `c'
relatively to the first matching in the list.
And on the concept of relative stacking (via XDG_CONFIG_WINDOW_SIBLING).
Additionally the `adaptative_raise` setting was removed because it
became obsolete when the choice was made of not raising windows when
focusing via `focus_follows_pointer`.
Windows of type *desktop* are now supported (but not managed).
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}
}
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 removal is motivated by the following example:
+-------+-------+
| | |
| | b |
| | |
| |_______|
| a | |
| * | c |
| | |
| |_______|
| | |
| | d |
| | |
+-------+-------+
Bellow is a summary of the number of steps required to reach *b*, *c* and *d* with *a* as a starting point with the associated mean and variance:
focus_by_distance steps mean variance
---------------------------------------------------------------
false 1, 2, 3 2 2/3
true 2, 1, 2 5/3 2/9
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.