3204caa98d
As lintian (a Debian package checker) mentions, it is more clever to install it without the extension, since the implementation language might change.
136 lines
6.4 KiB
Plaintext
136 lines
6.4 KiB
Plaintext
|
||
┌────────────────────────────┐
|
||
│ Release notes for i3 v4.0 │
|
||
└────────────────────────────┘
|
||
|
||
This is the first release of the new major version of i3, v4.0. 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 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-07-31
|