| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 0.9.3 source code.tar.gz | 2025-12-19 | 541.3 kB | |
| 0.9.3 source code.zip | 2025-12-19 | 682.6 kB | |
| README.md | 2025-12-19 | 8.3 kB | |
| Totals: 3 Items | 1.2 MB | 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]:::xml <libinput> <device category=" RPI Wired Keyboard 1"> <sendEventsMode>no</sendEventsMode> </device> </libinput> - Support the following new
<windowSwitcher>configuration options: -<osd thumbnailLabelFormat="%T">to specify the label text in each item in the thumbnail style window-switcher. @elviosak [#3187] -<osd output="all|focused|cursor">to specify which monitor(s) to show the OSD(s) on. @dntxi [#3201] [#3248] - 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] - Supportxdg-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: -osd.window-switcher.style-classic.item.active.border.color-osd.window-switcher.style-classic.item.active.bg.color@tokyo4j [#3118]
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's
displaycommand,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:
- Consider output transformation for percentage based widths @tokyo4j [#3177]
- Classic theme miscalculation for osd width in percentage @tokyo4j [#3175]
- Thumbnail theme miscalculation for item geometries @tokyo4j [#3176]
- 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:
- https://gitlab.freedesktop.org/wayland/wayland/-/issues/555
- https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5159
-
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]
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.
- The initially selected window will now be the one that previously had keyboard focus when cycling commenced rather than the second topmost one. @tokyo4j [#3236]
- Windows that are spawned whilst cycling can no longer be cycled through. The intent is to fix this in future releases. @tokyo4j [#3236]
- Refactor window switcher configuration to put attributes
showandstyleunder<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]