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

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

An important under-the-hood change is that we now use the same parser
  infrastructure for the configuration file as we do for the commands. This
  makes maintenance and contributions easier and lets us finally escape the
  insanity that is bison/flex.

  In case there is a bug and your existing config does not work as expected
  anymore, try using the --force-old-config-parser-v4.4-only flag when starting
  i3 and please report a bug. This option will only be present in v4.4, so if
  you don’t report a bug, you are willingly breaking your own config file.

Apart from that, there have been several little fixes and additions which make
  i3 pay more attention to detail, particularly in the floating window area of
  the code. See the changes/bugfixes list for more information.

 ┌────────────────────────────┐
 │ Changes in v4.4            │
 └────────────────────────────┘

  • add i3-dmenu-desktop, a dmenu wrapper which parses application .desktop
    files and executes them.
  • also use a custom parser for the config file
  • i3.xsession.desktop is now standards-compliant
  • ipc: you can now subscribe to an event called 'mode' (for binding modes)
  • implement "move container to workspace back_and_forth"
  • implement delayed urgency hint reset
  • make "move workspace number" accept a default workspace name after the
    number
  • i3bar: allow child to specify start/stop signals to use in hide mode
  • i3bar: add "urgent" to protocol, it unhides i3bar when in hide mode
  • make parent of urgent containers also urgent
  • add descriptive title to split containers (no more "another container")
  • click to focus: clicking the root window focuses the relevant workspace
  • display appropriate cursors when resizing or moving floating windows
  • implement variable border widths for pixel/normal
  • Implement moving workspaces as if they’re regular containers
  • Maintain relative positioning when moving floating windows between outputs
  • Focus the relevant workspace when clicking any container
  • docs/ipc: remove unnecessary newline
  • docs/ipc: add a warning to use an existing library
  • shmlog: remove O_TRUNC flag for shm_open, we truncate on our own
  • un-fullscreen as needed when moving fullscreen containers
  • improve startup sequence termination conditions
  • allow floating cons to be reached using 'focus parent'
  • grab keys with all permutations of lock and numlock
  • allow workspace contents to be moved if there are only floating children
  • allow 'focus <direction>' to move out of non-global fullscreen containers
  • exit with a proper error message when there are no outputs available
  • skip floating cons in focus <child|parent> and stop them from being split
  • focus windows when middle-clicking
  • skip floating windows in the focus stack when moving through the tree
  • docs/userguide: use $mod consistently
  • keycode default config: s/bindcode/bindsym/
  • implement smart popup_during_fullscreen mode
  • docs/testsuite: add "installing the dependencies" section
  • introduce new command to rename focused workspace
  • libi3: use "pango:" prefix instead of "xft:" to avoid confusion
  • ipc: add "current" and "old" containers to workspace events
  • i3bar: add current binding mode indicator
  • resizing floating windows now obeys the minimum/maximum size
  • docs/userguide: document new_float option

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

  • Bugfix: get_output_next() now works with non-aligned RandR setups
  • Bugfix: close empty workspaces after cross-output move
  • Bugfix: fix bottom line of tabbed decoration not continuous
  • Bugfix: use correct coordinates for windows which are opened on a newly
    created workspace due to assignments
  • Bugfix: properly react to windows being unmapped before we can reparent
  • Bugfix: send non-floating window with floating parent to scratchpad
  • docs/userguide: document how to "un-scratchpad" a window
  • Bugfix: don’t crash when dragged floating window closes
  • Bugfix: draw h-split indicator at the correct position
  • make the resize command honor criteria
  • Bugfix: with one ws per output, don’t crash on cross-output moves
  • Bugfix: correctly move floating windows to invisible workspaces
    cross-output
  • Bugfix: set workspace_layout in create_workspace_on_output
  • fix fullscreen focus bug and corresponding test flaw
  • i3bar: bugfix: don’t send workspace command when at beginning/end of workspace
  • Bugfix: force rendering when the parent’s orientation changed
  • Bugfix: fix workspace back_and_forth after displaying a scratchpad window

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

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

  Adrien Schildknecht, aksr, bitonic, chrysn, Conley Moorhous, darkraven, Deiz,
  Emil Mikulic, Feh, flo, Francesco Mazzoli, hax404, joepd, Kacper Kowalik,
  Markus, meaneye, Merovius, Michael Walle, moju, Moritz, noxxun, Oliver
  Kiddle, Pauli Ervi, Pavel Löbl, Piotr, pkordy, Quentin Glidic, Sascha Kruse,
  Sebastian Ullrich, Simon Elsbrock, slowpoke, strcat, Tblue, Tim, whitequark,
  xeen, Yaroslav Molochko

-- Michael Stapelberg, 2012-12-12
