]> git.sur5r.net Git - i3/i3.github.io/blob - downloads/RELEASE-NOTES-3.e.txt
Add i3lock 2.10
[i3/i3.github.io] / downloads / RELEASE-NOTES-3.e.txt
1 Release notes for i3 v3.ε
2 -----------------------------
3
4 This is the fifth version (3.ε, transcribed 3.e) of i3. It is considered
5 stable.
6
7 A really big change in this release is the support of RandR instead of
8 Xinerama. The Xinerama API is a subset of RandR and its limitations clearly
9 showed when you reconfigured outputs using xrandr(1) during runtime (it was
10 not designed to handle such changes). The implementation of RandR fixes some
11 long-standing bugs (workspaces were messed up when reconfiguring outputs)
12 and cleans up some code. Furthermore, you are now able to assign workspaces
13 to outputs (like LVDS1, VGA1, …) instead of the formerly used heuristics
14 like "the screen at position (x, y)" or "the second screen in the list".
15
16 Furthermore, another big change is the separation of debug output (the
17 so-called logfile): you now need to enable verbose output (parameter -V)
18 and you need to specify which (if any) debug output you want to see (parameter
19 -d <loglevels>). When starting without -V, i3 will only log errors. This is
20 what you usually want for a production system. When enabling verbose output,
21 you will see the names and window classes of new windows (useful for creating
22 assignments in your configuration file) and other useful messages. For an
23 explanation of the debuglevels, please see the "How to debug" document (for
24 the impatient: "-d all" gives you full output).
25
26 In 3.δ, a new parser/lexer was introduced and available using the -l option.
27 The old parser/lexer has been removed in the meantime, so in 3.ε, the "new"
28 parser/lexer is always used and you do not need the -l option anymore. To
29 make debugging errors in your configuration easier, the error messages have
30 been very much improved. Also, the parser tries to skip invalid lines (though
31 it may not always succeed, it usually works and does not crash i3).
32
33 Starting from version 3.ε, i3 obeys the XDG base directory specification,
34 meaning that you can now put your configuration file into ~/.config/i3/config,
35 which might be useful if you manage your ~/.config directory in some way (git,
36 …). The old configuration file path is still supported (there are no plans
37 to change this), but using ~/.config seems reasonable for clean setups.
38
39 You can disable the internal workspace bar in this release. Instead of the
40 internal bar, you can use dzen2 (or similar) in dock mode (-dock for dzen2,
41 but you need an svn revision). The sample implementation i3-wsbar takes
42 stdin, generates a combined bar (workspaces + stdin) and starts dzen2 on
43 your outputs as needed (does the right thing when you reconfigure your
44 monitors dynamically).
45
46 To accomplish the external workspace bar feature, the IPC interface has
47 seen much love: requests and replies now use JSON for serialization of
48 data structures and provide a nice and simple way to get information (like
49 the current workspaces or outputs) from i3 or send commands to it. You can
50 also subscribe to certain types of events (workspace or output changes).
51 See the AnyEvent::I3 module for a sample implementation of a library.
52
53 Thanks for this release go out to Merovius, badboy, xeen, Atsutane, Ciprian,
54 dirkson, Mirko, sur5r, artoj, Scytale, fallen, Thomas, Sasha, dothebart, msi
55 and all other people who reported bugs/made suggestions.
56
57 A complete list of changes follows:
58
59  * Implement RandR instead of Xinerama
60  * Obey the XDG Base Directory Specification for config file paths
61  * lexer/parser: proper error messages
62  * Add new options -V for verbose mode and -d <loglevel> for debug log levels
63  * Implement resize command for floating clients
64  * Include date of the last commit in version string
65  * Fixed cursor orientation when resizing
66  * Added focus_follows_mouse config option
67  * Feature: Cycle through workspaces
68  * Fix bindings using the cursor keys in default config
69  * added popup for handling SIGSEGV or SIGFPE
70  * Correctly exit when another window manager is already running
71  * Take into account the window’s base_{width,height} when resizing
72  * Disable XKB instead of quitting with an error
73  * Make containers containing exactly one window behave like default containers
74  * Also warp the pointer when moving a window to a another visible workspace
75  * work around clients setting 0xFFFF as resize increments
76  * Move autostart after creating the IPC socket in start process
77  * Restore geometry of all windows before exiting/restarting
78  * When in fullscreen mode, focus whole screens instead of denying to focus
79  * draw consistent borders for each frame in a tabbed/stacked container
80  * Update fullscreen client position/size when an output changes
81  * i3-input: Bugfix: repeatedly grab the keyboard if it does not succeed
82  * put windows with WM_CLIENT_LEADER on the workspace of their leader
83  * use real functions instead of nested functions (enables compilation with
84    llvm-clang)
85  * implement screen-spanning fullscreen mode
86  * floating resize now uses arbitrary corners
87  * floating resize now works proportionally when pressing shift
88  * Don’t use SYNC key bindings for mode_switch but re-grab keys
89  * support PREFIX and SYSCONFDIR in Makefile
90  * make pointer follow the focus when moving to a different screen also for
91    floating clients
92  * start dock clients on the output they request to be started on according
93    to their geometry
94  * handle destroy notify events like unmap notify events
95  * ewmh: correctly set _NET_CURRENT_DESKTOP to the number of the active
96    workspace
97  * ewmh: correctly set _NET_ACTIVE_WINDOW
98  * ewmh: implement support for _NET_WORKAREA (rdesktop can use that)
99  * default ipc-socket path is now ~/.i3/ipc.sock, enabled in the default config
100  * Bugfix: Containers could lose their snap state
101  * Bugfix: Use ev_loop_new to not block SIGCHLD
102  * Bugfix: if a font provides no per-char info for width, fall back to default
103  * Bugfix: lexer: return to INITIAL state after floating_modifier
104  * Bugfix: Don’t leak IPC socket to launched processes
105  * Bugfix: Use both parts of WM_CLASS (it contains instance and class)
106  * Bugfix: Correctly do boundary checking/moving to other workspaces when
107    moving floating clients via keyboard
108  * Bugfix: checked for wrong flag in size hints
109  * Bugfix: Correctly render workspace names containing some non-ascii chars
110  * Bugfix: Correctly position floating windows sending configure requests
111  * Bugfix: Don’t remap stack windows errnously when changing workspaces
112  * Bugfix: configure floating windows above tiling windows when moving them
113    to another workspace
114  * Bugfix: Take window out of fullscreen mode before entering floating mode
115  * Bugfix: Don’t enter BIND_A2WS_COND state too early
116  * Bugfix: only restore focus if the workspace is focused, not if it is visible
117  * Bugfix: numlock state will now be filtered in i3-input and signal handler
118  * Bugfix: Don’t unmap windows when current workspace gets reassigned
119  * Bugfix: correctly translate coordinates for floating windows when outputs
120    change
121  * Bugfix: Correctly switch workspace when using the "jump" command
122  * Bugfix: Fix rendering of workspace names after "reload"
123  * Bugfix: Correctly ignore clicks when in fullscreen mode
124  * Bugfix: Don’t allow fullscreen floating windows to be moved
125  * Bugfix: Don’t render containers which are not visible on hint changes
126  * Some memory leaks/invalid accesses have been fixed
127
128  -- Michael Stapelberg, 2010-03-30