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

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

Two long-awaited features have been added:

 1. You can now use an “include” directive in your i3 config:
    https://i3wm.org/docs/userguide.html#include

 2. You can now enable showing window icons in window titlebars:
    https://i3wm.org/docs/userguide.html#title_window_icon

In case you notice any issues regarding your background/wallpaper, note:

  Some login managers (e.g. gdm) start the X11 server with the -background none
  flag. When this flag is set, a background needs to be explicitly set later in
  the X11 session, otherwise stale copies of closed windows remain visible on
  the X11 root window (symptom looks like “my terminal window is not closing”).

  i3 works around this situation by setting a screenshot as background when
  starting. Any background you set before starting i3 (e.g. in your Xsession) or
  after starting i3 (e.g. via exec statements in the i3 config) will be visible.

  A downside of this workaround is that if you have any windows already open in
  your X11 session, those will be part of the screenshot.

  To fix this issue, starting in v4.20, i3 detects whether the -background none
  option is enabled and only then sets a screenshot as background.

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

  • default config: use dex for XDG autostart
  • docs/ipc: document scratchpad_state
  • ipc: the GET_CONFIG request now returns all included files and their details
  • i3-nagbar: position on focused monitor by default
  • i3-nagbar: add option to position on primary monitor
  • i3bar: use first bar config by default
  • i3-dmenu-desktop: ignore duplicate files and directories (fixes crash on NixOS)
  • i3-dump-log -f now uses UNIX sockets instead of pthreads. The UNIX socket approach
    should be more reliable and also more portable.
  • When clicking on a tab, focus its child (like when scrolling), or (if
    already focused), focus the tab container (alternatingly).
  • Implement the include config directive:
    https://i3wm.org/docs/userguide.html#include
  • Implement optionally showing window icons in titlebar:
    https://i3wm.org/docs/userguide.html#title_window_icon
  • Allow for_window to match against WM_CLIENT_MACHINE
  • Add %machine placeholder (WM_CLIENT_MACHINE) to title_format
  • 'move container|workspace to output': toggle a workspace (or container)
    between multiple outputs when multiple output names specified.
  • Add 'move container|workspace to output next'
  • Add 'all' window matching criterion
  • Acquire the WM_Sn selection when starting as required by ICCCM
  • Add --replace command line argument to replace an existing WM
  • Notify systemd when i3 is ready, allowing other services in a systemd user session
    to use i3 as a dependency

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

  • i3bar: properly close file descriptors
  • i3bar: properly restart status command after config change
  • i3bar: exit with 1 when a wrong command line argument is used
  • ipc: return proper signed int for container positions: negative values were
    returned as large 32 bits integers
  • when initializing new outputs, avoid duplicating workspace numbers
  • fix workspaces not moving to assigned output after output becomes available
  • fix duplicate bindcode after i3-config-wizard
  • fix commented-out rofi call in default i3 config
  • clear pixmap before drawing to prevent visual garbage
  • fix crash with "layout default"
  • send an "output" event on XRandR 1.5 monitor configuration change

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

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

  ajakk, Albert Safin, Anaël Beutot, Antoine Martin, Dmitri Goutnik, ekarpp,
  Imran Virani, Ingo Bürk, Isaac Garzon, Ivan Milov, Jay Khandkar, j-jzk, Ken
  Gilmer, Kjetil Torgrim Homme, lbonn, Michael Stapelberg, Orestis Floros, Ralph
  Gutkowski, Romuald Brunet, tomty89, Tristan Giles, Tudor Brindus, Uli
  Schlachter, Vincent Bernat, Vladimir Panteleev

-- Michael Stapelberg, 2021-10-19
