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:
6.2
---
- Do not allow using color fonts (workaround to avoid possible crashes)
- Set class name on status bar
- Misc bug fixes and improvements
While here, add a LICENSE definition, and fix compliation on some Linux
distributions.
Change log:
Release blackbox-0.74 released 2018-10-31
-----------------------------------------
Brian Bidulock <bidulock@openss7.org> (9):
update po files
add a release file
remove bashisms from gennews.sh
make autogen.sh handle gnits and remove bashisms
5-part AC_INIT and prefer asciidoc to asciidoctor
generate and distribute release file
add release files to .gitignore
update po files
update release files
Brian Bidulock <bidulock@openss7.com> (1):
Merge pull request #19 from vl-80/fullscreen_fix
VL-80 <vl-80@users.noreply.github.com> (1):
Fix fullscreen mode for non-maximized windows
Release blackbox-0.73 released 2018-05-28
-----------------------------------------
Brian Bidulock <bidulock@openss7.org> (18):
zero errno when not using it
silent rules with /usr prefix
add branch to substitution
add more checks
update make flags
silent now default
tweaks
add some ignores
better build
update install file
initialize XKEYBOARD
update po files
become child subreaper and session leader
Merge branch 'master' of github.com:bbidulock/blackboxwm
prctl is linux-specific
update po files
update release files
update release files
Brian Bidulock <bidulock@openss7.com> (1):
Merge pull request #13 from psolyca/master
Damien Gaignon <damien.gaignon@gmail.com> (1):
Add errno.h as include
### marco 1.21.1
* update translations
* theme: revert theme format version 3.6
* doc: add info for 3.5 and 3.6 theme format versions
* Convert frame region handling to cairo regions
* theme: add invisible_border to metacity theme
* add support for app-menu button in theme
* remove option to attach modal dialogs
* theme: replace mutter/metacity with marco
* theme: Replace char array element comparisons with strncmp
* tabpopup.c: always show 5px outline border
* tabpopup.c: improve
* Don't show the ws switcher if we only have one
* theme: Allow disabling fallback colors in gtk:custom()
* theme: Allow using custom colors from the GTK+ theme
* theme: Add tiled_left/tiled_right frame states
* theme: Add background functions for single buttons
* theme-parser: Use peek_required_version() for validation
* Add frame type for attached modal dialogs
* Optionally attach modal dialogs
* Add meta_window_get_transient_for() method
* Allow a theme to specify ellipsize width for a title
* Add frame_x_center/frame_y_center variables for themes
* metacity-theme-3.xml: Add a flexible version mechanism
* theme-parser: Remove unused define
### marco 1.21.0
* update translations
* Correct resize popup position on HiDPI displays
* Fix frame geometry to avoid stuck resize cursor
* Scale cursor size for HiDPI
* tx: update config with branch specific resoures
* Use frame window to determine scale
1.12.0 2016-08-13
=================
* New Features
- The Tiling functions now use 'calculate-workarea' to not
overlap '_NET_WM_STRUT' windows like panels and others.
[Christopher Bratusek]
- Let 'window-icon-image' use 'NET_WM_ICON' to get 16x16 icon.
Also add a size-parameter in case a different one is desired.
[hans1024]
- Allow passing of extra (custom) arguments to compton. [Joshua
Moller-Mara]
1.11 2014-11-02
===============
* New Features
- Session scripts with xdm (and compatible) integration.
[fuchur] [Christopher Bratusek]
- 'CTWM' like interactive window placement. Previously pressing
any button while interactively placing a window would place
it. 'Sawfish' now mimics 'CTWM's behaviour: pressing button 1
will just place the window, button 2 will allow dragging to
resize the window and place it when the button releases,
button 3 will place the window and attempt to fill it to the
screen bottom. [Maxime Soulé]
- New EdgeActions for when moving windows. [Christopher
Bratusek]
- Separate left/right and top/bottom edges in SawfishConfig,
allowing for individual actions on each edge. [Christopher
Bratusek]
- Add 'send-window-to-next-head' and
'send-window-to-previous-head' functions for moving windows
across heads. [fuchur]
- Add 'toggle-window-fixed-size' for toggling fixed-size on
windows, also used in lock-button 'Button3-Off'. [fuchur]
- Add ability to move tabs around in the titlebar. [fuchur]
- Add 'run-application' by Sergey I. Sharybin, with several
improvements and better integration into Sawfish. Also add
'Run Application' entry at the bottom of the root menu.
[Christopher Bratusek]
- Add 'sawfish.wm.prg.nm-applet', simple auto-starter for the
'Network Manager Applet'. [Christopher Bratusek]
- Add 'sawfish.wm.prg.diodon', simple auto-starter for the
'Diodon Clipboard Manager'. [Christopher Bratusek]
- Add 'sawfish.wm.prg.conky', simple auto-starter for the 'Conky
System Monitor', that allows for custom command line options
to be passed. [Christopher Bratusek]
- Add 'sawfish.wm.prg.idesk', simple auto-starter for the 'Idesk
Desktop Icon Manager'. [Christopher Bratusek]
Address PR pkg/53706: build failure on NetBSD. Build tested on NetBSD
and Linux. (No PKGREVISION since NetBSD was broken, and there are no
anticipated changes to OSes where it was already building.)
Changed distribution (upstream is now on github).
Patches to the build system have been submitted upstream.
As for features since the last version, there have been many changes
that can all be found in CHANGELOG.md in the distribution. The program
continues to work as before, just better.
Release notes for 4.13.1
========================
[Please note that this is a development release.]
Adam Purkrt (3):
Fix to erratic unmaximization by dragging
Keep grip in proportion
Typo in clientMoveTile
Andre Miranda (2):
I18n: Update translation pt_BR (100%).
Fix memory leaks in tabwin
Andrey Alekseenkov (1):
Fix logic error in bottom struts validation
Błażej Szczygieł (1):
compositor: remove old vblank code
David Siroky (1):
Raise window while cycling
Marcel Partap (1):
Do not prevent ALT+Mouse resizing for borderless maximized
windows.
Olivier Fourdan (38):
Post release tag bump.
netwm: avoid spurious warning on restart
placement: Use primary monitor as default
Revert "Add PointerMotionHintMask"
Use ximerama indices for _NET_WM_FULLSCREEN_MONITORS
Fix typo in flag name
Flush display to catch possible errors
compositor: update presentproto requirement
compositor: Remove vblank option
compositor: Remove present env var
screen: Fix broken monitor index
compositor: Disable XPresent on error
compositor: check XPresent before GLX
Fix maximized size increment regression
main: Only allow for the x11 gdk backend
compositor: add command line option for vblank
compositor: fix clipping region with zooming
client: Make sure to redraw when removing maximized
screen: Use computed screen size instead of xlib
main: keep xfwm4_error_quark private
display: Fix warning in trace message
stacking: Raise ancestor on activate if different from window
pixmap: Avoid warning without icon
stacking: Raise on activate w/out click-to-focus
Build: Fix warnings with newer gtk+
trace: rework traces
build: Fix warnings and errors
display: Add convenient display functions
Use convenient display functions
compositor: avoid damage errors
compositor: Do not repaint if region is empty
compositor: Print the GL renderer used
compositor: Skip ARGB10 GLX configs
netwm: Fix adding maximized state
client: Check when GTK_FRAME_EXTENTS has changed
client: Check GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED
compositor: Add support for NET_WM_BYPASS_COMPOSITOR
Release 4.13.1!
P. Pronk (1):
client: Maximize on expected output
Stephane Gourichon (1):
Fix build out of tree
Unit 193 (1):
Fix a spelling mistake.
Viktor Odintsev (32):
Prepare to GTK3
Port most of GUI stuff to GTK3
Implement RangeDebouncer
Implement a new DND separator
Replace inline pixbuf with gresource
Handle gtk_screen_width/height deprecation
Handle gtk_button_set_alignment deprecation
Introduce xfwm-common static library
Load default icon from icon theme
Handle GDK display/screen/monitor deprecations
Remove deprecated gdk_screen_make_display_name
Replace gdk_error_trap_pop with gdk_error_trap_pop_ignored
icons: replace gdk_pixbuf_get_from_drawable with gdk_pixbuf_get_from_surface
Remove usage of deprecated macroses and private fields
icons: use cairo-xlib-xrender to draw window's preview
Remove black_gc and white_gc
Implement GTK2-like style calculator
Implement cairo drawing
tabwin: complete GTK3 port, add CSS support
poswin: remove deprecations
Fix remaining deprecations
compositor: fix possible infinite loop
events: replace client_event with event filter
Fix compilation with --disable-compositor
menu: remove deprecations
client: remove X error traps
tabwin: fix initial sizing
Add xfconf 4.13 support
main: add support for multiple screens with GDK 3
Fix some build warnings
device: Implement XI2 event handling
Replace XEvent with XfwmEvent + add xfwm_device_* grabs usage
This is release 1.4.2 of the IceWM carry-on fork. The primary changes for
this release are a large number of bug fixes, memory leak fixes, code
quality improvements, various minor new features and a few portability
fixes.
Six old themes have been replaced with three new themes (CrystalBlue,
Helix, NanoBlue).
pkgsrc change: build now uses CMake.
version-0.4.7
- Remove some printf used for debugging.
version-0.4.6
- When the size of a window increased, it was not displayed in the pager.
version-0.4.5
- Fix compiler issue
version-0.4.4
- Fix redraw issue when in slit.
version-0.4.3
- Fixed crash when reconfiguring (happens automatically when withdrawn).
version-0.4.2
Integrated patches provided by Joey Morris, fixing the following problems:
- add more flexible border support in bbpager (see README.bbpager)
- fix crash on pixmap release
- fix off-center pager texture off-center
- fix bug in focused desktop texture
- fix bug in configuring mouse button actions
┌────────────────────────────┐
│ 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 old upstream last had a release in November 2005, and the new
upstream in May this year. In recent rebuilds, the old version
has developed "focus issues" when run with "sloppy focus", as is
my preference. The new upstream is a fork of blackbox but where
this among other issues have been fixed.
The patches have also been re-done and partly renamed, and some of
the old patches to build with SunPro have not been carried forward,
as I don't have a suitable system to verify that these are still
required.
Remove a not strictly needed NO_CONFIGURE (the package does not have any
configure script but it is safer to have a `configure' phase in order to avoid
possible problems (e.g. if SUBST is used and configure phases are referenced)).
From Rhialto (maintainer) in PR pkg/53584
4.0.2 (2018-08-25)
Backward-Incompatible Changes And Removed Features
- The UseThreeDIconBorders config var has been removed. It came in
silently and undocumented in 3.4 and has never done anything.
- The attempts to use DNS lookups for setting the HOSTNAME m4 variable
have been removed; it is now just a duplicate of CLIENTHOST.
New Features
- The EWMH _NET_WM_NAME property is now supported, and used for the
window name in place of the ICCCM WM_NAME when set. By default, we
also accept UTF8_STRING encoded WM_NAME as a result of this change;
see below for var to restore historical strictness.
- The EWMH _NET_WM_ICON_NAME property is now supported, and used for
the icon name in place of the ICCCM WM_ICON_NAME when set. Similar
comments as above apply to the encodings.
- Support has been added for CTWM_WM_NAME and CTWM_WM_ICON_NAME
properties, which will override any window/icon names otherwise
specified. This may be useful for applications that set unhelpful
names themselves, or for manually adjusting labelling. These
properties can be set from the command line via xprop; as an
example, xprop -f CTWM_WM_NAME 8u -set CTWM_WM_NAME "awesome
windowsauce". See xprop(1) manual for details; the s, t, and u field
type specifiers will all work.
- When no icon name is set for a window, we've always used the window
name for the icon name as well. But that only happened the first
time the window name is set; after that, the icon name is stuck at
the first name. It now updates along with the window name, if no
icon name is set.
- All icon manager windows will now have the TwmIconManager class set
on them, so they can be addressed en mass by other config like
NoTitle by that class name.
New Config Options
- Added DontNameDecorations config option to disable setting names on
the X windows we create for window decoration (added in 4.0.0).
These have been reported to confuse xwit, and might do the same for
other tools that don't expect to find them on non-end-app windows.
Reported by Frank Steiner.
- Added StrictWinNameEncoding config option to enable historical
behavior, where we're reject invalid property encoding for window
naming properties (like a UTF8_STRING encoded WM_NAME).
Bugfixes
- Fix up broken parsing of IconifyStyle "sweep". Bug was introduced in
4.0.0.
- When multiple X Screens are used, building the temporary file for m4
definitions could fail with an error from mkstemp(). Reported by
Manfred Knick.
- When multiple X Screens are used, the OTP code didn't recognize the
difference, and kept everything in one list. This caused the
internal consistency checks to trip when it didn't find all the
windows it expected. Reported by Terran Melconian.
- When ReverseCurrentWorkspace is set, mapping windows not on the
current workspace (e.g., via restarting ctwm, or creating new
windows with the desktop set via EWMH properties) could segfault.
Reported by Sean McAllister.
- Fix some edge cases where we'd fight other apps' focus handling.
When an application moved focus itself to an unrelated (in X terms)
window, our processing would often race and re-move the focus to the
root ourselves. This was visible with e.g. sub-windows in Firefox
for context menu and urlbar dropdown, which would flash on and then
disappear.
- When creating a new transient window of an existing full-screen
window, the OTP stacking may cause it to be stuck below the main
window due to the special handling of full-screen focused windows in
EWMH. It should now be forced to the top.
- Building ctwm since 4.0.0 in certain locales could misorder
functions in the lookup table, leading to troubles parsing the
config file. You'd get some loud "INTERNAL ERROR" lines from ctwm
when running it if this were the case. Now fixed. Reported by
Richard Levitte.