┌────────────────────────────┐
 │ Release notes for i3 v4.14 │
 └────────────────────────────┘

This is i3 v4.14. This version is considered stable. All users of i3 are
strongly encouraged to upgrade.

Aside from many bug and documentation fixes, the “swap” command is a notable
addition of this release. As is almost tradition at this point, keybinding
handling has seen some fixes as well. A noticeable change for users with such
monitors is i3’s support for RandR 1.5, which transparently supports the TILE
property of first-gen 4K monitors and current 5K or 8K monitors.

 ┌────────────────────────────┐
 │ Changes in i3 v4.14        │
 └────────────────────────────┘

  • build: link libiconv explicitly for systems which need it
  • build: move AnyEvent-I3 into the i3 repository
  • docs/hacking-howto: add compilation instructions
  • docs/ipc: add missing cases to the workspace event
  • docs/ipc: document the “primary” field of the OUTPUTS reply
  • docs/ipc: replace Go IPC library with a maintained one
  • docs/ipc: add link to the ocaml-i3ipc library
  • docs/ipc: fix invalid trailing commas in JSON examples
  • docs/layout-saving: add section about troubleshooting window titles
  • docs/testsuite: update for the move to autotools
  • docs/userguide: clarify the move command syntax
  • docs/userguide: correct “Esc” to “Escape”
  • docs/userguide: clarify focus_follows_mouse behavior
  • docs/userguide: expand on combining “workspace number” with a name
  • docs/userguide: mention the magic v4 config marker
  • man/i3.man: correct configuration lookup order
  • i3bar, i3-config-wizard, i3-nagbar: use the Xft.dpi setting (see 4.13 notes)
  • i3bar: restart bar status command on reload if it changed
  • i3bar: treat left/right scrolling like up/down scrolling
  • i3bar: accept “primary” in the “output” configuration directive
  • i3-input: do not set input focus, grabbing the keyboard suffices
  • i3-msg: return an exit code when missing the -t argument
  • i3-sensible-editor: correct “mc-edit” to “mcedit”
  • i3-sensible-terminal: add lilyterm, tilix, terminix, konsole
  • respect SYSCONFDIR when looking for the default xdg directory
  • use RandR 1.5 to query screens, supporting the TILE property commonly used
    by multi-stream transport (MST) monitors, such as first-gen 4K monitors, or
    current 5K and 8K monitors
  • respect minimum size hints for floating windows
  • support the _NET_MOVERESIZE_WINDOW client message (for e.g. wmctrl)
  • validate binding modes are not defined more than once
  • only react to the last ExposeEvent in a series of events
  • add the shutdown IPC event (upon “restart” or “exit”)
  • treat left/right scrolling like up/down scrolling (on window titles)
  • make the “layout toggle” command optionally take a sequence of layouts
  • introduce --exclude-titlebar flag for mouse bindings
  • introduce the “swap” command
  • support the primary output in the “focus” and “move” commands
  • compare keybinding modifiers for equality, not subset
  • introduce the GET_CONFIG ipc request (i3-msg -t get_config)
  • start i3-nagbar when encountering invalid set statements
  • focus windows upon ConfigureWindow requests with stack-mode=Above

 ┌────────────────────────────┐
 │ Bugfixes                   │
 └────────────────────────────┘

  • i3bar: correct the color codes used for statusline errors
  • i3bar: avoid freeze after VisibilityNotify
  • i3-dmenu-desktop: fix quoted command names
  • i3-dmenu-desktop: avoid adding items multiple times
  • fix various X11 resource leaks, memory leaks and memory errors
  • fix IPC success reply for the workspace command
  • report errors during logfile creation
  • fix the signal handler being blank
  • display marks and the title even if the title is empty (for title_format)
  • fix changing workspace layout from stacked/tabbed for empty workspaces
  • add numlock fallback to “bindcode” where necessary
  • fix a crash on restart when using marks
  • fix renaming workspaces when the new name starts with “to”
  • respect dont_warp flag when moving containers

 ┌────────────────────────────┐
 │ Thanks!                    │
 └────────────────────────────┘

Thanks for testing, bugfixes, discussions and everything I forgot go out to:

  akash akya, Armaël Guéneau, Baptiste Daroussin, Chih-Chyuan Hwang, cresh,
  David Jimenez Sequero, Franz König, fred777, Ingo Bürk, Jakub Wilk,
  Jens-Wolfhard Schicke-Uffmann, Johannes Lange, lasers, lebenlechzer,
  loungecube, Maarten Dirkse, Manuel Mendez, Max Fisher, Mihai Coman, Nathan
  Schulte, s3rb31, Sebastian Larsson, Stefan Hagen, Tobias Hänel, Tony Crisci,
  Trevor Merrifield, Zbyněk Moravec

-- Michael Stapelberg, 2017-09-04