]> git.lizzy.rs Git - bspwm.git/blob - doc/CHANGELOG.md
d72d3adad8ddb7f95358b071e9702610f246379c
[bspwm.git] / doc / CHANGELOG.md
1 # From 0.9.4 to 0.9.6
2
3 ## Additions
4
5 - New *wm* command: `--restart`. It was already possible to restart `bspwm` without loosing the current state through `--{dump,load}-state`, but this command will also keep the existing subscribers intact.
6 - New settings: `automatic_scheme`, `removal_adjustment`. The automatic insertion mode now provides three ways of inserting a new node: `spiral`, `longest_side` (the default) and `alternate`. Those schemes are described in the README.
7 - New settings: `ignore_ewmh_struts`, `presel_feedback`, `{top,right,bottom,left}_monocle_padding`.
8 - New node descriptor: `smallest`.
9 - New desktop modifier: `active`.
10
11 ## Changes
12
13 - The `focused` and `active` modifiers now mean the same thing across every object.
14 - Fullscreen windows are no longer sent to the `above` layer. Within the same layer, fullscreen windows are now above floating windows. If you want a floating window to be above a fullscreen window, you'll need to rely on layers.
15 - Pseudo-tiled windows now shrink automatically.
16
17 ## Removals
18
19 - The `paddingless_monocle` setting was removed (and subsumed).
20
21 # From 0.9.3 to 0.9.4
22
23 ## Changes
24
25 - The following events: `node_{manage,unmanage}` are now `node_{add,remove}`.
26
27 ## Additions
28
29 - New monitor/desktop/node descriptors: `any`, `newest`.
30 - New node flag: `marked`.
31 - New monitor descriptor: `pointed`.
32 - New *wm* command: `--reorder-monitors`.
33 - Receptacles are now described in the manual.
34 - New `--follow` option added to `node -{m,d,n,s}` and `desktop -{m,s}`.
35 - The *subscribe* command now has the following options: `--fifo`, `--count`.
36 - New settings: `ignore_ewmh_fullscreen`, `mapping_events_count`.
37
38 # From 0.9.2 to 0.9.3
39
40 ## Changes
41
42 - *click_to_focus* is now a button name. Specifying a boolean is deprecated but will still work (`true` is equivalent to `button1`).
43
44 ## Additions
45
46 - `node -r` now accepts a relative fraction argument.
47 - An option was added to `query -{M,D,N}` in order to output names instead of IDs: `--names`.
48 - New rule consequence: `rectangle=WxH+X+Y`.
49 - New settings: `swallow_first_click` and `directional_focus_tightness`.
50
51 # From 0.9.1 to 0.9.2
52
53 ## Changes
54
55 - Monitors, desktops and nodes have unique IDs, `bspc query -{N,D,M}` returns IDs and events reference objects by ID instead of name.
56 - `bspc` fails verbosely and only returns a single non-zero exit code.
57 - The `DIR` descriptor is based on [right-window](https://github.com/ntrrgc/right-window).
58 - The `CYCLE_DIR` descriptor isn't limited to the current desktop/monitor anymore. (You can emulate the previous behavior by appending a `.local` modifier to the selector.)
59 - `bspc query -{N,D,M}` accepts an optional reference argument used by certain descriptors/modifiers.
60 - Monitors are ordered visually by default.
61 - The following settings: `border_width`, `window_gap` and `*_padding` behave as expected.
62 - External rules also receives the monitor, desktop and node selectors computed from the built-in rules stage as subsequent arguments.
63 - The `focus_follows_pointer` setting is implemented via enter notify events.
64
65 ## Additions
66
67 - Nodes can be hidden/shown via the new `hidden` flag.
68 - Node receptacles can be inserted with `node -i`. An example is given in `git show e8aa679`.
69 - Non-tiled nodes can be moved/resized via `node -{v,z}`.
70 - The reference of a selector can be set via the `{NODE,DESKTOP,MONITOR}_SEL#` prefix, example: `bspc node 0x0080000c#south -c` will close the node at the south of `0x0080000c`.
71 - Node descriptors: `<node_id>`, `pointed`.
72 - Node modifiers: `hidden`, `descendant_of`, `ancestor_of`, `window`, `active`. Example: `bspc query -N 0x00400006 -n .descendant_of` returns the descendants of `0x00400006`.
73 - Desktop descriptor: `<desktop_id>`.
74 - Monitor descriptor: `<monitor_id>`.
75 - Settings: `pointer_motion_interval`, `pointer_modifier`, `pointer_action{1,2,3}`, `click_to_focus`, `honor_size_hints`.
76 - Event: `pointer_action`.
77 - ICCCM/EWMH atoms: `WM_STATE`, `_NET_WM_STRUT_PARTIAL`.
78 - `bspc` shell completions for `fish`.
79
80 ## Removals
81
82 - The `pointer` domain. Pointer actions are handled internally. You need to remove any binding that uses this domain from your `sxhkdrc`.
83 - Settings: `history_aware_focus`, `focus_by_distance`. Both settings are merged into the new `DIR` implementation.
84 - `monitor -r|--remove-desktops`: use `desktop -r|--remove` instead.
85 - `wm -r|--remove-monitor`: use `monitor -r|--remove` instead.
86
87 # From 0.9 to 0.9.1
88
89 ## Overview
90
91 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.
92
93 ## Changes
94
95 - All the commands that started with `window` now start with `node`.
96 - `-W|--windows`, `-w|--window`, `-w|--to-window` are now `-N|--nodes`, `-n|--node`, `-n|--to-node`.
97 - We now use cardinal directions: `west,south,north,east` instead of `left,down,up,right` (in fact the latter is just plain wrong: the `up,down` axis is perpendicular to the screen).
98 - The `WINDOW_SEL` becomes `NODE_SEL` and now contains a `PATH` specifier to select internal nodes.
99 - The `control` domain is renamed to `wm`.
100 - `restore -{T,H,S}` was unified into `wm -l|--load-state` and `query -{T,H,S}` into `wm -d|--dump-state`.
101 - `control --subscribe` becomes `subscribe`.
102 - `node --toggle` (previously `window --toggle`) is split into `node --state` and `node --flag`.
103 - The preselection direction (resp. ratio) is now set with `node --presel-dir|-p` (resp. `node --presel-ratio|-o`).
104 - The following desktop commands: `--rotate`, `--flip`, `--balance`, `--equalize`, `--circulate` are now node commands.
105 - `query -T ...` outputs JSON.
106 - `query -{M,D,N}`: the descriptor part of the selector is now optional (e.g.: `query -D -d .urgent`).
107 - Many new modifiers were added, some were renamed. The opposite of a modifier is now expressed with the `!` prefix (e.g.: `like` becomes `same_class`, `unlike` becomes `!same_class`, etc.).
108 - Modifiers can now be applied to any descriptor (e.g.: `query -N -n 0x80000d.floating`).
109 - `wm -l` (previously `restore -T`) will now destroy the existing tree and restore from scratch instead of relying on existing monitors and desktops.
110 - `subscribe` (previously `control --subscribe`) now accepts arguments and can receive numerous events from different domains (see the *EVENTS* section of the manual).
111 - `rule -a`: it is now possible to specify the class name *and* instance name (e.g.: `rule -a Foo:bar`).
112 - `presel_border_color` is now `presel_feedback_color`.
113 - `bspwm -v` yields an accurate version.
114 - The monitors are sorted, by default, according to the natural visual hierarchy.
115
116 ## Additions
117
118 ### Settings
119
120 - `single_monocle`.
121 - `paddingless_monocle`.
122
123 ### Commands
124
125 - `{node,desktop} --activate`.
126 - `node --layer`.
127 - `desktop --bubble`.
128 - `wm {--add-monitor,--remove-monitor}`.
129 - `monitor --rectangle`.
130
131 ## Removals
132
133 ### Commands
134
135 - `desktop --toggle`
136 - `desktop --cancel-presel`
137 - `control --toggle-visibility`.
138
139 ### Settings
140
141 - `apply_floating_atom`.
142 - `auto_alternate`.
143 - `auto_cancel`.
144 - `focused_locked_border_color`
145 - `active_locked_border_color`
146 - `normal_locked_border_color`
147 - `focused_sticky_border_color`
148 - `active_sticky_border_color`
149 - `normal_sticky_border_color`
150 - `focused_private_border_color`
151 - `active_private_border_color`
152 - `normal_private_border_color`
153 - `urgent_border_color`
154
155 ## Message Translation Guide
156
157 0.9                                      | 0.9.1
158 -----------------------------------------|----------------------------------
159 `{left,down,up,right}`                   | `{west,south,north,east}`
160 `window -r`                              | `node -o` (`node -r` also exists)
161 `window -e DIR RATIO`                    | `node @DIR -r RATIO`
162 `window -R DIR DEG`                      | `node @DIR -R DEG`
163 `window -w`                              | `node -n`
164 `desktop DESKTOP_SEL -R DEG`             | `node @DESKTOP_SEL:/ -R DEG`
165 `desktop DESKTOP_SEL -E`                 | `node @DESKTOP_SEL:/ -E`
166 `desktop DESKTOP_SEL -B`                 | `node @DESKTOP_SEL:/ -B`
167 `desktop DESKTOP_SEL -C forward|backward`| `node @DESKTOP_SEL:/ -C forward|backward`
168 `desktop DESKTOP_SEL --cancel-presel`    | `bspc query -N -d DESKTOP_SEL | xargs -I id -n 1 bspc node id -p cancel`
169 `window -t floating`                     | `node -t ~floating`
170 `query -W -w`                            | `query -N -n .leaf`
171 `query -{T,H,S}`                         | `wm -d`
172 `restore -{T,H,S}`                       | `wm -l`