./wm/i3, Improved dynamic tiling window manager

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

Branch: CURRENT, Version: 4.15, Package name: i3-4.15, 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: 906126f61e62c53903a5ad53cb9288c6fc517a4b
RMD160: ef2ca62a8bc1dffb1a191c00a96586557216dbe6
Filesize: 1168.226 KB

Version history: (Expand)

CVS history: (Expand)

   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
   2018-08-22 11:48:07 by Thomas Klausner | Files touched by this commit (3558)
Log message:
Recursive bump for perl5-5.28.0
   2018-04-16 16:35:28 by Thomas Klausner | Files touched by this commit (1284)
Log message:
Recursive bump for new fribidi dependency in pango.
   2018-03-12 12:18:01 by Thomas Klausner | Files touched by this commit (2155)
Log message:
Recursive bumps for fontconfig and libzip dependency changes.
   2018-01-07 14:04:44 by Roland Illig | Files touched by this commit (583)
Log message:
Fix indentation in buildlink3.mk files.

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.
   2017-08-19 12:57:55 by Niclas Rosenvik | Files touched by this commit (1)
Log message:
Add xmlto build dependency to i3 since it is used to build the docs.
While here sort the buildlink3 entries.
   2017-08-16 22:21:18 by Thomas Klausner | Files touched by this commit (180)
Log message:
Follow some http redirects.
   2017-08-09 13:13:30 by Niclas Rosenvik | Files touched by this commit (7) | Package updated
Log message:
Update i3 to version 4.13.

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
* 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 \ 
  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
* 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 \