This guide describes the list of incompatible changes between the different herbstluftwm releases and how to migrate scripts and configuration. See the NEWS file for a list of all changes and new features.
0.9.2 to 0.9.3
The command cycle_value now expects an attribute path instead of a settings
name. For compatibility reasons, passing settings name directly (without the
settings.) is still supported.
Only for people using the git-version: During the development of 0.9.3, the content_geometry attribute of clients initially had the name geometry_reported.
0.8.3 to 0.9.0
The tag_renamed hook has changed. The hook now emits two parameters. The first parameter contains the old name of the tag and the second parameter is the new name of the tag.
0.5.3 to 0.6.0
The behaviour of swap_monitors_to_get_tag = 0 has changed. If swap_monitors_to_get_tag is set to 0, then focus the other monitor if the desired tag is shown on another monitor. Previously nothing has been done.
0.5.1 to 0.5.2
The herbstclient completion options changed for bash. If you manually setup the completion — e.g. for an alias like hc — then update the complete line as follows:
complete -F _herbstclient_complete -o nospace herbstclient # or hc
0.4.1 to 0.5.0
herbstclient now returns the exitstatus 9 (HERBST_NEED_MORE_ARGS) instead of 3 (HERBST_INVALID_ARGUMENT) if a command needs more arguments. If an error occurs, it now outputs an error message to stderr.
The padding arguments have been removed from add_monitor and a monitor name has been added instead. If you add a monitor with padding, instead of hc add_monitor 1024x768+0+0 1 2 3 4 now use hc add_monitor 1024x768+0+0; hc pad N 1 2 3 4.
As a result from adding monitor names, the output of list_monitors and stack changes a bit for named monitors. list_padding only outputs the padding for one monitor now.
The setting focus_follows_shift has been removed. The behaviour now is set like it were set to 1; the focus always follows the shift now.
0.3 to 0.4
The setting window_gap is now called frame_gap. Simply replace all occurrences of window_gap by frame_gap in your old scripts (and autostart).
0.2 to 0.3
The setting ignore_class is removed, because this also can be done by rules. You can replace a line like set ignore_class "$foo" in your autostart by rule class~"$foo" manage=off