Download Latest Version 0.9.0 source code.tar.gz (508.3 kB)
Email in envelope

Get an email when there's a new version of labwc

Home / 0.9.0
Name Modified Size InfoDownloads / Week
Parent folder
0.9.0 source code.tar.gz 2025-07-11 508.3 kB
0.9.0 source code.zip 2025-07-11 640.7 kB
README.md 2025-07-11 6.7 kB
Totals: 3 Items   1.2 MB 0

The main focus has been to port labwc to wlroots 0.19 [#2388] and fix associated issues. Special thanks to @Consolatis @jlindgren90 for this.

There is a regression warning worth noting for the switch to wlroots 0.19:

  • Menu item can no longer be activated in any Gtk applications with a single press-drag-release mouse action. For context: This is due to ambiguity in the specifications and contrary implementations. For example, Gtk applications are broken under KWin in this regard, while vice versa Qt clients are broken under other compositors like Weston, Mutter and labwc. It has been decided not to block the release due to this regression as it is an eco-system wide issue that has existed for a long time. [#2787]
  • VR headset support is disabled when compiled with wlroots 0.19.0 to work around a bug on the wlroots side which is expected to be fixed in wlroots 0.19.1 [#2887]

Added

  • Add client lab-sensible-terminal and add a Terminal entry to the default root-menu @johanmalm [#2877]
  • Enhance -v|--version option by adding feature flags like +xwayland -rsvg. @Consolatis [#2873]
  • Send drm leases to XWayland clients. This requires XWayland >= 21.1.9. @Consolatis [#553] [#2873]
  • Add <windowRule iconPriority="client|server">. @Consolatis @tokyo4j [#2839]
  • Support theme colors defined by X11-color-names and '#rgb' syntax @jlindgren90 [#2686]
  • Support basic vertical titlebar gradients and the additional theme options listed below. @jlindgren90 [#2686]

    window..title.bg: Solid | Gradient ( Vertical | SplitVertical ) window..title.bg.colorTo: window..title.bg.color.splitTo: window..title.bg.colorTo.splitTo:

  • Support the XWayland _NET_WM_ICON property. Use the new iconPriority window rule to enable this. @Consolatis @tokyo4j [#2840]

  • Add config option <core><primarySelection>. This enables autoscroll (middle-click to scroll up/down) in Chromium and electron based clients without inadvertantly pasting the primary clipboard. @johanmalm [#2832]
  • Bump xdg_shell version from 3 to 6 @tokyo4j [#2814]
  • Bump wl_compositor version from 5 to 6 @tokyo4j [#2812]
  • Support tablet tool mouse buttons @jp7677 [#2778]
  • Add libinput config options:
  • <threeFingerDrag> @m4rch3n1ng [#2795]
  • <dragLock>sticky</dragLock> @tokyo4j [#2803]
  • <scrollMethod>none|twofinger|edge</scrollMethod> @Consolatis [#2767]
  • Add {left,right}-occupied options to GoToDesktop @DreamMaoMao [#2790]
  • Add config option <theme><dropShadowsOnTiled> @diredocks [#2789]
  • Add missing tracking of configure serials for xdg-shell surface to fix issue with mpv @jlindgren90 [#2774] [#2788]
  • Add support for the following Wayland protocols:
  • ext-data-control @Consolatis [#2829]
  • alpha-modifier @Consolatis [#2829]
  • xdg-toplevel-icon protocol. Use the new iconPriority window rule to enable this. @tokyo4j [#2755]
  • drm-syncobj protocol @zeusgoose [#2737]
  • ext-image-copy-capture protocol @any1 [#2740]
  • Support both axis for XWayland client side maximize requests. @Consolatis [#2728]
  • Add scroll emulation for cursor motion and associated actions @jp7677 [#2678]:
  • EnableScrollWheelEmulation
  • DisableScrollWheelEmulation
  • ToggleScrollWheelEmulation

Fixed

  • Fix flicking with negative screen/window resistance @ahesford [#2886]
  • Fix layer-shell UAF bug on TTY change @johanmalm @Consolatis [#2874]
  • Allow dragged windows to be moved to other workspaces. @Sumandora [#2868]
  • Destroy xdg-shell popups when their parent is destroyed to fix potential compositor crash. @Consolatis [#2846]
  • Clear SSD hover effects after touch-up @jp7677 [#2837]
  • Close compositor menus on first touch up/down event to prevent menus from staying open during touch interactions in native touch mode. @jp7677 [#2827]
  • Omit pointer cursor shape for tablet tools to prevent a resize cursor for out-of-surface scrolling with a tablet tool in recent GTK4 (which uses the cursor shape protocol). @jp7677 [#2808]
  • For XWayland, give focus to a modal dialog rather than its parent. @jlindgren90 [#2722]
  • Do not send configure events in unmap handler to fix issues with wshowkeys and kitten @tokyo4j @johanmalm [#1153] [#1154] [#2867]
  • Window switcher fixes: @tokyo4j [#2770]
  • Always show title with <field content="title">. Before this patch, titles were not shown if identical to identifiers.
  • Always show output name with <field content="output">. Before this patch, output names were not shown if there was only one output.
  • Send fractional scale to layer-shell surfaces before map. @Consolatis [#2768]
  • Only configure initialized layer-shell surfaces to fix bug with kitten quick-access-terminal @alex-huff [#2736] [#2745]
  • Improve focus semantics for XWayland windows using the Globally Active input model to fix issues with Zoom, WeChat and CLion @jlindgren90 [#1142] [#2811] [#2819]
  • Provide better support for XWayland client keyboard focus grabs by using the new grab_focus signal. @jlindgren90 [#1142]
  • Guard against negative sizes in window-switching and menu graphical artefacts. @tokyo4j [#2727]
  • Do not broadcast keyboard modifiers from virtual keyboards to fix issue with per-window layout settings. @orfeasxyz [#2723] [#2724]
  • Gracefully exit when no fonts are installed @tokyo4j [#2713]
  • config: validate total osd field width to ensure it does not exceed 100%. @tokyo4j [#2710]

Changed

  • Replace alacritty in default keybind with lab-sensible-terminal @tokyo4j [#2891]
  • Use the Super modifier instead of Alt for the default mousebinds A-Left and A-Right (for move and resize) to avoid interfering with some clients like CAD programs and games @johanmalm [#2831]
  • Deprecate the default keybinds listed below. @johanmalm [#2831]
  • A-F3 for bemenu-run because it is too close to A-F4 and it is better to be agnostic on choice of launcher.
  • A-<arrow> for MoveToEdge because Alt- keybinds should be for clients to use and this one results in frequent user complaints because it prevents some common usage patterns like alt-left/right in web browers.
  • Change default titlebar menu button from a dot to an arrow @johanmalm [#2844]
  • When dragLock is set to yes, the drag no longer expires after a short delay (known as Sticky mode) as recommended by libinput [#2803]. The timeout based behavior can be restored via the snippet below.

    :::xml <libinput> <device> <dragLock>timeout</dragLock> </device> </libinput>

Source: README.md, updated 2025-07-11