146 lines
6.8 KiB
Groff
146 lines
6.8 KiB
Groff
|
|
|||
|
┌─────────────────────────────┐
|
|||
|
│ Release notes for i3 v4.0.1 │
|
|||
|
└─────────────────────────────┘
|
|||
|
|
|||
|
This is the second release of the new major version of i3, v4.0.1. It has been
|
|||
|
a long time since v3.ε was released (over one year). A lot has been happening
|
|||
|
since then, we made 736 commits – compare that to the total number of 1664
|
|||
|
commits for i3.
|
|||
|
|
|||
|
The reason for the high number of commits and long time for this release is the
|
|||
|
big refactoring we have been doing. Instead of using several lists and a table
|
|||
|
as data structures, we now use a single tree of containers. These containers
|
|||
|
represent invisible entities like your X11 root window, your different monitors
|
|||
|
and workspaces, but also visible entities like actual windows.
|
|||
|
|
|||
|
Using a tree has made a lot of things cleaner and easier – in the code *and* in
|
|||
|
the user interface. Admittedly though, you will probably need a day or two to
|
|||
|
get used to a few more advanced movement commands if you are used to v3.ε right
|
|||
|
now.
|
|||
|
|
|||
|
┌────────────────────────────┐
|
|||
|
│ New features in v4.0.1 │
|
|||
|
└────────────────────────────┘
|
|||
|
|
|||
|
• Fix the build process of i3bar
|
|||
|
• Fix the build process on Mac OS X
|
|||
|
• i3-config-wizard: also start i3bar in the keycode config template
|
|||
|
• userguide: Remove the obsolete bar.* colors
|
|||
|
• userguide: Use i3bar instead of dzen2 in the 'exec' example
|
|||
|
|
|||
|
┌────────────────────────────┐
|
|||
|
│ New features in v4.0 │
|
|||
|
└────────────────────────────┘
|
|||
|
|
|||
|
• In addition to the proper flex/bison based parser for the config file
|
|||
|
introduced in 3.δ, we now also have a flex/bison parser for commands. What
|
|||
|
this means is that we can have more human-readable, beautiful command names
|
|||
|
instead of cryptic commands like 'f' for fullscreen or 'mh' for move left.
|
|||
|
In fact, the commands for the aforementioned functions *are* 'fullscreen'
|
|||
|
and 'move left'!
|
|||
|
|
|||
|
• You can now chain commands using ';' (a semicolon). One example for that is
|
|||
|
'workspace 3 ; exec /usr/bin/urxvt' to switch to a new workspace and open a
|
|||
|
terminal.
|
|||
|
|
|||
|
• You can specify which windows should be affected by your command by using
|
|||
|
different criteria. A good example is '[class="Firefox"] kill' to get rid
|
|||
|
of all Firefox windows.
|
|||
|
|
|||
|
• As the configuration file needs new commands (and a few options are
|
|||
|
obsolete), you need to change it. To make this process a little bit easier
|
|||
|
for you, this release comes with the script i3-migrate-config-to-v4. Just
|
|||
|
run it on your current config file and it will spit out a v4 config file to
|
|||
|
stdout. To make things even better, i3 automatically detects v3 config files
|
|||
|
and calls that script, so you never end up with a non-working config :).
|
|||
|
|
|||
|
• Similarly to the criteria when using commands, we now have a 'for_window'
|
|||
|
configuration directive, which lets you automatically apply certain commands
|
|||
|
to certain windows. Use it to set border styles per window, for example with
|
|||
|
'for_window [class="XTerm"] border 1pixel'.
|
|||
|
|
|||
|
• Since dock clients (like dzen2) are now part of the layout tree (as opposed
|
|||
|
to a custom data structure as before), it was easy to implement top and
|
|||
|
bottom dock areas. Programs which properly specify the dock hint get placed
|
|||
|
on the edge of the screen they request. i3bar has the -dtop and -dbottom
|
|||
|
parameters, for example.
|
|||
|
|
|||
|
• The internal workspace bar is obsolete. Use i3bar instead.
|
|||
|
|
|||
|
• Resizing now works between all windows!
|
|||
|
|
|||
|
• Fullscreen now works for everything!
|
|||
|
|
|||
|
• Floating now works for everything!
|
|||
|
|
|||
|
• Your layout is now preserved when doing an inplace restart.
|
|||
|
|
|||
|
• When you have an error in your config file, a new program called i3-nagbar
|
|||
|
will tell you so. It offers you two buttons: One to view the error in your
|
|||
|
$PAGER and one to edit your config in your $EDITOR.
|
|||
|
|
|||
|
• The default config used key symbols (like 'bind Mod1+f fullscreen') instead
|
|||
|
of key codes. If you use a non-qwerty layout, the program i3-config-wizard
|
|||
|
can create a key symbol based config file based on your current layout. You
|
|||
|
can also chose between Windows (Mod4) and Alt (Mod1) as your default
|
|||
|
modifier. i3-config-wizard will automatically be started as long as you
|
|||
|
don’t have a configuration file for i3.
|
|||
|
|
|||
|
• Custom X cursor themes are now supported.
|
|||
|
|
|||
|
• The RandR backend now respects the primary output.
|
|||
|
|
|||
|
• A wrong 'font' configuration in your config file will no longer make i3
|
|||
|
exit. Instead, it will fall back to a different font and tell you about the
|
|||
|
error in its log.
|
|||
|
|
|||
|
• The default split direction (whether a new window gets placed right next to
|
|||
|
the current one or below the current one) is now automatically set to
|
|||
|
horizontal if you have a monitor that is wider than high or vertical if you
|
|||
|
a monitor which is higher than wide. This works great with rotated monitors.
|
|||
|
|
|||
|
• Sockets and temporary files are now placed in XDG_RUNTIME_DIR, if set (this
|
|||
|
is used on systemd based systems).
|
|||
|
|
|||
|
• Tools like i3bar, i3-msg etc. use the I3_SOCKET_PATH property which is set
|
|||
|
to the X11 root window, so you don’t have to configure your socket path
|
|||
|
anywhere.
|
|||
|
|
|||
|
• The kill command kills single windows by default now. To kill a whole
|
|||
|
application, use 'kill client'.
|
|||
|
|
|||
|
• IPC: Commands can now have custom replies. When the parser encounters an
|
|||
|
error, a proper error reply is sent.
|
|||
|
|
|||
|
• There is now an 'exec_always' configuration directive which works like
|
|||
|
'exec' but will also be run when restarting.
|
|||
|
|
|||
|
┌────────────────────────────┐
|
|||
|
│ Future features │
|
|||
|
└────────────────────────────┘
|
|||
|
|
|||
|
Our plans were big but our time and manpower is limited. Therefore, the
|
|||
|
following features did not make it into this release. However, the foundation
|
|||
|
is now in place and implementing them is possible, so stay tuned!
|
|||
|
|
|||
|
• Saving/Restoring specific parts of your layout
|
|||
|
|
|||
|
• Session saving
|
|||
|
|
|||
|
• Sticky windows
|
|||
|
|
|||
|
┌────────────────────────────┐
|
|||
|
│ Thanks! │
|
|||
|
└────────────────────────────┘
|
|||
|
|
|||
|
Thanks for testing, bugfixes, discussions and everything I forgot go out to:
|
|||
|
|
|||
|
aniou, artoj, badboy, cloud, cradle, David Coppa, dbp, dothebart, eeemsi,
|
|||
|
eelvex, f8l, fernando, jan, jimdigriz, jon, julien, kacper, ktosiek,
|
|||
|
lexszero, litemotiv, lourens, madroach, marcus, merovius, mike, mirko, mseed,
|
|||
|
mxf, phnom, quaec, rogutes, sardemff7, smartass, thepub, tiago, tucos,
|
|||
|
woddf2, xpt, ys
|
|||
|
|
|||
|
-- Michael Stapelberg, 2011-08-01
|