of minor bugfixes done following 4.0.2, and a fix for crashes in OTP
triggered by fullscreen windows with transients. See CHANGES in the
tarball or at http://www.ctwm.org/CHANGES.html for details.
Note: no documentation included yet, we don't have the tools
Awesome v4.3 is the third release of the 4.x API. It comes after one and
a half years of little fixes and improvements. Awesome v4.2 was very
stable thanks to everybody's effort to unit test everything. Given no
major bug warranted a new release, this one adds a few large features
while preserving full compatibility with existing user configurations.
Some highlights:
- Better DPI handling
- Extendable awful.rules providers and better awful.spawn functions
- A brand new keygrabber API
- A new GTK color palette based theme
- Widgets improvements
Change log:
4.13.3
======
- Update CSS for tabwinb only on theme change (Viktor Odintsev)
- HiDPI: Use GTK3 scaling attributes for window titles (Viktor Odintsev)
- HiDPI: Adjust default theme with scale
- Fix initial pointer location when zooming
- Fix double-click distance setting (Adam K)
- Allow the top of the frame to be cropped when maximised (Adam K,
bug #14470)
- Update default theme to use maximized cropping
- Fix build without compositor (bug #15432)
- Improved GLX support with NVIDIA proprietary/closed source driver
(bug #15453)
- Compositor updates with GLX
- Small optimization with zoom on GLX
- Increase X11 client priority of xfwm4
- Change default compositor background to plain black
- Fallback to resource class name for icons (Iharob Al Asimi, bug #15510)
- Clear shortcut in settings-dialog when removed (bug #12802)
- Remove icons from window menu
- Fix regression with maximized window (bug #15638)
- I18n: Update translations: bg, ca, cs, da, de, es, fr, gl, hr, hu,
hy_AM, id, ie, it, lt, ms, nl, pl, pt, pt_BR, ru, sr, tr, zh_CN, zh_TW
Change log:
### marco 1.22.2
tx: sync with transifex
bump LT_VERSION_INFO
libmarco-private: add version information
add support for invisible borders
frames: avoid deprecated 'gtk_widget_set_double_buffered'
window: avoid clang warning: garbage value
ui: always set the frame background to None
libmetacity: use cairo to render gradient
gradient: sync code with mutter before it was removed
4.13.2
======
- Fix flickering with GLX backend (bug #14564, bug #13519)
- Fix monitor geometry with scaled UI (bug #14566)
- Fix issue with Android Virtual Device emulator (bug #12206)
- Fix XI2 mask (bug #14695, Timo Teras)
- Fix preview with shaded windows (bug #14899)
- Fix tabwin placement with scaled UI (bug #14931, Jonas Zetterberg)
- Add xfconf setting for selecting permanent vblank method
- Fix maximization with GTK clients using size increments (bug #13954)
- Add style class to tabwin modes (Andre Miranda)
- Fix crash/stack smash in startup-notification on some architectures
(bug #15028, Martin Husemann)
- Avoid crash with button layout setting (bug #14606)
- Raise on activate only with raise-on-focus (bug #14656)
- Fix use after release of client picture with hidden (bug #14990)
- Fix monitor output size update (bug #15085)
- Allow transients to be minimized (bug #14953)
- Raise all transients together (bug #15303)
- Fix menu alignment with scaled UI (Jason Zaman)
- Fix a regression where the client would remain visible if closed while
cycling (bug #15318)
- Withdraw the frame before the client window (bug #15061)
- Revert to GLX as default vblank method (bug #15325)
- Reduce repaint timeout (bug #14335)
- Fix support for 1bpp icons
- Use cairo for pixmaps and masks
- Allow hiding windows using NET_WM_STATE_HIDDEN (bug #15356,
pnd23@telenet.be)
- Fix size increment with scaled UI
- Various compositor improvements and optimizations with GLX
- Check for appropriate XSync version and increase xfwm4 priority
- Adjust zoom update based on monitor refresh rate (bug #15391, Alistair
Buxton)
- Fix window type for broken clients (bug #15399)
- Fix pointer enter/leave with decoration buttons (bug #14741)
- New default theme
- I18n: Update translations: ar, ast, be, bg, bn, ca, cs, da, de, el,
en_AU, en_CA, en_GB, es, eu, fi, fr, gl, he, hr, hu, id, is, it, ja,
kk, ko, lt, lv, ms, nb, nl, nn, oc, pl, pt, pt_BR, ro, ru, sk, sl,
sq, sr, sv, th, tr, ug, uk, ur, ur_PK, zh_CN, zh_HK, zh_TW
### marco 1.22.1
* update translations
* window: set atom__NET_WM_STATE_FOCUSED for meta_window_appears_focused
* window: make docks and spashscreens appear focused
* Do not judge whether the window is decorated or not
* screen: Fix use of memory after it is freed
* [Security] Use 'g_strlcpy' instead of 'strcpy'
* compositor-xrender: Fix memory leak
Obviously I couldn't get things right on the first commit. Why didn't I see
this, you ask? Because I had been running all my builds without PKG_DEVELOPER
enabled and only noticed this when 'make changes-entry' wouldn't work at
the last minute.
skhd is a simple hotkey daemon for macOS.
skhd is a stripped version of khd (no longer maintained) (although
rewritten from scratch), that sacrifices the more advanced features in
favour of increased responsiveness and performance. skhd is able to
hotload its config file, meaning that hotkeys can be edited and updated
live while skhd is running.
chunkwm is a tiling window manager for macOS that uses a plugin
architecture, successor to kwm. chunkwm represents windows as the
leaves of a binary tree, and supports binary space partitioned, monocle
and floating desktops.
Development is happening on macOS Mojave (10.14), but OSX El Capitan
(10.11.6) and newer should work fine. Older versions may or may not be
compatible and will not be officially supported.
chunkwm is controlled via the chunkc command-line utility, which sends
commands to chunkwm to manipulate windows.
chunkwm does not handle any keyboard input. A third party program (e.g.
skhd) is needed to map keyboard events to chunkwm actions via chunkc.
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.
4.0.1 (2017-06-05)
User Visible Changes
Fix a bug where fullscreen windows could sometimes wind up incorrectly stacked due to a focus-handling issue. This would lead to ctwm aborting with an assertion failure in the OTP code, like Assertion failed: (PRI(owl) >= priority), function OtpCheckConsistencyVS.
Fix an edge case (probably only triggerable via manual work with EWMH messages) where a window could wind up resized down to nothing.
Internals
Systems with the ctfconvert/ctfmerge tools available will now use them to include CTF info in the compiled binary. This allows more detailed inspection of the running process via DTrace (e.g., the layout of the structs).
The initial rumblings of a Developer's Manual are now in doc/devman/. This isn't tied into the main build, and there's no real reason it ever will be. Things of interest to users should wind up in the main manual; this should only have things of interest to people developing ctwm.
4.0.0 (2017-05-24)
Build System Change
The old imake build system has been replaced by a new structure using cmake. This makes cmake a requirement to build ctwm. See the README.md file for how to run it.
A fallback minimal build system is available in the minibuild/ directory for environments that can't use the main one. This is likely to need some manual adjustment on many systems, and the main build is strongly preferred. But it should suffice to get a runnable binary if all else fails.
Platform Support
Support for many non-current platforms has been dropped. In particular, remnants of special-case VMS support have been removed. Many old and now dead Unix variants have been similarly desupported. Generally, platforms without support for C99 and mid-2000's POSIX are increasingly less likely to work.
Backward-Incompatible Changes And Removed Features
Argument parsing has been rewritten to use getopt_long(). All -long options are now --long instead. -version, -info, -cfgchk, and -display are still accepted if they're the first option given, to make it easier for scripts to simultaneously support before/after versions; this shim will be removed in a later version.
Support for the SDSC imconv library, and the IMCONV options related to it, has been removed. The last release is almost 20 years old, and doesn't support any remotely recent platforms.
The USE_SIGNALS code to use signal-driven animations has been removed. It's been non-default since 3.2 (more than 20 years ago), and not documented anywhere but in the code and a comment in this file.
The USE_GNOME option and code for GNOME1 support has been removed.
The old-style title button action specifications (without an = in them) deprecated since 3.8 are no longer supported. Just replacing the ":" with "= :" should suffice to make it work right in 3.8+. If you need to share configs with older versions, you'll have to conditionalize the syntax with m4 or some other preprocessing.
The f.cut (and ^ alias for it), f.cutfile, and f.file functions have been removed. These functions for messing with the clipboard were never visibly documented, and came into the manpage in 3.0 already commented-out and saying they were obsolete.
The f.source function has been removed. It's never done anything (except beep) as far back as 1.1 and has never been documented.
The f.movemenu function has been removed. It was added silently in 2.1, has never done anything, and has never been documented.
The NoVersion config parameter has been removed. It's been undocumented, obsoleted, and done absolutely nothing since 1.1.
Support for non-flex versions of lex(1) is deprecated, and will take some manual work to build. Note that release tarballs include prebuild lexers, so this probably only matters to people building from a development tree. (And if you are, and really need AT&T or some other lex to work, talk to us!)
Support for building with internal regex implementation has been disabled; we now require regex support from libc. It is still possible to enable by manually editing files, but this will be removed in the future. If you have to mess with this, please bring it up on the mailing list so we can figure out a long-term solution.
Parsing of the ctwm.workspaces X resource (i.e., setting -xrm "ctwm.workspaces: something" on program command-lines) since 3.0 has collapsed doubled backslashes (\\) into a single (\). However, there were no other escapes, so this didn't gain anything. Using a single will work with both variants, unless you need multiple backslashes in a row in your workspace names.
The IconRegion and WindowRegion config params both take a vgrav hgrav pair of parameters to control layout. Previous versions would accept a hgrav vgrav ordering in the parsing, and would mostly work by odd quirks of the code. The parsing has been made stricter, so only the documented vgrav hgrav ordering is accepted now.
User Visible Changes
The default install locations have been changed. See the README for details about where things are installed and how to change them.
Several default settings have been changed. ctwm now defaults to acting as though RestartPreviousState, NoGrabServer, DecorateTransients, NoBackingStore, RandomPlacement, OpaqueMove, OpaqueResize, SortIconManager, and StartInMapState have been set. Those settings that didn't previously have an inverse (to get the behavior previously seen when they weren't specified) have such added; see below.
Added various config parameters as inverses of existing params. New params (with existing param they invert in parens):
BackingStore (NoBackingStore)
GrabServer (NoGrabServer)
StartInButtonState (StartInMapState)
NoSortIconManager (SortIconManager)
NoRestartPreviousState (RestartPreviousState)
NoDecorateTransients (DecorateTransients)
Added DontShowWelcomeWindow config option to not show welcome splashscreen image.
Selected a number of cleanups from Stefan Monnier <monnier%IRO.UMontreal.CA@localhost>, including rate-limiting of animations using a new _XA_WM_END_OF_ANIMATION message. Font height is estimated based on used characters only. Added some similar changes, improved the prevention of placing windows off-screen, the f.rescuewindows function for emergencies, a hack-fix for f.adoptwindow. More virtual screen tweaks/fixes.
Added the remaining OnTopPriority changes from Stefan Monnier <monnier%IRO.UMontreal.CA@localhost>: AutoPopup, AutoPriority, OnTopPriority, PrioritySwitching, f.changepriority, f.priorityswitching, f.setpriority, f.switchpriority, f.tinylower, f.tinyraise. Currently consistency checking code is enabled, which will terminate with an assertion failure if something unexpected happens. Smoothed out various inconsistencies that this check discovered when virtual screens are used.
Basic support for EWMH (Extended Window Manager Hints) added and enabled by default. EWMHIgnore {} config option allows selectively disabling bits. [Olaf "Rhialto" Seibert, Matthew Fuller]
Icon manager windows are no longer included in the window ring (that had confusing effects on the focus sequence).
Added --dumpcfg command-line option to print out the compiled-in fallback config file.
The Occupy {} specification now accepts "ws:" as a prefix for workspaces. This may break things if you have workspaces with names that differ only by that prefix (e.g., you have workspaces "abc" and "ws:abc", and your Occupy {} declarations affects both.
If ctwm is built with rplay support, sounds may now be configured with the RplaySounds {} parameter in the config file in place of the ~/.ctwm-sounds file. If so, ctwm will give a warning if .ctwm-sounds exists; support for the external file will be removed in a future version. Also the SoundHost config parameter is replaced by RplaySoundHost; the old name is still accepted, but will be removed in a future version.
Added MWMIgnore {} config option to allow selectively disabling honoring of some Motif WM hints.
Warping to a window now explicitly sets focus on that window. This would generally (but not always, in the presence of odd X server behavior) have already happened for users with focus following mouse, but now occurs for ClickToFocus users as well. [Alexander Klein]
Several bugs relating to the Occupy window were fixed. Iconifying the Occupy window no longer loses it and leaves you unable to pull it up again. Minor undersizing in some cases fixed.
Windows which fail to use the WM_HINTS property to tell us things like whether they want us to give them focus are now explicitly given focus anyway. This should fix focus problems with some apps (Chromium is a common example).
Added ForceFocus {} config option to forcibly give focus to all (or specified) windows, whether they request it or not. Previously the code did this unconditionally (except when no WM_HINTS were provided; x-ref previous), but this causes problems with at least some programs that tell us they don't want focus, and mean it (some Java GUI apps are common examples).
OpaqueMoveThreshold values >= 200 (the default) are now treated as infinite, and so will always cause opaque moving.
Internals
A new code style has been chosen and the entire codebase reformatted into it. Configs for Artistic Style to generate the proper output are in the source tree.
The full_name element of the TwmWindow structure has been removed. Consumers should just use the name element instead
Performing substitutions during post-patch breaks tools such as mkpatches,
making it very difficult to regenerate correct patches after making changes,
and often leading to substituted string replacements being committed.
WidthOfScreen and HeightOfScreen implementation
window picker: disconnect signal handlers in dispose function
window picker: add icon to prefs dialog
window picker: disable vertical expand of button in prefs dialog
window picker: add icon for taskbar to About dialog
maximus: don’t crash on invalid window ID
Translations update
Marco now supports DRI3 and XPresent, if available.
Frame rates in games are significantly increased when using Marco.
Marco now supports drag to quadrant window tiling, cursor keys can be used to navigate the Alt + Tab switcher and keyboard shortcuts to move windows to another monitor were added.
Full changelog:
build: drop unneeded pangoxft requirement
Small bugfix for the move_to_X keybinds
Bugfix for monitors of different sizes
Restructured monitor keybinds and adjust save_rect
Implemented simple shourtcuts to move window to another monitor
schema: fix typos
compositor: don’t try to paint window that is not viewable
Fix wrong result in meta_window_titlebar_is_onscreen() for windows without a frame
Add support for gtk3 _GTK_SHOW_WINDOW_MENU event
More elegant solution for handling new move-to-workspace keybinds
Implemented a setting to disable top tiling
Implemented tabpopup when moving window to different workspace
keybindings.c: Fix build warning:
Reset tile_resized to false when fullscreening
Fixes windows not going to save_rect when unmaximimizing
Allow horizontal and vertical resizing when corner tiled
Fixes window getting reset to saved_rect when untiling from corner
Added keybindings for corner tiling
Implemented simple corner tiling by mouse drag
WidthOfScreen and HeightOfScreen implementation
XFIXES regions are leaked during paint_windows
Add stricter logic for running without XPresent support
Make XPresent optional
Add in some changes from xfwm4
Cancel present_pending flag when erroring out
XPresent extension support
Store a window flag when user resizes from tiled
Allow tiled windows to be resized horizontally
gtk 3.22: avoid deprecated gdk_screen_get_monitor functions:
avoid deprecated gdk_screen_width/height
avoid deprecated gdk_screen_get_width
display: don’t use deprecated GDK_DEVICE_MANAGER
tools: remove marco-mag and marco-grayscaletools
Fix synthetic keybinding/button-grab window
Forces a window scale of 1 for the window manager, instead of using the default or user configured scale.
avoid deprecated gdk_display_get_screen
avoid deprecated gdk_screen_get_number
Alt/tab - define arrow keycode + numpad arrows
Allow use of arrows while in Alt + Tab popup
ui: Fix invalid object construction in frames
README: fix names of GSettings keys
keybindings: remove uppercase from “current workspace”
Added hotkey to rename current workspace
fix code deprecations
Translations update
Requested in PR pkg/43459, also using some changes from
pkgsrc-wip's wmii-devel.
Seems to work as expected in NetBSD, although I didn't
test the alternative wmiircs.
Some of the changelog (might omit some parts)
3.9.2:
* Work around mawk bug that broke wmiirc.
3.9.1:
* Workaround a dash 0.5.6 bug that broke wmiirc.
* Noticably speed-up python wmiirc startup.
* Disable static linking which breaks wmiir in glibc 2.12.
* Add PKGBUILD.
3.9:
* wmii9menu is now Xinerama aware.
* Install READMEs to $(PREFIX)/share/doc/wmii/.
* Documentation updates. Add wmiir.1, wmii9menu.1.
* Allow dragging floating clients from anywhere in their titlebars.
* Allow specifying screen in area specs.
* Change default $MODKEY to Mod4.
* Minor changes to pygmi.events API.
* Allow client to follow tag change in python wmiirc.
* Update /tag/*/index to be more useful on Xinerama.
* Add showkeys action to shell and python wmiirc.
* Restore windows from floating layer to their original Xinerama screen.
* Hide bar on non-primary Xinerama screens.
* Allow resizing of rightmost and leftmost column dividers.
3.9a2:
* Add Suraj's Rumai-based wmiirc.
* Move rc.wmii to alternative_wmiircs/plan9port/wmiirc.
* Install wmii.pdf to $(PREFIX)/share/doc/.
* Focus windows regardless of whether they form a new group.
* Update selection and execution of wmiirc: no more magic.
* Update wmii.1
* Add alternative_wmiircs READMEs.
3.9a1:
* Add new wmii guide. See doc/wmii.pdf
* Allow for programmable completion in wimenu.
* Use pkg-config globally.
* Add Xft (antialiased font) support.
* Add python wmiirc/9P client library
* Allow bindings to work regardless of caps lock.
* Add M-f fullscreen toggle key binding.
* Augment /client/*/ctl Fullscreen command.
* Allow setting of increment display from /ctl.
* Show a client's extra tags in its titlebar.
* Darken background when floating area selected.
* Allow bar on top or bottom.
* Allow for wmiirc_local.
* Add grow and nudge commands to /tag/*/ctl.
* Cascade windows when the floating layer fills.
* Support alpha-transparant windows.
* Add regex tag support.
* It is now possible to float/unfloat windows with the mouse.
* Make the bar Xdnd aware; DND between views is now possible. Fixed some window raising/moving bugs.
* Add a notification bar.
* Improved floating mouse resizing.
* Improved mouse move/resize support for managed mode.
* Better return from floating/fullscreen to managed mode.
* Allow comments (#.*\n) in rules and ctl files.
* Add /client/*/ctl ?slay? command.
* Detect unresponsive clients on ?kill?.
* Draw titlebars of floating clients differently.
* Add wihack: LD_PRELOAD hack to set window properties of programs:
* Respect window groups
* Add ?Kill? to client right-click menu
* wmii9menu now takes similar args to wimenu
* Document grow/nudge commands.
* Add wimenu with history and caret support
* Add wistrut. Undocumented, not built by default.
* EWMH strut support.
* Basic EWMH support.
* Better fullscreen support.
* XRandR support.
* Xinerama support.
2008-08-25:
* libixp version 97 now required
* Stack and max modes now affect floating clients:
- max: Collapsed clients disappear, all clients disappear
when managed layer is selected.
- stack: All clients but selected are collapsed.
* Adobe's Flash plugin's fullscreen mode now works.
* Some annoying focus bugs are fixed.
This release of twm was made possible by contributions from members of the
NetBSD project and viewers like you.
Alan Coopersmith (1):
twm 1.0.10
Christos Zoulas (1):
Add some const.
Emil Velikov (1):
autogen.sh: use quoted string variables
Michael van Elst (1):
Do not try to extend the font-pattern with a wild-card.
Mihail Konev (1):
autogen: add default patch prefix
Peter Hutterer (1):
autogen.sh: use exec instead of waiting for configure to finish
Thomas Klausner (1):
Adapt callers to ExpandFilename change.