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