2 ┌──────────────────────────────┐
3 │ Release notes for i3 v4.3 │
4 └──────────────────────────────┘
6 This is the i3 v4.3. This version is considered stable. All users of i3 are
7 strongly encouraged to upgrade.
9 One rather visible change is that commands which could not be parsed properly
10 will now spawn i3-nagbar. In case you used "bindsym $mod+x firefox" (and
11 forgot the "exec" keyword) or you made a typo in your config, you will now
15 We also made the orientation (horizontal/vertical) part of the layout
16 mechanism: Before, we got the default layout and you could change
17 orientation. Now, there are two new layouts "splitv" and "splith", which
18 replace the default layout. The "split h" and "split v" commands continue to
19 work as before, they split the current container and you will end up in a
20 split container with layout splith (after "split h") or splitv (after
23 To change a splith container into a splitv container, use either "layout
24 splitv" or "layout toggle split". The latter command is used in the
25 default config as mod+e (formerly "layout default"). In case you have
26 "layout default" in your config file, it is recommended to just replace
27 it by "layout toggle split", which will work as "layout default" did
28 before when pressing it once, but toggle between horizontal/vertical
29 when pressing it repeatedly.
31 The rationale behind this change is that it’s cleaner to have all
32 parameters that influence how windows are rendered in the layout itself
33 rather than having one special layout in combination with an additional
34 orientation. This enables us to change existing split containers in all
35 cases without breaking existing features (see ticket #464). Also, users
36 should feel more confident about whether they are actually splitting or
37 just changing an existing split container now.
39 As a nice side-effect, this commit brings back the "layout toggle"
40 feature we once had in i3 v3 (see the userguide).
43 Another very important change is that we now support pango for rendering text.
44 The default is still to use misc-fixed (X core fonts), but you can use a font
45 specification starting with "xft:" now, such as "xft:DejaVu Sans Mono 10" and
46 i3 will use pango. The sole motivation for this is NOT to have fancier window
47 decorations, but to support fonts which have more glyphs (think Japanese for
48 example) and to support right-to-left rendering (open http://www.ftpal.net/
49 for an example). Supporting users from all over the planet is important, and
50 as such I would strongly advise distribution packagers to leave pango support
51 enabled. In case you are working on a very low-spec embedded device, it is
52 easy enough to disable pango support, see common.mk.
55 Also, the 'layout' command now always works on the parent split container. This
56 allows you to do things like this:
58 for_window [class="XTerm"] layout tabbed
60 When you now open XTerm on an empty workspace, the whole workspace will be
61 set to tabbed. In case you want to open XTerm in its own tabbed split
62 container, you need to split before:
64 for_window [class="XTerm"] split v, layout tabbed
67 Furthermore, we decided to entirely ignore resize increment size hints for
68 tiling windows. These are set by terminal emulators (such as urxvt,
69 gnome-terminal, …) and specify that the window may only be resized in
70 multiples of the specified size. All terminal emulators cope with the window
71 manager ignoring these hints and by doing so, they can decide what to do with
72 the lost space (that is, pseudo-transparency now works without black bars in
75 ┌────────────────────────────┐
77 └────────────────────────────┘
79 • docs: there now is documentation about lib::i3test and lib::i3test::Test,
80 the main Perl modules used by our testsuite.
81 • docs/refcard: update for v4
82 • docs/userguide: clarify the default for focus_follows_mouse and new_window
83 • docs/userguide: add section about implicit containers
84 • docs/userguide: give 'move <container|workspace> to output' its own section
85 • docs/ipc: document the 'window' field in the GET_TREE reply
86 • docs/ipc: update links to ipc libraries
87 • docs/ipc: make the reply sections consistent
88 • docs/i3bar-protocol: add example (illustration-only!) shell script
89 • man/i3bar.man: reference i3bar-protocol
90 • IPC: Commands now lead to proper error messages in general. If we forgot
91 about a specific one, please open a ticket.
92 • IPC: implement GET_VERSION to find out the i3 version
93 • i3-dump-log now comes with a massively more helpful error message that
94 should cover all the use cases.
95 • 'workspace number <number>' now opens a new workspace
96 • 'workspace number <number>' now works with the back_and_forth option
97 • Allow focus with target (criteria) when in fullscreen mode in some cases
98 • Allow focus child/parent when in fullscreen mode
99 • Restrict directional focus when in fullscreen mode
100 • Prevent moving out of fullscreen containers
101 • Add 'move to workspace current' (useful when used with criteria)
102 • replace loglevels by a global debug logging
103 • make: new makefile layout
104 • make: canonicalize path when compiling. This leads to sth like
105 ../i3-4.2/src/main.c in backtraces, clearly identifying i3 code.
106 • automatically hide i3bar when it’s unneeded (after urgency hints)
107 • i3-config-wizard: use the level 0 keysym whenever it’s unambiguous
108 • i3-nagbar: use custom scripts to work around different terminal emulators
109 using different ways of interpreting the arguments to -e
110 • i3-sensible-terminal: add xfce4-terminal
111 • default config: require confirmation when exiting i3
112 • Display i3-nagbar when a command leads to an error.
113 • testcases: complete-run now supports --xtrace
114 • testcases: handle EAGAIN (fixes hangs)
115 • testcases: handle test bailouts
116 • Introduce splith/splitv layouts, remove orientation
117 • Implement hide_edge_borders option
118 • Support _NET_ACTIVE_WINDOW ClientMessages
119 • Set I3_PID atom on the X11 root window
120 • Implement i3 --moreversion, handy for figuring out whether you run the
121 latest binary which is installed.
122 • i3bar: be less strict about the {"version":1} JSON header
123 • shm-logging: implement i3-dump-log -f (follow)
124 • Implement pango support
125 • 'move workspace number n' will now create the workspace if it doesn’t exist
126 • Accept slashes in RandR output names
127 • Keep startup-notification sequences around for 30s after completion
128 • Introduce bindsym --release, which will trigger the binding not on the
129 KeyPress event, but on the KeyRelease event (useful for import(1) or
131 • The signalhandler does not offer you to exit i3 anymore. Instead, there is
132 'b' for writing a backtrace to a file in /tmp (if gdb is installed)
133 • Remove support for resize increment hints for tiling windows
134 • Exit fullscreen mode when 'scratchpad show' is executed while in fullscreen
136 ┌────────────────────────────┐
138 └────────────────────────────┘
140 • Fix floating precision bug when floating windows are moved between outputs.
141 • i3bar won’t crash when full_text is missing or null in the JSON input
142 • When having "workspace number 1" in your config, there will no longer be a
143 stray workspace "number 1".
144 • i3.config.keycodes used bindsym instead of bindcode for the arrow key
145 resizing bindings by mistake
146 • Fix 'move to workspace' when used with criteria
147 • Handle clicks to the very left edge of i3bar
148 • When using i3 -C, don’t send remaining arguments as an IPC command
149 • Fix reload crashes in rare cases
150 • i3bar: inform all clients of new tray selection owner (fixes tray problems
151 with X-Chat and possibly others)
152 • resizing: traverse containers up properly (fixes non-working resizing when
153 having a h-split within a h-split for example)
154 • Fix floating coordinates when moving assigned workspaces
155 • Properly fix floating coordinates when disabling outputs
156 • floating_fix_coordinates: properly deal with negative positions
157 • floating windows: add deco_height only when in normal border mode (fixes
158 initial floating window position/size when using a different default border
160 • Fix moving scratchpad window
161 • Cleanup zero-byte logfile on immediate exit (they are created by i3
162 --get-socketpath for example).
163 • Fix resizing floating windows by height
164 • Fix back_and_forth in 'workspace number' for named workspaces
165 • Grab server and process pending events before managing existing windows
166 (fixes problems with GIMP windows not being managed after an in-place
168 • Don’t allow ConfigureRequests while in fullscreen (fixes a compatibility
169 issue with gnome-terminal and xfce’s terminal)
170 • Fix flickering with 1pixel border tabbed layouts
171 • Use _exit() instead of exit() when i3 utility programs cannot be executed
172 • Don’t focus the wrong workspace when moving to scratchpad
174 ┌────────────────────────────┐
176 └────────────────────────────┘
178 Thanks for testing, bugfixes, discussions and everything I forgot go out to:
180 aksr, Axel Wagner, darkraven, David Coppa, eeemsi, Felicitus, Fernando Tarlá
181 Cardoso Lemos, Iakov Davydov, jh, Joel Stemmer, Julius Plenz, loblik, Marcel
182 Hellwig, Marcus, mloskot, Moritz Bandemer, oblique, Ondrej Grover, Pavel
183 Löbl, Philipp Middendorf, prg, Quentin Glidic, Sebastian Ullrich, Simon
184 Elsbrock, somelauw, stfn, tucos, TunnelWicht, Valentin Haenel
186 -- Michael Stapelberg, 2012-09-19