From 0.9.1 to 0.9.2
Changes
- Monitors, desktops and nodes have unique IDs,
bspc query -{N,D,M}returns IDs and events reference objects by ID instead of name. bspcfails verbosely and only returns a single non-zero exit code.- The
DIRdescriptor is based on right-window. - The
CYCLE_DIRdescriptor isn't limited to the current desktop/monitor anymore. (You can emulate the previous behavior by appending a.localmodifier to the selector.) bspc query -{N,D,M}accepts an optional reference argument used by certain descriptors/modifiers.- Monitors are ordered visually by default.
- The following settings:
border_width,window_gapand*_paddingbehave as expected. - External rules also receives the monitor, desktop and node selectors computed from the built-in rules stage as subsequent arguments.
- The
focus_follows_pointersetting is implemented via enter notify events.
Additions
- Nodes can be hidden/shown via the new
hiddenflag. - Node receptacles can be inserted with
node -i. An example is given ingit show e8aa679. - Non-tiled nodes can be moved/resized via
node -{v,z}. - The reference of a selector can be set via the
{NODE,DESKTOP,MONITOR}_SEL#prefix, example:bspc node 0x0080000c#south -cwill close the node at the south of0x0080000c. - Node descriptors:
<node_id>,pointed. - Node modifiers:
hidden,descendant_of,ancestor_of,window,active. Example:bspc query -N 0x00400006 -n .descendant_ofreturns the descendants of0x00400006. - Desktop descriptor:
<desktop_id>. - Monitor descriptor:
<monitor_id>. - Settings:
pointer_motion_interval,pointer_modifier,pointer_action{1,2,3},click_to_focus,honor_size_hints. - Event:
pointer_action. - ICCCM/EWMH atoms:
WM_STATE,_NET_WM_STRUT_PARTIAL. bspcshell completions forfish.
Removals
- The
pointerdomain. Pointer actions are handled internally. You need to remove any binding that uses this domain from yoursxhkdrc. - Settings:
history_aware_focus,focus_by_distance. Both settings are merged into the newDIRimplementation. monitor -r|--remove-desktops: usedesktop -r|--removeinstead.wm -r|--remove-monitor: usemonitor -r|--removeinstead.
From 0.9 to 0.9.1
Overview
All the commands that acted on leaves can now be applied on internal nodes (including focusing and preselection). Consequently, the window domain is now a node domain. Please note that some commands are applied to the leaves of the tree rooted at the selected node and not to the node itself.
Changes
- All the commands that started with
windownow start withnode. -W|--windows,-w|--window,-w|--to-windoware now-N|--nodes,-n|--node,-n|--to-node.- We now use cardinal directions:
west,south,north,eastinstead ofleft,down,up,right(in fact the latter is just plain wrong: theup,downaxis is perpendicular to the screen). - The
WINDOW_SELbecomesNODE_SELand now contains aPATHspecifier to select internal nodes. - The
controldomain is renamed towm. restore -{T,H,S}was unified intowm -l|--load-stateandquery -{T,H,S}intowm -d|--dump-state.control --subscribebecomessubscribe.node --toggle(previouslywindow --toggle) is split intonode --stateandnode --flag.- The preselection direction (resp. ratio) is now set with
node --presel-dir|-p(resp.node --presel-ratio|-o). - The following desktop commands:
--rotate,--flip,--balance,--equalize,--circulateare now node commands. query -T ...outputs JSON.query -{M,D,N}: the descriptor part of the selector is now optional (e.g.:query -D -d .urgent).- Many new modifiers were added, some were renamed. The opposite of a modifier is now expressed with the
!prefix (e.g.:likebecomessame_class,unlikebecomes!same_class, etc.). - Modifiers can now be applied to any descriptor (e.g.:
query -N -n 0x80000d.floating). wm -l(previouslyrestore -T) will now destroy the existing tree and restore from scratch instead of relying on existing monitors and desktops.subscribe(previouslycontrol --subscribe) now accepts arguments and can receive numerous events from different domains (see the EVENTS section of the manual).rule -a: it is now possible to specify the class name and instance name (e.g.:rule -a Foo:bar).presel_border_coloris nowpresel_feedback_color.bspwm -vyields an accurate version.- The monitors are sorted, by default, according to the natural visual hierarchy.
Additions
Settings
single_monocle.paddingless_monocle.
Commands
{node,desktop} --activate.node --layer.desktop --bubble.wm {--add-monitor,--remove-monitor}.monitor --rectangle.
Removals
Commands
desktop --toggledesktop --cancel-preselcontrol --toggle-visibility.
Settings
apply_floating_atom.auto_alternate.auto_cancel.focused_locked_border_coloractive_locked_border_colornormal_locked_border_colorfocused_sticky_border_coloractive_sticky_border_colornormal_sticky_border_colorfocused_private_border_coloractive_private_border_colornormal_private_border_colorurgent_border_color
Message Translation Guide
| 0.9 | 0.9.1 |
|---|---|
{left,down,up,right} |
{west,south,north,east} |
window -r |
node -o (node -r also exists) |
window -e DIR RATIO |
node @DIR -r RATIO |
window -R DIR DEG |
node @DIR -R DEG |
window -w |
node -n |
desktop DESKTOP_SEL -R DEG |
node @DESKTOP_SEL:/ -R DEG |
desktop DESKTOP_SEL -E |
node @DESKTOP_SEL:/ -E |
desktop DESKTOP_SEL -B |
node @DESKTOP_SEL:/ -B |
desktop DESKTOP_SEL -C forward|backward |
node @DESKTOP_SEL:/ -C forward|backward |
desktop DESKTOP_SEL --cancel-presel |
bspc query -N -d DESKTOP_SEL | xargs -I id -n 1 bspc node id -p cancel |
window -t floating |
node -t ~floating |
query -W -w |
query -N -n .leaf |
query -{T,H,S} |
wm -d |
restore -{T,H,S} |
wm -l |