./wm/i3, Improved dynamic tiling window manager

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 4.17.1, Package name: i3-4.17.1, Maintainer: pkgsrc-users

Key features of i3 are correct implementation of Xinerama (workspaces are
assigned to virtual screens, i3 does the right thing when attaching new
monitors), XrandR support (not done yet), horizontal and vertical columns
(think of a table) in tiling. Also, special focus is on writing clean,
readable and well documented code. i3 uses xcb for asynchronous
communication with X11, and has several measures to be very fast.

Please be aware i3 is primarily targeted at advanced users and developers.

Required to run:
[graphics/cairo] [lang/perl5] [devel/pango] [devel/pcre] [x11/xcursor] [x11/startup-notification] [x11/xcb-util] [x11/libxcb] [devel/libev] [devel/yajl] [x11/xcb-util-keysyms] [x11/xcb-util-wm] [x11/xcb-util-cursor] [x11/libxkbcommon] [x11/xcb-util-xrm]

Required to build:
[textproc/xmlto] [textproc/asciidoc] [pkgtools/x11-links] [x11/xcb-proto] [x11/fixesproto4] [pkgtools/cwrappers] [x11/xorgproto]

Master sites:

SHA1: 1834ce349a2aea2fbb0d44d9ed820fa9e1a394ab
RMD160: 2221eb99eac055570d38293fddc0368a8d46a94c
Filesize: 1189.861 KB

Version history: (Expand)

CVS history: (Expand)

   2019-11-04 22:50:16 by Roland Illig | Files touched by this commit (13)
Log message:
wm: align variable assignments

pkglint -Wall -F --only aligned --only indent -r

No manual corrections.
   2019-10-06 14:12:06 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
i3: Update to 4.17.1

 ┌───────────────────────── \ 
 │ 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
   2019-08-16 12:59:55 by Thomas Klausner | Files touched by this commit (4) | Package updated
Log message:
i3: update to 4.17.

 ┌───────────────────────── \ 
 │ 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
   2019-08-11 15:25:21 by Thomas Klausner | Files touched by this commit (3557) | Package updated
Log message:
Bump PKGREVISIONs for perl 5.30.0
   2019-03-14 12:07:18 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
i3: update to 4.16.1.

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.


  • 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
   2018-11-14 23:22:54 by Klaus Klein | Files touched by this commit (1332) | Package updated
Log message:
Revbump after cairo 1.16.0 update.
   2018-11-12 04:53:16 by Ryo ONODERA | Files touched by this commit (1532)
Log message:
Recursive revbump from hardbuzz-2.1.1
   2018-10-19 17:21:54 by Jonathan Perkin | Files touched by this commit (3) | Package updated
Log message:
i3: Update to 4.15 and fix build on SunOS.

 ┌───────────────────────── \ 
 │ 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] \ 
  • introduce “assign <criteria> [→] 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 \ 
  • 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
  • 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
  • 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