Skip to content
labwc 0.8.1

The most noteworthy additions in this release are:

1. Titlebar window icons and layout configuration
2. Support for the cosmic-workspace protocol and the openbox inspired
   client-list-combined-menu for a better user experience with workspaces.

Notes to package maintainers:

- The SSD titlebar window icon support requires [libsfdo] to be added as a
  (build and run-time) dependency or statically linked. If this is not wanted,
  add `-Dicon=disabled` to the `meson setup` command in the build script for the
  next release.
- PRs [#1716] and [#2205] add labwc xdg-portal configuration, modify
  `labwc.desktop` and amend `XDG_CURRENT_DESKTOP` which should enable better
  out-of-the-box support for xdg-desktop-portal, but if you already ship a
  custom setup for this or have different requirements, please review this
  change.

[libsfdo]: https://gitlab.freedesktop.org/vyivel/libsfdo

Added

- Support dmabuf feedback [#2234] [#1278]
- Add initial implementation of cosmic-workspace-unstable-v1 [#2030]
- Optionally support SSD titlebar window icons. When an icon file is not found
  or could not be loaded, the window menu icon is shown as before. The icon
  theme can be selected with `<theme><icon>` [#2128]
- Add actions `ToggleSnapToEdge` and `ToggleSnapToRegion`. These behave like
  `SnapToEdge` and `SnapToRegion`, except that they untile the window when
  already being tiled to the given region or direction.
  Written-by: @jp7677 and @tokyo4j [#2154]
- Add action `UnSnap`. This behaves like `ToggleSnapToEdge/Region` but
  unconditionally. Written-by: @jp7677 and @tokyo4j [#2154]
- Handle xdg-shell `show_window_menu` requests [#2167]
- Support the openbox style menus listed below. Written-by: @droc12345
  1. `client-list-combined-menu` shows windows across all workspaces. This can
     be used with a mouse/key bind using:
     `<action name="ShowMenu" menu="client-list-combined-menu"/>` [#2101]
  2. `client-send-to` shows all workspaces that the current window can be sent
     to. This can additional be used within a client menu using:
     `<menu id="client-send-to-menu" label="Send to Workspace..." />` [#2152]
- Add theme option for titlebar padding and button spacing [#2189]

```
window.button.height: 26
window.titlebar.padding.width: 0
window.titlebar.padding.height: 0
window.button.spacing: 0
```

- Set titlebar height based on the maximum height of any of the objects within
  it, rather than just taking the font height into account [#2152]
- Add theme option for setting button hover effect corner radius [#2127] [#2231]

```
window.button.hover.bg.corner-radius: 0
```

- Add position arguments for menus. Written-by: @droc12345 [#2102]

```xml
<action name="ShowMenu">
  <menu>root-menu</menu>
  <position>
    <x>0</x>
    <y>0</y>
  </position>
</action>
```

- Allow interactive window movement when horizontally or vertically maximized
  and add associated config option `<resistance><unMaximizeThreshold>` [#2052]
- Add optional Shade (shade.xbm) and AllDesktops (desk.xbm) buttons and theme
  options:

```
window.active.button.desk.unpressed.image.color
window.inactive.button.desk.unpressed.image.color
window.active.button.shade.unpressed.image.color
window.inactive.button.shade.unpressed.image.color
```

- Make action `FocusOutput` behave like `MoveToOutput` by adding direction and
  wrap arguments. Written-by: @orfeasxyz [#2100]
- Add config option for titlebar layout. Written-by: @xi [#2088] [#2150]

```xml
<titlebar>
  <layout>icon:iconify,max,close</layout>
  <showTitle>yes|no</showTitle>
</titlebar>
```

- Add `Oblique` option to `<theme><font><style>`. Written-by: @droc12345 [#2097]
- Support menu titles defined by `<separator label="">`.
- Add the theme option `menu.title.bg.color: #589bda`
- Add theme options `menu.title.text.color` and `menu.title.text.justify`.
  Written-by: @droc12345 [#2097]
- Add font place MenuHeader: `<font place="MenuHeader">`.
  Written-by: @droc12345 [#2097]
- Add actions `EnableTabletMouseEmulation` and `DisableTabletMouseEmulation`.
  Written-by: @jp7677 [#2091]
- Set 'labwc' as `app_id` and `title` for nested outputs [#2055]

Fixed

- Fix rare NULL-dereference when using cursor constraints [#2250]
- Fix issue where tablet/touchscreen button events sometimes do not take effect
  on applications immediately [#2244]
- Fix button release events sometimes not being sent [#2226]
- Fix xdg-shell popups appearing on wrong output with some Qt themes. [#2224]
- Take into account xdg-shell minimum window size for resizing. This is
  relevant when using `<resize drawContents="no">` [#2221]
- Fix rounded hover effect on titlebar buttons when the window is tiled or
  maximized [#2207]
- Fix button scaling issue [#2225]
- Add portals.conf file, amend `labwc.desktop` and modify `XDG_CURRENT_DESKTOP`
  for better out-of-the-box xdg-desktop-portal support. This helps with for
  example screensharing. Written-by: @rcalixte @jp7677 [#1503] [#1716]
- Disable the Inhibit D-BUS interface in xdg-portals configuration to fix an
  issue with some clients (like Firefox) ignoring the idle-inhibit protocol.
  Written-by: @jp7677 [#2205]
- Prevent `Drag` mousebinds from running without button press [#2196]
- Handle slow un-maximize with empty natural geometry better [#2191]
- Fix de-synced SSD when shrinking Thunderbird xdg-shell window [#2190]
- Fix xdg-shell out-of-sync configure state when clients time out
  Written-by: @cillian64 [#2174]
- Fix small flicker when client initially submits a window size smaller than the
  minimum value [#2166]
- Allow server-side decoration to be smaller than minimal size by hiding
  buttons [#2116]
- Fix incorrect cursor shape on titlebar corner without buttons [#2105]
- Fix delayed pipe menu response on item destroy [#2094]
- Destroy xdg-shell foreign toplevel handle on unmap [#2075]
- Sync XWayland foreign-toplevel and associated outputs on re-map [#2075]

Changed

- Theme options `padding.height` and `titlebar.height` have been removed to
  minimize breaking changes with the visual appearance of the titlebar when
  using openbox themes. As a result, and depending on your configuration,
  the titlebar height may change by a small number of pixels [#2189]
- Move input config `<scrollFactor>` to `<libinput>` section to allow
  per-device configuration of scroll factor (e.g. setting different scroll
  factors for mice and touchpads). [#2057]