┌────────────────────────────┐
│ Release notes for i3 v4.18 │
└────────────────────────────┘
This is i3 v4.18. This version is considered stable. All users of i3 are
strongly encouraged to upgrade.
┌────────────────────────────┐
│ Changes in i3 v4.18 │
└────────────────────────────┘
• docs/ipc: document fullscreen_mode in GET_TREE reply
• docs/ipc: document marks field in GET_TREE reply
• docs/ipc: document window_type in GET_TREE reply
• docs/ipc: improve documentation for window_properties
• docs/userguide: clarify commands/config directive wording
• layout saving: remanage window after property updates (e.g. titles)
• get_first_output: prefer primary output (e.g. when moving disabled outputs)
• ipc: add window_type to nodes
• ipc: add container id to nodes
• allow dragging active titles for all container types (e.g. floating+tabbed)
• allow dragging inactive titles after a 10px threshold
• make tray icon order deterministic (sorted by class/instance)
• implement focus next|prev
• implement focus next|prev sibling
• implement focus_wrapping workspace
• exit with exit code 0 on --help
• exec command: respect command criteria
┌────────────────────────────┐
│ Bugfixes │
└────────────────────────────┘
• build: fix lcov support
• build: use AC_REPLACE_FUNCS, drop bundled memmem
• build: fix building with -fno-common (for gcc 10)
• build: configure: deal with git worktree checkouts, where .git is a file
• docs/userguide: fix link to pango markup
• docs/userguide: add missing manipulating_layout anchor
• docs/userguide: fix IPC socket location
• i3-nagbar: make debug log visible
• i3-nagbar: fix small memory leaks
• i3bar: fix small memory leaks
• move workspace to output: don’t create duplicate numbered workspace
• correctly select output when pointer query fails
• fix moving windows to scratchpad when using marks
• fix startup workspace selection when workspace command uses options
• do not try to center floating window on itself (fixes xterm placement)
• fix “move window to <mark>” when target is a workspace
• correctly activate windows behind a fullscreen window
• fix back-and-forth after renaming workspaces
• keep focus when moving container to marked workspace
• do not show scratchpad windows upon move to position command
• reparent windows to their current position when unmanaging
(fixes dock clients unexpectedly moving to different output)
• fix crash when moving containers
• scratchpad_move: un-fullscreen correct container
• avoid crash when nc->window is NULL
┌────────────────────────────┐
│ Thanks! │
└────────────────────────────┘
Thanks for testing, bugfixes, discussions and everything I forgot go out to:
acheronfail, Albert Safin, Antoine, Benjamin Dopplinger, Brian Ashworth,
Damien Cassou, Daniele Varrazzo, David Shen, Erwin J. van Eijk, Ingo Bürk,
Iskustvo, izzel, Konst Mayer, Orestis Floros, Yury Ignatev
-- Michael Stapelberg, 2020-02-17
┌──────────────────────────────┐
│ Release notes for i3 v4.17.1 │
└──────────────────────────────┘
This is i3 v4.17.1. This version is considered stable. All users of i3 are
strongly encouraged to upgrade.
This is a bugfix release for v4.17
┌────────────────────────────┐
│ Bugfixes │
└────────────────────────────┘
• unset _I3_RESTART_FD after restart (fixes crashes on restart)
• default config: immediately refresh i3status after volume changes
• default config: add XF86AudioMicMute
• default config: mention loginctl lock-session alongside xss-lock
• default config: use workspace number, not just workspace
┌────────────────────────────┐
│ Thanks! │
└────────────────────────────┘
Thanks for testing, bugfixes, discussions and everything I forgot go out to:
David Shen
-- Michael Stapelberg, 2019-08-30
┌────────────────────────────┐
│ Release notes for i3 v4.17 │
└────────────────────────────┘
This release contains a number of assorted fixes and improvements across pretty
much all individual components of i3.
┌────────────────────────────┐
│ Changes in i3 v4.17 │
└────────────────────────────┘
• config: make binding modes case-sensitive
• default config: mention ~/.config/i3/config
• default config: start xss-lock, nm-applet, pactl (volume keys)
• docs/userguide: update syntax in strip_workspace_*
• docs/userguide: add a section about hidpi displays
• docs/userguide: document mark --replace
• docs/userguide: uncomment and update mark section example
• docs/userguide: point out differences of normal/pixel title bars
• docs/userguide: clarify which config directives can be used at runtime
• docs/userguide: for_window is a directive, not a command
• docs/ipc: clarify event/reply types
• docs/ipc: mention new i3-ipc++ C++ library
• docs/ipc: clarify restart/exit behavior
• docs/i3bar-protocol: add markup
• man/i3.man: fix config file search order
• ipc: make restart command send a reply once restart completed
• ipc: use queue for all messages
fixes i3bar issues when switching between workspaces with many windows
• i3-dump-log: clarify log message
• i3-msg: exit with status code 2 when i3 returns an error
• render left and right borders of titles in stacked mode
• make swap work with floating windows, fix swap crash
• switch to clang-format-6.0
• add input and bounding shapes support
(e.g. for the https://github.com/phw/peek screen recorder)
• preserve back_and_forth across restarts
• allow partial UTF-8 to UCS-2 conversion for better handling of
title bar content which cannot be represented (e.g. emoji)
when using bitmap pixel fonts
• check for duplicate key bindings in i3 -C
• i3bar: support transparency via --transparency flag (RGBA)
• i3bar: support for user-defined border widths
┌────────────────────────────┐
│ Bugfixes │
└────────────────────────────┘
• build: correctly depend on glib (for g_utf8_make_valid)
• build: fix build when git is configured to show signatures
• ipc: report correct workspace in init event after workspace move
• ipc: send missing window:focus event
• i3bar: correctly recognize click events with text alignment
• i3bar: fix running without fd 0
• i3bar: correctly handle button presses on separator
• i3 --moreversion: warn when $DISPLAY is unset
• i3bar: support disabling click events
• release.sh: persist correct version number in docs
• accept output names containing spaces (e.g. in assignment)
• fix cursor resizing positioning
• fix aspect ratio issues (e.g. with mpv)
• fix brief focus flicker when renaming workspaces
• fix crash when canceling i3 via ctrl+c
• fix heap-use-after-free, memory leak
• fix focus bugs in enabling/disabling RandR outputs
• fix crash with popups when fullscreen is non-leaf
• fix crash when moving a second window to mark
• fix crash with programs with splash screen
• fix atoms when closing inactive workspace
• apply title_align to non-leaf containers
• layout loading: correctly mark non-leaf containers
• truncate wm_name utf8 strings to first zero byte
(makes window titles work with buggy clients)
• fix crash in workspace moving
• export I3SOCK environment variable (again)
• fix hanging flaky testcase by using the correct X11 connection
• resize: add missing error replies
• don’t pop up floating windows on the wrong workspace
• remove extra \n from errx and die calls
This is i3 v4.16.1. This version is considered stable. All users of i3 are
strongly encouraged to upgrade.
This is a bugfix release for v4.16.
Bugfixes
• Truncate wm_name utf8 strings to first zero byte
(fixes window title corruption)
• Apply title_align to non-leaf containers
Additionally, marks will now display for non-leaf containers.
• attach_to_workspace: set new parent before tree_render
(fixes a heap-use-after-free)
• Use ipc queue for all messages
(fixes an i3bar crash)
• Fix crash with popups when fullscreen is non-leaf
• Fix: render_con shows floating containers on wrong workspace
┌────────────────────────────┐
│ Changes in i3 v4.15 │
└────────────────────────────┘
• build: AnyEvent::I3 moved to the i3 repository, so that its main consumer,
the i3 testsuite, can use new features immediately (such as the tick event,
in this case).
• docs/hacking-howto: promote “using git / sending patches” and “how to
build?” sections
• docs/i3bar-protocol: document that pango markup only works with pango fonts
• docs/ipc: document focus, nodes, floating_nodes
• docs/ipc: urgent: complete the list of container types
• docs/ipc: document how to detect i3’s byte order in memory-safe languages
• docs/ipc: document the GET_CONFIG request
• docs/userguide: fix formatting issue
• docs/userguide: explain why Mod4 is usually preferred as a modifier
• docs/userguide: use more idiomatic english (full-size, so-called)
• docs/userguide: switch from removed goto command to focus
• docs/userguide: mention <criteria> in focus
• docs/userguide: remove outdated 2013 last-modified date
• dump-asy: add prerequisite checks
• dump-asy: fix warnings about empty container names
• i3-dump-log: enable shmlog on demand
• i3-sensible-terminal: add “kitty”, “guake”, “tilda”
• i3-sensible-editor: add “gvim”
• i3bar: add --release flag for bindsym in bar blocks
• i3bar: add relative coordinates in JSON for click events
• ipc: rename COMMAND to RUN_COMMAND for consistency
• ipc: implement tick event for less flaky tests
• ipc: add error reply to “focus <window_mode>”
• ipc: send success response for nop
• default config: add $mod+r to toggle resize mode
• default config: use variables for workspace names to avoid repetition
• introduce “assign <criteria> [→] [workspace] [number] <workspace>”
• introduce “assign <criteria> [→] output left|right|up|down|primary|<output>”
• introduce a “focus_wrapping” option (subsumes “force_focus_wrapping”)
• introduce percentage point resizing for floating containers:
“resize set <width> [px | ppt] <height> [px | ppt]”
• introduce “resize set <width> ppt <height> ppt” for tiling windows
• rename “new_window” and “new_float” to “default_border” and
“default_floating_border” (the old names keep working)
• output names (e.g. “DP2”) can now be used as synonyms for monitor names
(e.g. “Dell UP2414Q”).
• the “swap” command now works with fullscreen windows
• raise floating windows to top when they are focused programmatically
• _NET_ACTIVE_WINDOW: invalidate focus to force SetInputFocus call
• make focus handling consistent when changing focus between outputs
• round non-integer Xft.dpi values
• tiling resize: remove minimum size
┌────────────────────────────┐
│ Bugfixes │
└────────────────────────────┘
• i3bar: fix various memory leaks
• i3bar: fix crash when no status_command is provided
• fix uninitialized variables in init_dpi_end, tree_restore
• fix incorrectly set up signal handling
• fix “swap” debug log message
• fix crash when specifying invalid con_id for “swap”
• fix crash upon restart with window marks
• fix crash when config file does not end in a newline
• fix crash in append_layout
• fix crash in layout toggle command
• fix crash when switching monitors
• fix use-after-free in randr_init error path
• fix move accidentally moving windows across outputs
• fix crash when floating window is tiled while being resized
• fix out-of-bounds memory read
• fix memory leak when config conversion fails
• fix layout toggle split, which didn’t work until enabling tabbed/stack mode
once
• move XCB event handling into xcb_prepare_cb
• avert endless loop on unexpected EOF in ipc messages
• perform proper cleanup for signals with Term action
• don’t match containers in the scratchpad with criteria
• fix “workspace show” related issues
• fix config file conversion with long variable names
• fix config file conversion memory initialization
• prevent access of freed workspace in _workspace_show
• disable fullscreen when required when programmatically focusing windows
• free last_motion_notify
• don’t raise floating windows when focused because of focus_follows_mouse
• correctly set EWMH atoms when closing a workspace
• don’t raise floating windows when workspace is shown
• keep focus order when encapsulating workspaces
• validate layout files before loading
┌────────────────────────────┐
│ Changes in i3 v4.14.1 │
└────────────────────────────┘
• docs/hacking-howto: promote contributing-related sections
• docs/ipc: tree reply: document focus, nodes and floating_nodes
• docs/ipc: urgent: complete the list of container types
• docs/ipc: document how to detect i3’s byte order in memory-safe languages
• docs/ipc: document the (existing since v4.14) GET_CONFIG request
• docs/userguide: document that i3 can accept RandR output names
• include AnyEvent-I3 in dist tarballs
• append_layout: validate JSON before loading
• move: fix erratic behavior with single container child jumping outputs
• ipc: rename COMMAND to RUN_COMMAND for consistency
• replace http:// with https:// where applicable
┌────────────────────────────┐
│ Bugfixes │
└────────────────────────────┘
• fix various memory errors
• fix output and tray_output related issues with RandR 1.5
• avoid use of uninitialized in init_dpi_end
• properly initialize sigaction struct
• swap: invert condition to log debug message in correct situation
• swap: fix crash on invalid container id
• fix a crash when restarting with marks
• i3bar: fix a memory leak
• test workers: re-seed random number generator after fork
• tests: run environment-modifying 533-randr15.t at the very end
• tests: unflake t/257-keypress-group1-fallback.t
• tests: unflake t/263-edge-borders.t
• tests: unflake tests by not starting i3bar
• fix a crash with configfiles which do not end in a newline.
• append_layout: free incomplete containers when JSON parsing fails
• layout toggle: fix crash with invalid parameters
• outputs: avert crash by fixing focus when creating output containers
• correctly raise floating videos to the top when switching between windows
programmatically
• fix crash when a floating window is tiled while being resized via mouse
┌────────────────────────────┐
│ Changes in i3 v4.14 │
└────────────────────────────┘
• build: link libiconv explicitly for systems which need it
• build: move AnyEvent-I3 into the i3 repository
• docs/hacking-howto: add compilation instructions
• docs/ipc: add missing cases to the workspace event
• docs/ipc: document the “primary” field of the OUTPUTS reply
• docs/ipc: replace Go IPC library with a maintained one
• docs/ipc: add link to the ocaml-i3ipc library
• docs/ipc: fix invalid trailing commas in JSON examples
• docs/layout-saving: add section about troubleshooting window titles
• docs/testsuite: update for the move to autotools
• docs/userguide: clarify the move command syntax
• docs/userguide: correct “Esc” to “Escape”
• docs/userguide: clarify focus_follows_mouse behavior
• docs/userguide: expand on combining “workspace number” with a name
• docs/userguide: mention the magic v4 config marker
• man/i3.man: correct configuration lookup order
• i3bar, i3-config-wizard, i3-nagbar: use the Xft.dpi setting (see 4.13 notes)
• i3bar: restart bar status command on reload if it changed
• i3bar: treat left/right scrolling like up/down scrolling
• i3bar: accept “primary” in the “output” configuration directive
• i3-input: do not set input focus, grabbing the keyboard suffices
• i3-msg: return an exit code when missing the -t argument
• i3-sensible-editor: correct “mc-edit” to “mcedit”
• i3-sensible-terminal: add lilyterm, tilix, terminix, konsole
• respect SYSCONFDIR when looking for the default xdg directory
• use RandR 1.5 to query screens, supporting the TILE property commonly used
by multi-stream transport (MST) monitors, such as first-gen 4K monitors, or
current 5K and 8K monitors
• respect minimum size hints for floating windows
• support the _NET_MOVERESIZE_WINDOW client message (for e.g. wmctrl)
• validate binding modes are not defined more than once
• only react to the last ExposeEvent in a series of events
• add the shutdown IPC event (upon “restart” or “exit”)
• treat left/right scrolling like up/down scrolling (on window titles)
• make the “layout toggle” command optionally take a sequence of layouts
• introduce --exclude-titlebar flag for mouse bindings
• introduce the “swap” command
• support the primary output in the “focus” and “move” commands
• compare keybinding modifiers for equality, not subset
• introduce the GET_CONFIG ipc request (i3-msg -t get_config)
• start i3-nagbar when encountering invalid set statements
• focus windows upon ConfigureWindow requests with stack-mode=Above
┌────────────────────────────┐
│ Bugfixes │
└────────────────────────────┘
• i3bar: correct the color codes used for statusline errors
• i3bar: avoid freeze after VisibilityNotify
• i3-dmenu-desktop: fix quoted command names
• i3-dmenu-desktop: avoid adding items multiple times
• fix various X11 resource leaks, memory leaks and memory errors
• fix IPC success reply for the workspace command
• report errors during logfile creation
• fix the signal handler being blank
• display marks and the title even if the title is empty (for title_format)
• fix changing workspace layout from stacked/tabbed for empty workspaces
• add numlock fallback to “bindcode” where necessary
• fix a crash on restart when using marks
• fix renaming workspaces when the new name starts with “to”
• respect dont_warp flag when moving containers
The actual fix as been done by "pkglint -F */*/buildlink3.mk", and was
reviewed manually.
There are some .include lines that still are indented with zero spaces
although the surrounding .if is indented. This is existing practice.
Pkgsrc changes:
Added comments and RCS tags to patches.
Make perl a runtime dependency since installed
runtime scripts uses it.
Changes and bugfixes from release notes:
Changes in 4.13:
* build: wire up version handling for non-release tarballs (as opposed to git
checkouts)
* build: switch to the GNU build system
* i3bar: disable pango markup for plain-text input
* man/i3-msg: point out default ipc message type
* config: introduce support for specifying variables from X resources
* config: ensure variables match on longest-length, eliminating problems
where one variable was a prefix of another
* config: do not count '\' in comment lines as line continuation
* ipc: introduce a new GET_BINDING_MODES command
* ipc: implement new window::mark event
* ipc: add ?output? to IPC events referencing a container
* make fullscreen windows open on the output which is indicated by their
geometry (fixes LibreOffice Impress multi-monitor presentations)
* focus newly managed windows only if they don?t use the globally active
input mode (fixes issues with RubyMine)
* remove title indentation in nested containers (rationale was unclear,
nobody spoke up when we asked about the feature on i3-discuss)
* use the last known timestamp when calling xcb_set_input_focus (might fix
rare race conditions in focus handling)
* introduce the "smart" option for hide_edge_borders, which will hide borders
when there is precisely one window on the workspace
* handle _MOTIF_WM_HINTS changes (_MOTIF_WM_HINTS were previously only
considered when managing a new window)
* don?t change border style if BS_NORMAL is requested in _MOTIF_WM_HINTS
* only add numlock fallback for keybindings where necessary (allows users to
correctly bind keys on the numpad)
* do not match docks in config and command criteria
* get DPI from the Xft.dpi resource instead of directly looking at the screen
resolution/size
* handle _NET_ACTIVE_WINDOW for scratchpad windows (for pagers)
* set _NET_WM_DESKTOP to sticky for scratchpad windows
* add new criteria "tiling" and "floating"
* implement special output name "current" for commands
* handle ResizeRequests for tray clients (fixes VLC tray icon)
Bugfixes in 4.13:
* i3bar: fix crash when the I3SOCK environment variable is present
* i3-dmenu-desktop: do not die on failed open
* i3-input: properly position in non-standard cases (fixes an issue where
i3-input would launch off-screen)
* i3-save-tree: rename "mark" to "marks" to reflect our recent change to
allow multiple marks
* mouse bindings: only grab the mouse buttons that need to be grabbed
* no_focus: correctly count the number of windows (makes no_focus work with
tabbed/stacked workspace layouts).
* properly close disabled outputs restored during a restart (this fixes state
handling when RandR changes happen during i3 restarts)
* don't trigger bindings on window border clicks unless --border was
specified for the binding
* traverse numbered workspaces in correct order
fix transition from named to numbered workspaces in "workspace next|prev"
* avoid setting urgency hint on content containers and above (fixes crashes)
* don't trigger unrelated key bindings for --release bindings
* fix colormap handling for containers (fixes taking screenshots using xwd)
* check output crossing on ENTER_NOTIFY to dockarea (fixes pointer jumping)
* fix a use-after-free bug (fixes "floating enable" on single split windows)
Changes from upstream since 4.11
• use https instead of git/http, update contact information, add GPG key
• docs/hacking-howto: fix old cfgparse.y reference to config_parser.c
• docs/ipc: added link to i3ipcpp (C++ library)
• docs/userguide: clarify no_focus documentation
• docs/userguide: add documentation for binding modes
• docs/userguide: fix rendering of __focused__
• docs/userguide: improve placement of explicit IDs for headings
• docs/userguide: make rendering of key bindings more consistent
• docs/userguide: clarify quoting of “exec” commands
• man/i3-nagbar: fix example invocation
• man/i3: add “floating window” to terminology
• i3-sensible-*: quote variables correctly
• i3-sensible-editor: add neovim
• i3-sensible-terminal: add termit, st
• i3bar: use cairo for all drawing operations
• i3bar: support per-statusblock border and background colors
• i3bar: support different bar background colors depending on whether the bar
is on the focused output or not
• i3bar: multiple tray_output directives on the same bar are now supported
• i3bar: support disabling the modifier by specifying “modifier none”
• use cairo for all drawing operations
• fix a number of memory leaks, thanks to AddressSanitizer
• no_focus is now suppressed for the first window of a workspace
• “workspace next/prev” now looks for numbered workspaces after reaching the
last workspace (it used to incorrectly only look at named workspaces)
• multiple marks can now be set on a single window (but a mark can still only
be present on one window at a time)
• the “unmark” command now supports criteria
• the “con_id” criterion now supports the special value __focused__
• the “workspace” command now supports the --no-auto-back-and-forth parameter
• the “move window to workspace” command now supports the
--no-auto-back-and-forth parameter
• the “resize grow|shrink width|height” command now works for a nested split
in the same direction
• support _NET_WM_USER_TIME’s special 0 value, indicating that a window
should not be focused
• use 32-bit visual by default if available. This reduces graphical glitches
when using transparency (which is still not officially supported)
• the “move position center” command now supports criteria
• specifying invalid match criteria now results in an error instead of
blindly applying the operation to the currently focused window
• allow mouse bindings to run on the root window
• support matching _NET_WM_WINDOW_TYPE_NOTIFICATION in criteria
• all criteria are now matched, even when con_id or con_mark are given (used
to be a special case)
• allow the “id” criterion to be specified in any base recognized by
strtol(), not only base 10
• non-true color displays are now supported again (e.g. the Raspberry Pi)
• the “split” command now has a “toggle” option
• the additional color class “decoration_border” was added
• title_format is now stored on containers instead of windows, allowing the
use of title_format on split containers
• On OpenBSD, i3 now uses pledge(2)
• support _NET_WM_DESKTOP (for pager applications like gnome-panel)
• floating workspaces are no longer available (they were not supported for a
while now)
• floating windows now carry the I3_FLOATING_WINDOW atom so that tools like
compositors can be configured to match on floating windows
Bugfixes from upstream since 4.11
• i3bar: display short text only on the monitor(s) on which it is necessary
• i3bar: explicitly set cursor using libxcb-cursor if available
• i3bar: fix XEMBED messages
• i3-nagbar: explicitly set cursor using libxcb-cursor if available
• duplicated keybindings are now also detected when one uses bindcode but the
other(s) use(s) bindsym
• keymap fallback for servers without XKB (e.g. TightVNC) has been added
• using pango markup in mode names is now optional, fixing a regression in i3
v4.11 where modes which contained characters such as “<” would break.
• moving windows to a workspace by specifying a mark now works
• the root output is now used when any RandR request fails (for x2go)
• assignments are now marked as run before executing them, preventing endless
loops/crashes when assignments cause another assignment evaluation
• splitting/floating a dock container no longer crashes i3
• correctly compare modifier mask when identifying keybindings (fixes
bindings which use --release)
• no longer fail config validation when there is no newline at the end of
the config file
• scrollwheel buttons are now only grabbed when necessary, allowing the use
of “bindsym button*” or scrolling in windows without focusing them (in case
no “bindsym button*” is present)
• parse con_id in base 16 (affected FreeBSD only)
• fix crash when opening a large number of windows
• reject empty swallow definitions to avoid crashes
• don’t remove SubstructureRedirect event mask temporarily (fixes i3bar
stopping after system suspend)
• move urgent flag before killing the parent to avoid a crash
• correctly validate “kill” command to avoid crashing when “kill” is invoked
on workspace containers
• actually accept the documented “workspace” token as an alternative to “→”
in assign statements
• remove _NET_WM_STATE on withdrawn windows to comply with the spec
• the “border” command now uses logical pixels (relevant for hi-dpi displays)
• “tray_output primary” does not properly fall back and hence was removed
from the default config again
• correctly determine focused workspace when moving workspace to output
• revert to default binding mode before reloading the config file
• correctly interpret _MOTIF_WM_HINTS (endianness-dependent)
Changes to i3 mentioned in the release notes:
Keyboard binding handling has been made more correct, for details see:
bf3cd41b5d
Changes:
* docs/debugging: provide instructions on how to debug i3bar
* docs/debugging: added a note about sensitive data
* docs/userguide: add a note to both "exec"s about semicolon and comma
* docs/userguide: quoted strings need to be used, escaping isn't possible
* docs/userguide: make syntax of syntax descriptions consistent
* docs/userguide: recommend "exec exec" for correct signal handling
* docs/userguide: explain i3-config-wizard's behavior
* i3-nagbar: open on the primary screen
* i3-config-wizard: respect XDG config directories
* i3-input: position i3-input at window with input focus
* i3bar: use a reasonable default sep_block_width if a separator_symbol is given
* i3bar: add binding mode indicator
* i3bar: add bindsym command (deprecates wheel_{up,down}_cmd)
* i3bar: make tray padding configurable
* makefiles: respect EXEC_PREFIX and PKG_CONFIG
* added a --toggle switch to mark: "mark [--toggle] <mark>"
* added "focus_on_window_activation" directive
* added "no_focus" directive
* added "move [container|window] [to] mark <str>" command
* added "move [window|container] [to] position mouse|cursor|pointer" command
* added "title_format" command
* added "resize set [width] [height]" command
* added "sticky" command (for floating containers)
* added "workspace" criterion
* added "window_type" criterion
* make center coordinates relative to current workspace
* draw marks in window decoration (configure with show_marks)
* only mark a window if only one window is matched
* make floating window mouse handling consistent with tiled windows
* add a --border flag to enable mouse binds to trigger on border click
* set the _NET_WM_STATE_HIDDEN atom on windows that are currently not visible
due to being in the non-focused tab of a stacked or tabbed container
* ignore InputHint when not in WM_HINTS
* display which config is used in i3 --moreversion
* support config file line continuation
* use WM_SIZE_HINTS when present to set the geometry of floating windows
* add "tray_output primary" to the default config
* use libxkbcommon for translating keysyms, support all XKB groups
* support special value "__focused__" in criteria
* support _NET_WM_VISIBLE_NAME
* make sure borders are never counted as adjacent to the edge for floating
containers
* support moving dock clients to another output
* let "focus" report success depending on whether a window was matched
* handle _NET_WM_STATE_STICKY (for floating containers)
* make "debuglog on" command persist over restarts
* randr: use root window in case of no randr outputs
* set proper WM_CLASS on frame windows
Bugfixes:
* i3bar: only detect clicks within the statusline width
* i3bar: fix flickering shortened status bar on other output(s)
* i3bar: send custom-defined command upon click on the non-statusline part of
i3bar even if workspace_buttons is set to "no".
* i3-config-wizard: Make window size and click coordinates dependent on font
* i3-save-tree: retain "rect" for floating cons
* move urgency hint when moving container
* fix percents when attaching a window to a ws creates a new split con
* cope with non-null-terminated x class properties
* get workspace name when renaming current workspace
* allow single-child non-default layout cons to be moved between outputs
* allow --whole-window right after 'bindsym' within binding modes
* remove windows from the save set when unmapping (fixes problems with e.g.
owncloud when restarting i3)
* serialize con_id with %p in run_binding()
* initialize workspace rect to the output's upon creation
* mkdirp: do not throw an error if directory exists
* grab all buttons when managing a window to also allow 'bindsym
--whole-window button4 ...' to work correctly
* properly clear the urgency hint when set by i3
* layout restore: load floating containers correctly
* layout restore: remove remaining criteria when swallowing window
* layout restore: When appending a layout containing a marked container, make
sure that any other containers with the same mark are unmarked during
insertion of the new container.
* use the EWMH support window rather than the root window as an input
focus fallback
* use the focused container to determine the target window_mode when using
floating mode_toggle
Problems found with existing distfiles:
distfiles/fvwm-1.24r.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Release notes:
Bugfixes:
* serialize con_id with %p in run_binding() (For FreeBSD)
* ignore InputHint when not in WM_HINTS (fixes e.g. mupdf focus)
* disable physically disconnect RandR outputs
* initialize workspace rect to the output's upon creation
* userguide: quoted strings need to be used, escaping isn’t possible
* mkdirp: do not throw an error if directory exists (fixes layout loss for
in-place restarts)
* i3bar: fix freeing static strings
Changes mentioned in the release notes:
* Cope with non-null-terminated x class properties.
* Get workspace name when renaming current workspace (fixes crash).
* Use a reasonable default sep_block_width if a separator_symbol is given.
* Remove windows from the save set when unmapping.
Remove do-install and use post-install for the files not
installed by the install from the package.
Changelog:
Changes in i3 v4.10.1
* i3bar: cut long statuslines from the left
* i3bar: add support for the short_text property
* i3-sensible-terminal: launch i3-nagbar when no terminal is found
* i3-config-wizard: switch modifier on key up/down
* docs/layout-saving: added a troubleshooting section
* docs: degender all the terms
* Revert "Workspace command number selection"
* don't parse blocks as markup by default
* Allow escaping backslashes in commands.
* switch default font from "DejaVu Sans Mono 8" to "monospace 8", which is
typically a synonym, except for users who prefer a different font.
* When renaming a workspace, look for assignments and move the renamed
workspace to the appropriate output.
* i3-save-tree: make --workspace optional by defaulting to the focused
workspace
* Allow nop command without argument
Bugfixes
* i3bar: buffer the statusline to avoid flickering
* i3bar: fix click events for workspace buttons with long statusline
* i3bar: set correct initial position when reconfiguring
* i3bar: reconfigure strut partial on reload
* i3-nagbar: fix sizes/positioning on hi-dpi displays
* i3-config-wizard: fix sizes/positioning on hi-dpi displays
* i3-input: fix sizes/positioning on hi-dpi displays
* Fix scrolling in window decoration with hidden cursor.
* workspace rename focus mismatch
* Don't overwrite border width when already set (placeholders).
* fix a segfault during config file validation
* Restore placeholder windows after restarting.
* Don't focus placeholder windows.
Changes in v4.9.1
Bugfixes
* i3bar: fix incorrect y-offset for text
* fix key bindings on big-endian platforms
* fix key bindings using Mode_switch
* fix keyboard layout change detection
* revert "Handle WM_CHANGE_STATE requests for iconic state" (fixes problems
with application windows disappearing, like SDL-based games when switching
workspaces)
* insert id-based match at HEAD, not TAIL (fixes window swallowing not
working when the criteria match the placeholder window)
* improve error messages on failing commands
* replace ~ in filepath when calling append_layout
* properly error out when the layout file cannot be read
Changes in v4.9
* docs/ipc: use an actual event type
* docs/debugging: use logs.i3wm.org
* docs/testsuite: add hint to use xvfb-run
* testcases: use Xephyr instead of XDummy
* i3-sensible-*: use command -v (built-in) instead of which(1)
* i3.xsession.desktop: set DesktopNames (which gdm uses)
* i3-save-tree: interpret commandline parameters as utf-8
* i3-save-tree: add 'mark' as allowed key to i3-save-tree output
* i3bar-protocol: ensure align = left is the default
* i3bar: implement custom mouse wheel commands
* i3bar: improve error message when a full_text property is missing
* i3bar: respect the urgency flag on status blocks
* i3bar: inset the urgent background of a status block for consistency with
workspace buttons
* i3bar: suspend the child when bars are fully obscured
* i3bar: use Pango markup
* ipc: implement the window::close event
* ipc: implement the window::move event
* ipc: implement the window::floating event
* ipc: implement the window::urgent event
* ipc: set ws reply "num" member to -1 when named
* ipc: add deco_rect property to con in ipc response
* ipc: include workspace con in workspace event
* ewmh: implement property _NET_NUMBER_OF_DESKTOPS
* ewmh: implement property _NET_DESKTOP_VIEWPORT
* ewmh: implement property _NET_DESKTOP_NAMES
* ewmh: handle _NET_CURRENT_DESKTOP requests
* ewmh: handle _NET_CLOSE_WINDOW requests
* ewmh: handle _NET_WM_MOVERESIZE requests
* implement mouse bindings (e.g. bindsym button3 kill)
* add mouse binding --whole-window flag
* add mouse binding --release flag
* switch to xcb-xkb and libxkbcommon, removing our last direct Xlib dep
* make "move [direction]" work with criteria
* make "move <window|container> to <absolute> position" work with criteria
* "workspace <n>" and "move to workspace <n>" now look for a workspace
starting with number <n> (unless there is a workspace exactly matching that
number). I.e., "workspace 4" will go to a workspace called ": www" unless
you have a workspace "4"
* "focus <direction>" now focuses floating containers when there are no
tiling containers on the destination output
* take the motif border into account when calculating floating window
geometry
* revert "Disable pointer warps when focus_follows_mouse is disabled" as it
was unexpected by a number of users. Sorry for the back-and-forth
* handle WM_CLASS changes
* raise floating windows on "focus <direction>"
* align lower line of bar decoration to border width
* parse tray_output as a word, not string
* allow to validate the config file without X
* do not resend focus on click, fixes compatibility problems with some wine
or mono apps (e.g. Office 2010)
* don't draw borders wider than actual width
* prevent workspace change during global fullscreen
* extend the fullscreen command (fullscreen <enable|toggle|disable> [global])
* fix start_application() doc about which shell is used
Bugfixes
* i3-dmenu-desktop: quote path
* i3bar: fix a double free when changing color configuration
* i3bar: render bars after the first chunk of JSON
* i3bar: add a sync call to confirm reparents before exiting (fixes tray
restart issues)
* i3bar: correctly calculate clicks on i3bar status blocks
* i3bar: make click events on status blocks work with 'workspace_buttons no'
* retina support: convert logical to physical pixels for default_border_width
* retina support: treat everything up to 120 dpi as 96 dpi
* don't set input focus if not accepted (fixes problems with xfce4-notifyd)
* don't focus unmapped container on manage
* create the directory for storing the restart state
* avoid changing border width when changing containers from tiling to
floating
* layout saving: properly restore workspace containers
* rerender the decoration when the container requires a pixmap and doesn't
have one
* don't set focus in con_set_layout() on invisible workspaces
* properly handle windows unsetting WM_TRANSIENT_FOR
* use the command parser to properly extract workspace names
* copy binding before run (fixes reloads)
* revert "Bugfix: Set input focus with last timestamp"
* render floating windows during global fullscreen
* actually parse client.placeholder
Important changes since 4.7:
- layout saving / restoring
- proper handling of DPI
- improve compatibility with other softwares (java-based, or external
pagers)
- fix several memory leaks
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
Changes since 4.6
v 4.7.2
• install i3-with-shmlog.xsession.desktop to the correct location
• OpenBSD currently lacks posix_fallocate()
v 4.7.1
• docs/debugging: explain how to enable logging on the fly
• docs/debugging: small cleanups (versions, bzip2)
• add i3-with-shmlog.xsession.desktop
• only LOG() the DPI when it changes, DLOG() it otherwise
• make “move <direction>” properly send workspace focus event
• i3bar: set mapped flag on trayclient creation
• i3bar: don’t show EOF status line error in favor of exit code
v 4.7.0
• docs/userguide: clarify variable parsing
• docs/userguide: clarify urgent_workspace
• docs/userguide: add proper quoting for rename sample command
• docs/userguide: clarify multiple criteria
• docs/userguide: userguide: explain the difference between comma and semicolon for command chaining
• docs/hacking-howto: update to reflect parser changes
• man/i3-dump-log: document -f
• switch from libXcursor to xcb-util-cursor
• Respect workspace numbers when looking for a free workspace name
• Revert "raise fullscreen windows on top of all other X11 windows"
• i3bar: Create pixmaps using the real bar height, rather than screen height
• Add scratchpad bindings to the default config
• Close all children when closing a workspace
• i3bar: Add new bar.binding_mode_indicator configuration
• Improve error message when $XDG_RUNTIME_DIR is not writable
• libi3/font: Draw the text at the expected place
• libi3/font: Set DPI for the pango context
• Add ability to escape out of a mouse-resize operation
• Do not resize/reposition floating containers when moving them to scratchpad
• i3-nagbar: Set button inner-width to the width of the label
• Assigned windows open urgent when not visible
• i3bar: Only configure tray on own outputs
• Command 'move <direction>' moves across outputs
• i3bar: Handle DestroyNotify events
• i3bar: Realign tray clients on map/unmap notify
• i3bar: Group child processes for signalling
• i3bar: Print error message when status_command fails
• Remove references to PATH_MAX macro for GNU/Hurd
• update root geometry on output changes for “fullscreen global”
• don’t flatten tabbed/stacked containers
• Fix handling of new windows with WM_STATE_FULLSCREEN
• correctly recognize assigned windows as urgent
• Fix keyboard and mouse resize in nested containers
• Reply to _NET_REQUEST_FRAME_EXTENTS correctly
• Fix command parser: resizing tiling windows
• Fix output retrieval for floating cons
• Use _PATH_BSHELL to ensure using a bourne shell
• Instead of crashing, return DRAG_ABORT on UnmapNotify from drag_pointer
• Remove-child callback skips output content cons
• ignore _NET_ACTIVE_WINDOW for scratchpad windows
Also, install a few more scripts and their manual pages, and put the correct
Perl interpreter in all Perl scripts.
Changes since version 4.4:
• docs/hacking-howto: refer people to cr.i3wm.org
• docs/ipc: Adds Go IPC lib to the docs.
• docs/userguide: remove obsolete sentence about client.background
• docs/userguide: be explicit about assignment processing order
• docs/userguide: be more clear about the resize command arguments
• docs/userguide: fix typo: s/11x/11px/
• i3-dmenu-desktop: don’t add “geany” if “Geany” is already present
• i3-dmenu-desktop: strip newlines from dmenu ≥ 4.4
• i3-dmenu-desktop: skip files with broken utf8 but warn about it
• i3-dmenu-desktop: skip broken files (no/empty Exec=) but warn about them
• i3-dmenu-desktop: List filenames of .desktop files
• i3-dmenu-desktop: remove %i from commandline
• i3-nagbar: Work around terminals not supporting -e with quoted arguments
• i3-nagbar: use the same font as configured for i3
• i3bar: set _NET_SYSTEM_TRAY_COLORS for symbolic icons (gtk3+)
• i3bar: don’t use X11 borders to avoid overlapping in hide mode
• i3bar: separator color via config; separator width and on/off via ipc
• i3bar: Allow min_width of a block in i3bar to be a string
• i3-msg: parse command replies and display errors nicely if there were
errors
• Draw 1px tab separators left/right instead of 2px on the right only
• Render tree before destroying X11 containers upon unmap
• scratchpad show: move visible scratchpad window from another workspace to
focused workspace instead of doing nothing
• ignore MotionNotify events generated while warping the pointer
• Allow X11 servers which do not support the XKB extension.
• remove the urgency indicator when a window is closed
• wrap when moving containers to outputs with direction
• scratchpad_show: focus unfocused scratchpad window
• Split workspace instead of changing orientation
• scratchpad: always auto center on 'scratchpad show' if window hasn't been
repositioned by the user
• Add a new IPC event for changes on windows.
• config: accept “smart” as popup_during_fullscreen parameter
• Add support for _NET_WM_STATE_DEMANDS_ATTENTION.
• Obey WM_SIZE_HINTS's resize increments in floating mode
• Do not move focus if a container is moved across outputs
• docs/userguide: mention forgotten layout splitv/splith
• docs/multi-monitor: nVidia ≥ 302.17 works just fine
• docs/wsbar: update (we have i3bar now, i3-wsbar is just an example)
• docs/testsuite: Document fixes and workarounds for test failures
• man/i3-msg.man: updated man page to include all options
• lib/i3test: clarify how to identify open_window() windows in i3 commands
• Use a saner sanity check for floating_reposition
• tabbed: floor(), put extra pixels into the last tab
• raise fullscreen windows on top of all other X11 windows
• Draw indicator border only for split layouts
• re-shuffle struct members to save a bit of memory
• Add 'NoDisplay=true' to i3.application.desktop
• Store aspect_ratio instead of weird proportional_{width,height}
• Implement shmlog command
• Implement debuglog command
• Implement unmark command
• actively delete _NET_WORKAREA on startup
• Handle the _NET_REQUEST_FRAME_EXTENTS ClientMessage (java compat)
• i3bar: add click events
• i3bar: fix -b parameter, fix usage description
• i3bar: restore compatibility with libyajl version 1
• i3bar: unhide hidden i3bar when mode is active
• i3bar: fix font display height in i3bar
• i3bar: introduced i3 command for changing the hidden state and mode
• i3bar: fix wrong placement of i3bar when connecting/disconnecting outputs
• i3bar: draw workspace buttons at x=0 instead of x=1
• i3-nagbar: take our terminal execution kludge to the next level
• i3-nagbar: Bugfix: -m requires an argument (crashes if none specified)
• i3-dmenu-desktop: run commands when they don’t match a .desktop file
(e.g. enter “i3 layout stacking”)
• i3-dmenu-desktop: honor Path= key
• contrib/dump-asy.pl: Fix $ and & in window titles
• contrib/dump-asy.pl: Display nicer double-quotes
• contrib/gtk-tree-watch.pl: Remove bogus default socket path
• Ignore ConfigureRequests for scratchpad windows
• Correctly parse `move ... workspace *_on_output`
• i3bar: Set separator color properly when drawing
• Properly parse commands like “move workspace torrent”
• Handle nested transient popups properly
• Fix decoration rect size for windows without border
• parse outputs as "word", not "string", to ignore trailing whitespace
• fix crash when disabling output without any windows
• scratchpad: fix crash when moving last window of an invisible workspace
• fix coordinates of scratchpad windows on output changes
• call scratchpad_show() when focusing scratchpad windows via criteria
• fix continuous resize bug in floating mode, e.g. with xbmc
• fix “overlapping” --release key bindings
• fix IPC messages writes with low buffer sizes
• unregister as window manager before restarting (fixes a race condition)
• Fix bind[code|sym] --release
• remove superfluous #include <xcb/xcb_atom.h>
• Makefile: Repect AR environment variable
• i3-input: restore input focus on exit()
• Also draw right tab border for split containers
• Fix scrolling on a tabbed titlebar which contains split cons
• Correctly close floating windows
• handle MapRequests sent between i3 registering as a wm and handling events
• i3bar: fake DestroyNotify and send MANAGER ClientMessages to fix tray restarts
• ipc: use correct workspace in workspace change event
• fix floating window size with hide_edge_borders
• Fix parsing of comments in the config file
• Fix error messages for the debug log
• shm_unlink the correct file when handling errors
• Fix shm logging on FreeBSD
• Fix restarting with 32 bit depth windows
• Fix scratchpad_show on non-scratchpad windows
• i3bar: mark IPC fd CLOEXEC
• fix crash when not having tray_output configured
• make sure that resize will take place even if pixel is smaller
than size increments.
• render_con: fix height rounding in aspect ratio computation
• fix problem when moving fullscreen window to scratchpad
• Unmap windows before reparenting them to the root window
(fixes Mathematica)
• update parent urgency hint if a child is removed.
• fix bus error on OpenBSD/sparc64
• fix focus handling in 'floating disable' on non-visible windows
• ignore spaces in front of default workspace name
• call i3-nagbar correctly for configfiles without the font directive
• resize and center a scratchpad even when a criteria is used.
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
This package contains the i3 window manager, a small tiling window
manager aimed at providing helpful modern features like Xinerama
multi-screen support while still being completely keyboard
controlled. It is mainly aimed at engineers and people who
love to get their work done without switching between keyboard and
mouse.