gri3-wm/RELEASE-NOTES-4.3

187 lines
10 KiB
Groff
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

┌──────────────────────────────┐
│ Release notes for i3 v4.3 │
└──────────────────────────────┘
This is the i3 v4.3. This version is considered stable. All users of i3 are
strongly encouraged to upgrade.
One rather visible change is that commands which could not be parsed properly
will now spawn i3-nagbar. In case you used "bindsym $mod+x firefox" (and
forgot the "exec" keyword) or you made a typo in your config, you will now
notice that :).
We also made the orientation (horizontal/vertical) part of the layout
mechanism: Before, we got the default layout and you could change
orientation. Now, there are two new layouts "splitv" and "splith", which
replace the default layout. The "split h" and "split v" commands continue to
work as before, they split the current container and you will end up in a
split container with layout splith (after "split h") or splitv (after
"split v").
To change a splith container into a splitv container, use either "layout
splitv" or "layout toggle split". The latter command is used in the
default config as mod+e (formerly "layout default"). In case you have
"layout default" in your config file, it is recommended to just replace
it by "layout toggle split", which will work as "layout default" did
before when pressing it once, but toggle between horizontal/vertical
when pressing it repeatedly.
The rationale behind this change is that its cleaner to have all
parameters that influence how windows are rendered in the layout itself
rather than having one special layout in combination with an additional
orientation. This enables us to change existing split containers in all
cases without breaking existing features (see ticket #464). Also, users
should feel more confident about whether they are actually splitting or
just changing an existing split container now.
As a nice side-effect, this commit brings back the "layout toggle"
feature we once had in i3 v3 (see the userguide).
Another very important change is that we now support pango for rendering text.
The default is still to use misc-fixed (X core fonts), but you can use a font
specification starting with "xft:" now, such as "xft:DejaVu Sans Mono 10" and
i3 will use pango. The sole motivation for this is NOT to have fancier window
decorations, but to support fonts which have more glyphs (think Japanese for
example) and to support right-to-left rendering (open http://www.ftpal.net/
for an example). Supporting users from all over the planet is important, and
as such I would strongly advise distribution packagers to leave pango support
enabled. In case you are working on a very low-spec embedded device, it is
easy enough to disable pango support, see common.mk.
Also, the 'layout' command now always works on the parent split container. This
allows you to do things like this:
for_window [class="XTerm"] layout tabbed
When you now open XTerm on an empty workspace, the whole workspace will be
set to tabbed. In case you want to open XTerm in its own tabbed split
container, you need to split before:
for_window [class="XTerm"] split v, layout tabbed
Furthermore, we decided to entirely ignore resize increment size hints for
tiling windows. These are set by terminal emulators (such as urxvt,
gnome-terminal, …) and specify that the window may only be resized in
multiples of the specified size. All terminal emulators cope with the window
manager ignoring these hints and by doing so, they can decide what to do with
the lost space (that is, pseudo-transparency now works without black bars in
urxvt).
┌────────────────────────────┐
│ Changes in v4.3 │
└────────────────────────────┘
• docs: there now is documentation about lib::i3test and lib::i3test::Test,
the main Perl modules used by our testsuite.
• docs/refcard: update for v4
• docs/userguide: clarify the default for focus_follows_mouse and new_window
• docs/userguide: add section about implicit containers
• docs/userguide: give 'move <container|workspace> to output' its own section
• docs/ipc: document the 'window' field in the GET_TREE reply
• docs/ipc: update links to ipc libraries
• docs/ipc: make the reply sections consistent
• docs/i3bar-protocol: add example (illustration-only!) shell script
• man/i3bar.man: reference i3bar-protocol
• IPC: Commands now lead to proper error messages in general. If we forgot
about a specific one, please open a ticket.
• IPC: implement GET_VERSION to find out the i3 version
• i3-dump-log now comes with a massively more helpful error message that
should cover all the use cases.
• 'workspace number <number>' now opens a new workspace
• 'workspace number <number>' now works with the back_and_forth option
• Allow focus with target (criteria) when in fullscreen mode in some cases
• Allow focus child/parent when in fullscreen mode
• Restrict directional focus when in fullscreen mode
• Prevent moving out of fullscreen containers
• Add 'move to workspace current' (useful when used with criteria)
• replace loglevels by a global debug logging
• make: new makefile layout
• make: canonicalize path when compiling. This leads to sth like
../i3-4.2/src/main.c in backtraces, clearly identifying i3 code.
• automatically hide i3bar when its unneeded (after urgency hints)
• i3-config-wizard: use the level 0 keysym whenever its unambiguous
• i3-nagbar: use custom scripts to work around different terminal emulators
using different ways of interpreting the arguments to -e
• i3-sensible-terminal: add xfce4-terminal
• default config: require confirmation when exiting i3
• Display i3-nagbar when a command leads to an error.
• testcases: complete-run now supports --xtrace
• testcases: handle EAGAIN (fixes hangs)
• testcases: handle test bailouts
• Introduce splith/splitv layouts, remove orientation
• Implement hide_edge_borders option
• Support _NET_ACTIVE_WINDOW ClientMessages
• Set I3_PID atom on the X11 root window
• Implement i3 --moreversion, handy for figuring out whether you run the
latest binary which is installed.
• i3bar: be less strict about the {"version":1} JSON header
• shm-logging: implement i3-dump-log -f (follow)
• Implement pango support
• 'move workspace number n' will now create the workspace if it doesnt exist
• Accept slashes in RandR output names
• Keep startup-notification sequences around for 30s after completion
• Introduce bindsym --release, which will trigger the binding not on the
KeyPress event, but on the KeyRelease event (useful for import(1) or
xdotool(1)).
• The signalhandler does not offer you to exit i3 anymore. Instead, there is
'b' for writing a backtrace to a file in /tmp (if gdb is installed)
• Remove support for resize increment hints for tiling windows
• Exit fullscreen mode when 'scratchpad show' is executed while in fullscreen
┌────────────────────────────┐
│ Bugfixes │
└────────────────────────────┘
• Fix floating precision bug when floating windows are moved between outputs.
• i3bar wont crash when full_text is missing or null in the JSON input
• When having "workspace number 1" in your config, there will no longer be a
stray workspace "number 1".
• i3.config.keycodes used bindsym instead of bindcode for the arrow key
resizing bindings by mistake
• Fix 'move to workspace' when used with criteria
• Handle clicks to the very left edge of i3bar
• When using i3 -C, dont send remaining arguments as an IPC command
• Fix reload crashes in rare cases
• i3bar: inform all clients of new tray selection owner (fixes tray problems
with X-Chat and possibly others)
• resizing: traverse containers up properly (fixes non-working resizing when
having a h-split within a h-split for example)
• Fix floating coordinates when moving assigned workspaces
• Properly fix floating coordinates when disabling outputs
• floating_fix_coordinates: properly deal with negative positions
• floating windows: add deco_height only when in normal border mode (fixes
initial floating window position/size when using a different default border
setting).
• Fix moving scratchpad window
• Cleanup zero-byte logfile on immediate exit (they are created by i3
--get-socketpath for example).
• Fix resizing floating windows by height
• Fix back_and_forth in 'workspace number' for named workspaces
• Grab server and process pending events before managing existing windows
(fixes problems with GIMP windows not being managed after an in-place
restart)
• Dont allow ConfigureRequests while in fullscreen (fixes a compatibility
issue with gnome-terminal and xfces terminal)
• Fix flickering with 1pixel border tabbed layouts
• Use _exit() instead of exit() when i3 utility programs cannot be executed
• Dont focus the wrong workspace when moving to scratchpad
┌────────────────────────────┐
│ Thanks! │
└────────────────────────────┘
Thanks for testing, bugfixes, discussions and everything I forgot go out to:
aksr, Axel Wagner, darkraven, David Coppa, eeemsi, Felicitus, Fernando Tarlá
Cardoso Lemos, Iakov Davydov, jh, Joel Stemmer, Julius Plenz, loblik, Marcel
Hellwig, Marcus, mloskot, Moritz Bandemer, oblique, Ondrej Grover, Pavel
Löbl, Philipp Middendorf, prg, Quentin Glidic, Sebastian Ullrich, Simon
Elsbrock, somelauw, stfn, tucos, TunnelWicht, Valentin Haenel
-- Michael Stapelberg, 2012-09-19