┌────────────────────────────┐ │ Release notes for i3 v4.16 │ └────────────────────────────┘ This is i3 v4.16. This version is considered stable. All users of i3 are strongly encouraged to upgrade. This release contains a number of assorted fixes and improvements across pretty much all individual components of i3. ┌────────────────────────────┐ │ Changes in i3 v4.16 │ └────────────────────────────┘ • build: add conditionals for building docs/mans • docs/i3bar-protocol: mention skipping blocks with empty full_text • docs/ipc: add window_properties to tree node • docs/layout-saving: clarify JSON non-compliance • docs/userguide: clarify X resource value format • docs/userguide: fix move_to_outputs link • docs/userguide: link workspace_auto_back_and_forth from workspace command • docs/userguide: mention known issues for assign • docs/userguide: use anchor for list_of_commands • docs/userguide: add the default keybinding for focus parent • man/*: fix title markers (for asciidoctor) • man/i3-msg.man: add get_config and send_tick • ipc: kill misbehaving subscribed clients instead of hanging • ipc: introduce the sync IPC command for synchronization with i3bar • ipc: scratchpad show now returns correct success • ipc: send_tick now sets the already-documented “first” field • i3bar-protocol: add modifiers to events sent by i3bar • dump-asy: use Pod::Usage for --help and perldoc • dump-asy: introduce -gv flag to disable opening ghostview • dump-asy: introduce -save flag to store the rendered tree in a file • dump-asy: add marks • dump-asy: include floating containers • i3bar: add --verbose flag • i3bar: make modifier accept combinations (like floating_modifier) • i3-config-wizard: add --modifier flag to allow for headless config • i3-config-wizard: support startup notifications • i3-msg: only print input + error position if they are set • i3-msg: check replies also in quiet mode (-q) • i3-msg: add support for the SUBSCRIBE message type • i3-nagbar: support startup notifications • i3-nagbar: add option for button that runs commands without a terminal • i3-save-tree: exclude unsupported transient_for property • i3-sensible-terminal: add alacritty • i3-sensible-terminal: add hyper • introduce strip_workspace_name alongside strip_workspace_numbers • introduce title_align config directive • “border toggle” now accepts an optional pixel argument • “resize set” now interprets 0 as “no change” • “resize set” now accepts the “width” and “height” keywords • “resize” with pixel values now works for tiling containers • the optional “absolute” method is now silently ignored in “move position” commands, where it did not cause a visible difference anyway • the _NET_WM_STATE_FOCUSED atom is now supported, resulting in e.g. GTK applications displaying the correct window decoration • moving fullscreen containers now moves them across outputs • floating windows can now be used with a geometry of e.g. +1+1, i.e. their top-left corner can be outside any output as long as the window is contained partially by one • prefer floating fullscreen containers when switching focus • moving containers to an active workspace no longer changes focus • the rename workspace command no longer confuses directions (e.g. “left”) with output names • prefer $XDG_CONFIG_HOME/i3/config over ~/.i3/config • allow multiple assignments of workspaces to output • respect maximum size in WM_NORMAL_HINTS • reject requests for WM_STATE_ICONIC, which avoids e.g. wine applications being stuck in paused state • a number of code refactorings and cleanups, some of which tool-assisted ┌────────────────────────────┐ │ Bugfixes │ └────────────────────────────┘ • build: fix static linking • i3bar: fix various memory leaks • i3bar: fix crash when no status_command is provided • i3bar: fix chopping the first character on the very left when using the full width of the output • i3bar: fix relative_x and width properties of click events • i3bar: fix the tray disappearing in some cases when using "tray_output" • fix various memory leaks and memory correctness issues • refocus focused window on FOCUS_IN events for the root window. This fixes incorrect behavior with steam and some tk apps • fix focus bugs when moving unfocused containers • fix incorrect urgent window state edge case • moving an unfocused container from inside a split container to another workspace doesn’t focus siblings • toggling and killing floating windows now maintains focus order • don’t incorrectly focus siblings when scrolling on window decorations • fix crash when moving a container to a marked workspace • fix swap when first is behind a fullscreen window • fix crash when renaming an existing workspace to a name assigned to the focused output • reframe swallowed windows if depth doesn’t match • use detectable autorepeat so that --release bindings are run only when the key is actually released (and not when it is repeated) • fix border artifacts when moving windows • correctly handle bindings for the same mod key with and without --release • reset B_UPON_KEYRELEASE_IGNORE_MODS bindings when switching modes • fix height offset calculation in pango text drawing • fix detection of libiconv on OpenBSD • free workspace assignments on reload • fix mouse position at startup with multiple outputs • no longer allow dragging global fullscreen floating containers • fix rendering artifacts with global fullscreen containers • fix disabling floating for scratchpad windows • fix a crash when renaming an unfocused empty workspace matching an assignment • ensure containers have a size of at least 1px after resize • permit invalid UTF-8 in layout JSON files (e.g. for window titles) • correct invalid UTF-8 characters in window and container titles • fix a crash when moving to a child of a floating container • fix a crash when matching __focused__ with no window open • fix no_focus when only using floating windows • fix max_aspect calculation • moving an unfocused container from another output now maintains the correct focus order • don’t change focus order when swapping containers • correctly update _NET_CURRENT_DESKTOP when moving containers between outputs using the directional move command • don’t produce move events after attempting to directionally move a container towards a direction it can’t go • fix sticky focus when switching to workspace on different output ┌────────────────────────────┐ │ Thanks! │ └────────────────────────────┘ Thanks for testing, bugfixes, discussions and everything I forgot go out to: Adrian Cybulski, Aestek, Alan Barr, Andriy Yablonskyy, Cassandra Fox, Christian Duerr, Dan Elkouby, downzer0, Elouan Martinet, Felix Buehler, Gravemind, Harry Lawrence, Hritik Vijay, hwangcc23, Ingo Bürk, Joona, Klorax, lasers, Łukasz Adamczak, Martin, Michael Stapelberg, Oliver Graff, Orestis Floros, Soumya, Takashi Iwai, Thomas Fischer, Todd Walton, Tony Crisci, Uli Schlachter, Vivien Didelot -- Michael Stapelberg, 2018-11-04