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