Releases: labwc/labwc
Release list
0.20.1
This is a small bug fix release.
Fixed
- Handle titles with no visible characters, for example the left-to-right mark
(‎) @Consolatis [#3630] - Protect against SIGABRT when TTY switching in unusual circumstances by
ensuring that xdg-shell windows have sensible width and height before trying
to set size on configure. This protects against an edge case experienced when
switching between labwc on one TTY and Xfce on XOrg on another TTY.
@johanmalm @Tamaranch [#3617]
0.9.8
0.20.0
This is the first release using wlroots-0.20 and therefore has an increased risk
of teething issues. Many thanks to @Consolatis for leading the effort to port
across [#2956].
In terms of new features, the most noteworthy ones include: (i) the frequently
requested show-desktop action; (ii) initial toplevel capture support to
screenshot specific windows; (iii) menu accelerators/shortcuts; and (iv) HDR10
support when running with the Vulkan renderer option.
The eagle-eyed amongst you will have noticed the sudden jump from labwc 0.9.7
to 0.20.0. The reason for this is to align the minor number to that of the
wlroots version against which the compositor is linked.
The 0.9.x series has turned into a maintenance branch named v0.9 with bug fixes
only, for anyone preferring to build with wlroots-0.19.
Note to maintainers:
- libinput >=1.26 is required in support of tablet tool pressure range
configuration. - wlroots >=0.20.1 is required to avoid some bugs that we do not want labwc to
ship with. For details, see:
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5325
Added
- Partially support toplevel-capture. Note that the following are not yet
implemented: (i) XWayland child windows; (ii) XWayland unmanaged windows
(e.g. popups); (iii) xdg child window positioning; (iv) xdg subsurfaces;
and (v) xdg popup positioning. [#2968] @Consolatis - Add command line option -t|--title to set the labwc window title when running
nested [#3577] @mdsib - Add support for HDR10 output @kode54 @Consolatis [#3424]
- Include wlroots version in --version string @Consolatis [#3567] [#3581]
- Implement menu accelerators (one-letter mnemonics to quickly select/exec
items from the current menu) @ch3rn1ka [#3505] - Add Next/PreviousWindowImmediate actions @elviosak @johanmalm [#3547]
- Add labnag options
--details-border-colorand--details-margin
@st0rm-shad0w [#3527] - Add config option
<focus><raiseOnFocusDelay>to defer raise-on-focus by a
small amount whenraiseOnFocusis enabled @joske [#3513] - Install
labwc-session.targetsystemd user unit when the systemd dependency
is available @joske [#3534] - Add
onbuttonto config option<libinput><device><scrollMethod>. Also add
associated option<libinput><device><scrollButton>. @diniamo [#3540] - Add
overrideInhibitionoption to<keybind>[#3507] @drougas - Add action
ToggleShowDesktopto hide/unhide windows, and default keybind
Super-dto trigger this action [#3500] [#3595] @johanmalm - Add
<privilegedInterfaces>config option so that privileged protocols can be
restricted [#3493] @xi - Add action
DebugToggleKeyStateIndicatorto show a key-state on-screen
display (OSD) for debugging. [#3499] @johanmalm @tokyo4j - Add support for
color-management-v1andcolor-representation-manager-v1
protocols [#3469] @ManuLinares - Add configuration option
<tabletTool minPressure="0.0" maxPressure="1.0" />
to enable tablet tool pressure range libinput settings [#2916] @jp7677 - Add
wl_fixesinterface [#2956] @kode54
Fixed
- Enable labnag long option --exclusive-zone [#3576] @st0rm-shad0w
- Position chromium popup correctly when a window is maximized on a multi-
output setup @elviosak [#3547] - Run session activation environment update synchronously to avoid a race
condition with the autostart script [#3543] @joske - Allow interactive resize on fully maximized windows so that a resize
initiated by modifier plus right-mouse-button-drag is not ignored [#3525]
@bjorn - Gracefully handle missing XWayland packages, so that a labwc compositor which
has been built with XWayland support (which is optional) can be run even if
XWayland is not installed. [#3401] @quite - Rework how XWayland window initial geometry is set to ensure that the natural
geometry does not exceed the usable output area when handling initial
maximize/fullscreen requests. [#3439] @jlindgren90. - For XWayland windows, sync always-on-top state back to X.Org Server. This
makeswmctrl -b toggle,abovework. [#3446] @jlindgren90 - Fix missing title and icon with XWayland client override-redirect toggle.
There are no known issues with clients, so this is purely for preventative
purposes. [#3450] @jlindgren90 - Update titlebar title when set to empty and fix an associated issue causing
the title to be misplaced outside of the titlebar when the window is resized.
[#3443] @tokyo4j - When running nested, exit compositor when last output is destroyed because
in this situation, each output corresponds to a window in the parent
compositor and, unlike DRM outputs, these cannot be reconnected after being
destroyed. [#3440] @marler8997 - Allow policy-based placement to apply when an initially-maximized/fullscreen
view is restored to floating geometry. [#3387] [#3502] @jlindgren90
Changed
- Change the default keybinds for XF86Audio{LowerVolume,RaiseVolume,Mute} to use
pactl instead of amixer [#3484] @DanielRRRR - Drop cosmic-workspace protocol [#3031] @tokyo4j
0.9.7
This is a small bug fix release.
0.9.6--------0.9.7 <--- v0.9 branch with bug-fixes only
/
/
0.9.4--------0.9.5-------- <-- master (built with wlroots-0.20)
Fixed
- Fix intermittent failed-to-get-texture issue with some clients (e.g. foot)
when using the window-switcher in the thumbnail mode. [#3511] @yuiiio - Fix tablet tool tilt motion. [#3494] @jp7677
- Handle window-switcher buffer allocation failure when in 'thumbnail' mode.
This is believed to be very unlikely to happen, but has been reported by one
user and is believed to be GPU driver related. [#3490] @Consolatis
0.9.6
This is an earlier-than-usual release containing bug fixes only. It has been
done on a separate branch (0.9.5-maintenance) to avoid the inclusion of
refactoring and new features.
0.9.6 <--- bug-fixes only
/
/
0.9.4--------0.9.5-------- <-- master
Fixed
- Disable outputs where all modes fail [#3428] [#3429] @Consolatis @kode54
- Fix regression in
0.9.4that causesNextWindowaction to segfault when
no outputs are connected. This fixes a window-switcher crash with some
Nvidia GPUs/drivers after suspend [#3425] [#3430] @Consolatis - Fix typo to allow
xdg-dialog-v1global [#3426] @xi
Changed
- Disallow X11 window always-on-top requests by default to fix an issue whereby
Alt+Tab cannot be used to switch to other windows when using some XWayland
Wine games [#3441]. Add window-rule propertyallowAlwaysOnTopto optionally
allow this always-on-top requests. Add the snippet below to therc.xmlfile
to restore the previous behaviour. [#3445] @Consolatis
<windowRules>
<windowRule identifier="*" allowAlwaysOnTop="yes" />
</windowRules>
0.9.5
This is a small bug-fix release.
Added
- Support XWayland client requests for
always-on-topandclose[#3406]
[#3412] @jlindgren90
Fixed
- Allow layer-shell surfaces on disabled outputs to fix a memory leak in some
clients (e.g. mako) when usingwlopm --off. [#3410] [#3411] @Consolatis
0.9.4
Note to package maintainers: This release requires wayland version >=1.22.90
Added
- Add theme option window.button.hover.bg.color [#3365] @johanmalm
- Implement scrollable window-switcher OSD [#3291] @tokyo4j
- Support the
NextWindowoptions listed below [#3271] @tokyo4j<action name="NextWindow" workspace="current|all"/><action name="NextWindow" output="all|focused|cursor"/><action name="NextWindow" identifier="all|current"/>
- Add config option
*<desktops><initial>for setting the active workspace on
startup. [#3265] @5trixs0f
Fixed
- Increase max client buffer size to 1 MiB to allows slow clients to better deal
with large amounts of events coming in from labwc like from high refresh rate
mice. Fixes issue with clients getting disconnected because the labwc side
client write buffer is full. [#3400] @Consolatis - Fix two minor cursor position issues during interactive move/resize.
[#3372] @jlindgren90 - Flush X11 connection after focus/activate to mitigate a race where the
XWayland server may generate an unwanted FocusOut event for the newly
activated window, if it receives pointer events over the parallel wayland
connection first. In particular, this fixes an issue with certain fullscreen
applications (such as Minecraft) that self-minimize when receiving FocusOut.
[#3344] [#3362] @jlindgren90 - Cancel interactive move/resize when a window is minimized/unmapped. This is
probably not a common occurrence but it seems cleaner to handle it properly.
[#3350] @jlindgren90 - Fix spurious focus change when window-switcher finishes [#3346] @tokyo4j
- Improve logic for restoring view positions after output disconnect and
reconnect [#3309] [#3310] @jlindgren90 @tokyo4j - Avoid restacking when a window is already in front; and avoid repeated focus
changes when unminimizing a window with child windows. These changes are not
believed to be visible to the user, but are mentioned here for completeness.
[#3323] [#3325] @jlindgren90 - Do not try to focus an XWayland window that is already in focus. This fixes an
issue with old versions of Minecraft (<=1.5.2). [#3316] @ventureoo - Halt window-switcher on reconfigure to avoid invalid memory access in some
circumstances. [#3297] @tokyo4j
Changed
- Decouple the window states always-on-{top,bottom} and omnipresent. Previously
always-on-{top,bottom} windows were always visible on all workspaces
(omnipresent).[#3356] @tokyo4j - Change the following layer-shell focus semantics:
- Do not allow clients with on-demand keyboard interactivity in the background
and bottom layers steal focus. The reason for this is to avoid desktop
components likepcmanfm-qt --desktopfrom stealing keyboard focus if they
are re-started. [#3167] [#3373] @johanmalm - Give keyboard focus to xdg-popups of unfocused layer-shell clients in
support of enabling panel menus to be opened by keyboard shortcuts
and get keyboard focus so that they can be operated with the keyboard.
An example use-case is the xfce4-panel applications-menu being opened by
the command xfce4-popup-applicationsmenu. [#3165] @johanmalm - On popup destory, return focus to whoever had it before the popop [#3165]
@johanmalm @tokyo4j
- Do not allow clients with on-demand keyboard interactivity in the background
- Unshade window if selected from client-list-combined-menu [#3345] @Amodio
- Show non-dialog child windows in window-switcher [#3339] @tokyo4j
<windowSwitcher allWorkspaces="yes|no">is deprecated. Instead, use:
<action name="NextWindow" workspace="current|all">. [#3271] @tokyo4j
0.9.3
This release contains a good amount of bug-fixes, code simplification and
small usability improvements.
With the stability that comes with having tracked wlroots 0.19 for a decent
length of time, this feels like the best version of labwc so far.
In terms of new features, it is worth drawing attention to the click support in
the window-switcher on-screen-display by @tokyo4j [#3186] which has frequently
been requested by users.
As a general note to users, we discourage the use of empty strings in the
rc.xml configuration file, for example <theme><name></name></theme>. There
are only a few areas left where empty string are ignored (like under
<libinput>) but the intent for future releases is to consistently read empty
strings as empty strings. As a preparation, this release has added some warnings
for empty strings that are currently ignored, so that users can take action.
Also, the example docs/rc.xml.all has been updated to remove poor examples in
this regard.
A big thank you to all involved in this release.
Added
- Add
<windowSwitcher order="focus|age"/>to optionally order windows by age
rather than most recent focus. @mbroemme [#3229] - Replace
<snapping><range>with<snapping><range inner="" outer="">to
provide more granular control when configuring the size of snapping areas
(including<topMaximize>) on output edges with and without adjacent outputs.
@elviosak [#3241] - Add
directionoption toResizeaction supporting the valuesup-left,
up,up-right,left,right,down-left,down,down-right. This
mirrors Fluxbox'sStartResizing [corner]behavior. @mbroemme [#3239] - Allow the use of the
sendEventsModeconfiguration option on keyboards in
order to disable keyboard input. @cillian64 [#3208]
<libinput>
<device category=" RPI Wired Keyboard 1">
<sendEventsMode>no</sendEventsMode>
</device>
</libinput>- Support the following new
<windowSwitcher>configuration options: - Support window-switcher OSD item click to focus window @tokyo4j [#3186]
- With the window-switcher custom field state specifiers 's' and 'S', show 's'
for shaded window @domo141 [#2895] - Support
xdg-dialogprotocol to enable better handling of modal dialogs @xi
[#3134] - labnag: add --keyboard-focus option @tokyo4j [#3120]
- Allow window switcher to temporarily unshade windows using config option
<windowSwitcher unshade="yes|no"/>@Amodio @Consolatis [#3124] - For the 'classic' style window-switcher, add the following theme options:
Fixed
- Handle desktop files with dots in their names better @Consolatis [#3267]
- Do not synthesize cursor relative motion events from absolute events to fix a
couple of problems: Firstly to avoid unexpectedly large relative motion deltas
with multiple input devices or in nested/VM scenarios, and secondly to fix
erratic mouse behavior in applications that use relative events whilst locking
with pointer constraints. @jlindgren90 [#3251] - Allow cursor movement until entering constraint surface, to fix an issue where
the cursor would get stuck (immovable) outside the window of a Wine/Wayland
game, if it was already outside when the game started (which is common with
4:3 games on a 16:9 screen). @jlindgren90 [#3252] - Flush XCB connection to mitigate race between Raise and input. @jlindgren90
[#3249] - Fix disappearing XWayland popups with some (less commonly used) clients like
Imagemagick'sdisplaycommand,xshogi,xeditandxfigcaused by
too many surface-pings. @jlindgren90 [#3152] [#3246] - Center small fullscreen xdg-shell windows and add black background fill. This
increases spec compliance and improves the user experience with games like
SWAT4, Quake III and Splinter Cell 3. @jlindgren90 [#3233] - When followMouse=yes, update focus on cursor entering SSD rather than just the
client surface. Fixes a regression in 885919f. @tokyo4j [#3211] - Set all foreign-toplevel initial states correctly. This is not believed to fix
any particular user-issue, but just feels safer. @jlindgren90 [#3217] - Update layer-shell client top layer visiblity on unmap instead of destroy
because it is possible for fullscreen xwayland windows to be unmapped without
being destroyed, and in this case the top layer visibility needs to be updated
to unhide other layer-shell clients like panels. @jlindgren90 [#3199] - Window-switcher fixes include:
- Do not consume mousebind scroll events under
<context name="Client">.
@elviosak [#3146] [#3168] - Work around client-side rounding issues at right/bottom pixel. This fixes an
issue with some clients (notably Qt ones) where cursor coordinates in the
rightmost or bottom fixel are incorrectly rounded up putting them outside the
surface bounds. The issue has been particularly noticeable with layer-shell
clients like lxqt-panel. @jlindgren90 [#3157] [#2379] [#3099]
Note: This also avoids a similar server-side rounding issue with some
combinations of wlroots and libwayland versions. See: - Don't remove newlines when parsing config, menu and XBM because doing so can
cause parser error in some unusual situations like the one shown below.
@tokyo4j [#3148]
<!--
-
- Some comments
-
-->
Changed
<snapping><range>is deprecated. Use<snapping><range inner="" outer="">
instead. @elviosak [#3241]- When cycling through windows (typically with Alt-Tab) there are two minor
user-visible changes. For most users these will not be noticeable, but are
mentioned here for completeness. - Refactor window switcher configuration to put attributes
showandstyle
under<windowSwitcher><osd>rather than directly under<windowSwitcher>.
The old configuration syntax will remain supported for at least one release.
@dntxi [#3201] - Place OSDs at the center of output rather than usable area @tokyo4j [#3179]
- If XML documents (like rc.xml and menu.xml) have an XML declaration (typically
<?xml version="1.0"?>), this XML declaration must be the first thing in the
document. In previous versions, line breaks (\n) were allowed before due to
the way the files were parsed, but this is approach caused other issues like
[#3145] and is contrary to XML syntax. [#3148] [#3153] - With the window-switcher custom field state specifiers 's' and 'S', change the
display order from M|m|F to m|s|M|F; and increase the size from three
characters wide to four. @domo141 [#2895] - Put labnag in overlay layer by default so that the dialog is still visible
when a window is using fullscreen mode. @johanmalm [#3158] - Call labnag with on-demand keyboard interactivity by default @tokyo4j [#3120]
- Temporarily unshade windows when switching windows. Restore old behaviour with
<windowSwitcher unshade="no"/>@Amodio @Consolatis [#3124] - In the classic style window-switcher, the default color of the selected window
item has been changed to inherit the border color but with 15% opacity
@tokyo4j [#3118]
0.9.2
Added
- Allow
SnapToEdgeandToggleSnapToEdgeto combine two cardinal directions
with the config optioncombine="yes|no". [#3081] @tokyo4j - Support
Bordercontext for mousebinds as an alias forTop...BRCornerto
make configuration easier. @tokyo4j [#3047] - Add window-switcher mode with thumbnails. This can be enabled with:
<windowSwitcher style="thumbnail">. @tokyo4j [#2981] - Add
toggleoption toGoToDesktopaction. This has the effect of going back
to the last desktop if already on the target. @RainerKuemmerle [#3024] - Add
<theme maximizedDecoration="titlebar|none"/>to allow hiding titlebar
when window is maximized. @CosmicFusion @tokyo4j [#3015] - Use client-send-to-menu as 'Workspace' submenu in built-in client-menu
@johanmalm [#2995] - Allow overwriting submenu icon to increase flexibility and enhance Openbox
compatibility. @tokyo4j [#2998] - Allow client-{list-combined,send-to}-menu as submenu of static menu @tokyo4j
[#2994] - Add
labnag(a dialog client with message and buttons) and associated
<prompt>option in 'If' actions. @johanmalm @Consolatis @tokyo4j [#2699] - Support config option
<core><promptCommand>@johanmalm [#3097] - Allow snapping to corner edges during interactive move with associated config
options<snapping><cornerRange>. @tokyo4j [#2885] - Support new values "up-left", "up-right", "down-left" and "down-right" with
<action name="(Toggle)SnapToEdge" direction="[value]">and
<query tiled="[value]">. @tokyo4j [#2885] - XML parsing improvements as listed below. @tokyo4j [#2667] [#2967] [#2971]
- Support nested
IfandForEachactions - Parse CDATA as text all nodes
- Remove ordering constraint of attributes in
<keybind>,<mousebind>and
<windowRule> Ifactions now works for menus- For menus, the
nameargument no longer has to be the first argument of
<action>; and thelabelargument no longer has to be the first argument
of<item>
- Support nested
- Toggle mousebinds with the
ToggleKeybindsaction @tokyo4j [#2942] - Add support for direction value 'any' with tiled queries. This allows users
to query for any snap directions without using multiple query statements
@Lynxy [#2883]
Fixed
- On detecting broken icon theme, fall back on 'hicolor' @Consolatis [#3126]
- Restore initially-maximized window position after unplug/plug @tokyo4j [#3042]
- Fix large client-side icon not being loaded when the rendered icon size is
larger than icon sizes from the client. @tokyo4j [#3033] - Improve debug logging for configuring input devices @jlindgren90 [#3028]
- Fix false positives when matching desktop entries @datMaffin [#3004]
- Prevent accidental downcasting of scale in scaled-icon-buffer to avoid blurry
icons on non-integer scales and a cairo assert when using a output scale < 1.
@Consolatis #2984 - Fix xdg-shell windows moving between outputs due to configure timeout
@jlindgren90 [#2976] - Fix segfault with toplevel
<separator>inmenu.xml@tokyo4j [#2970] - Prevent hi-res mice triggering scroll actions too often @tokyo4j [#2933]
Changed
- Change default keybind
W-<arrow>to combine cardinal directions to support
resizing of windows to fill a quarter of an output. This only affects users
who do not use anrc.xml(thereby using default keybinds) or use the
<keyboard><default/>option. Previous behavior can be restored by setting
combine="no"as shown below. [#3081] @tokyo4j
<keybind key="W-Left">
<action name="SnapToEdge" direction="left" combine="no" />
</keybind>
<keybind key="W-Right">
<action name="SnapToEdge" direction="right" combine="no" />
</keybind>
<keybind key="W-Up">
<action name="SnapToEdge" direction="up" combine="no" />
</keybind>
<keybind key="W-Down">
<action name="SnapToEdge" direction="down" combine="no" />
</keybind>
FocusandRaiseon window border press because it is probably what most
people expect and it makes the behavior consistent with that of Openbox.
@johanmalm [#3039] [#3049]- On interactive resize, only un-maximize the axis/axes that are being resized.
@jlindgren90 [#3043] - Change theme setting
osd.window-switcher.*to
osd.window-switcher.style-classic.*. Backward compatibility is preserved.
@tokyo4j [#2981] - In client-list menu, add brackets around the titles of any minimised windows
@davidphilipbarr [#3002] - Respect client-initiated window resize of non-maximized axis, for example
remember the width of vertically-maximized window resizing itself
horizontally. @jlindgren90 [#3020] - Remember position of window along non-maximized axis during interactive move.
@jlindgren90 [#3020] - Restore default libinput device values on reconfigure with empty value, rather
than leaving the old configuration. This makes rc.xml more declarative.
@tokyo4j [#3011] - Change
Ifaction when used without a focused window to execute the<else>
branch (previously it was just ignored). The reason for this is to make things
more consistent with<prompt>. It is not anticipated that this will affect
anyone's workflow but is mentioned here for completeness. - Make
autoEnableOutputs=noapply only to drm outputs @jlindgren90 [#2972] - Take into account
<core><gap>for edge and region overlays @tokyo4j [#2965]
0.9.1
This is an earlier-than-usual release containinig bug fixes only. It has been done on a separate branch to avoid the inclusion of refactoring and new features.
0.9.1 <--- bug-fixes only
/
/
0.8.4--------0.9.0-------- <-- master
Fixed
- Prevent interaction with un-initialized xdg-shell windows after unmap to fix a
bug exposed bywlroots-0.19.0resulting in a compositor crash in certain
(unusual) circumstances [#2948] [#2937] [#2944] @Consolatis - Fix double-free in
img_svg_render()failure path [#2910] @jlindgren90 - Fix swapped width/height in XWayland client
_NET_WM_ICONstride calculation
[#2909] @jlindgren90