Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • debian/0.9.1-3
    labwc release 0.9.1-3 for unstable
    
    [dgit distro=debian split --quilt=baredebian]
    [dgit please-upload source=labwc version=0.9.1-3 upstream-tag=upstream/0.9.1 upstream=ca082e71727c18b914f592084b2067763d3bcfec]
    
  • debian/0.9.1-2
    labwc release 0.9.1-2 for unstable
    
    [dgit distro=debian split --quilt=baredebian]
    [dgit please-upload source=labwc version=0.9.1-2 upstream-tag=upstream/0.9.1 upstream=ca082e71727c18b914f592084b2067763d3bcfec]
    
  • debian/0.9.1-1
    labwc release 0.9.1-1 for experimental
    
    [dgit distro=debian split --quilt=baredebian]
    [dgit please-upload source=labwc version=0.9.1-1 upstream-tag=upstream/0.9.1 upstream=ca082e71727c18b914f592084b2067763d3bcfec]
    
  • 0.9.1
    labwc 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 by `wlroots-0.19.0` resulting 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_ICON` stride calculation
      [#2909] @jlindgren90
  • upstream/0.9.1
  • debian/0.9.0-1
    labwc release 0.9.0-1 for experimental
    
    [dgit distro=debian split --quilt=baredebian]
    [dgit please-upload source=labwc version=0.9.0-1 upstream-tag=0.9.0 upstream=4beee3851f75b53afc2e8699c594c0cc222115bd]
    
  • 0.9.0
    labwc 0.9.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>
    ```
  • 0.8.4
    labwc 0.8.4
    
    This release predominantly consists of bug-fixes, code simplification and
    usability improvements. Amongst the new features the most noteworthy is the
    addition of icons support in the window-switcher and client-list-combined-menu.
    
    A big thank you to @tokyo4j for leading the way on a lot of work in this
    release.
    
    Added
    
    - Support all pango font weight options (normal, thin, ultralight, light,
      semilight, book, medium, semibold, bold, ultrabold, heavy, ultraheavy) via
      config option `<theme><font><weight>` @spl237 [#2692] [#2693]
    - Add theme option `osd.workspace-switcher.boxes.border.width` @czkz [#2657]
    - Add theme option `osd.window-switcher.item.icon.size` @tokyo4j [#2651]
    - Localize desktop-entry application names used by the window switcher via
      `desktop_entry_name` or the `%n` specifier @tokyo4j [#2653]
    - Add `HideCursor` action @jp7677 [#2633]
    - Support application icons in window-switcher using `<field content="icon"/>`
      and use this by default. @tokyo4j [#2621]
    - Support application icons in client-list-combined-menu @tokyo4j [#2617]
    - Support the use of the keypad-enter key when using menu. @zeusgoose [#2610]
    - Show fallback icon in SSD titlebar when no `app_id` is set via
      `<theme><fallbackAppIcon>` @tokyo4j [#2599]
    
    Fixed
    
    - Enable overriding of `<touch>` configs to fix `--merge-config` bug @spl237
      [#2700]
    - Handle initially minimized windows (for example VSCode) to fix a focus and
      stacking bug @jlindgren90 [#2688] [#2627]
    - Minor window-switcher fix for box size and alignment @czkz [#2657]
    - Overwrite (not amend) configuration entries for `<windowSwitcher><fields>`
      and `<theme><titlebar><layout>` in support of using --merge-config @tokyo4j
      [#2669]
    - Consider `item.padding.y` when centering workspace name in window-
      switcher @tokyo4j [#2651]
    - Notify XWayland of correct window stacking order to fix issue with mouse
      scroll events and always-on-top windows. @tokyo4j [#2638]
    - Scale and transform magnifier in accordance with output settings @tokyo4j
      [#2645]
    - Allow only `Previous/NextWindow` action while window switching to prevent
      undefined behaviour like using `SendToDesktop` while window switching.
      @tokyo4j [#2613]
    - Harden window stacking order while window switching @tokyo4j [#2613]
    - Do not update cursor while window switching @tokyo4j [#2613]
    - Honor no content `<desktops><prefix>` node because users need a way to
      override the default "Workspace". @johanmalm [#2601] [#2613]
    
    Changed
    
    - Change default window-switcher layout to show icons and desktop-entry
      application name @tokyo4j [#2648]
    - If `<focus><followMouse>` is set to yes, the focus is now updated only when
      the cursor enters a window content, not when the cursor moves within the
      whole window including the titlebar. This makes the behaviour consistent with
      that of kwin, xfwm4 and openbox @tokyo4j [#2652]
    - Show magnifier only on one output to simplify handling of different scales
      and transforms. @tokyo4j [#2645]
    - Center labwc.svg logo vertically @jlindgren90 [#2619]
    - Increase default `<snapping><range>` to 10 to make it easier to snap windows
      on the edge between two monitors. @johanmalm [#2602] [#2608]
  • debian/0.8.3-1
    labwc Debian release 0.8.3-1
    
  • 0.8.3
    labwc 0.8.3
    
    The eye-catching new features of this release are undoubtedly:
    1. Support for the `ext-workspace` protocol with big thanks to @Consolatis
    2. Menu enhancements including icons and dynamic root-menus. Credits here go to
       @Consolatis, @tokyo4j and @johanmalm for improvements to both backend buffer
       managements and front end menu mechanics.
    
    However - on the whole - the main effort of this release has gone into
    stability, usability and performance fixes, and it really feels like we have
    matured nicely against the wlroots 0.18 series.
    
    Notes to package maintainers:
    - This version introduces the ext-workspace protocol which breaks xfce4-panel
      4.20.0. There is a fix in subsequent releases so make sure xfce4-panel is
      shipped at >= 4.20.1.
    
    Added
    
    - Add config options `<resize><cornerRange>` and `<resize><minimumArea>` [#2529]
    - Menu icons support [#2509]
    
    ```xml
    <menu>
      <showIcons>yes</showIcons>
    </menu>
    ```
    
    - Support toplevel pipemenus [#2238] [#2239]
    
    ```xml
    <?xml version="1.0"?>
    <openbox_menu>
      <menu id="root-menu" label="" execute="labwc-menu-generator -p -I" />
    </openbox_menu>
    ```
    
    - Add `<theme><fallbackAppIcon>` to specify the icon name to be used when
      lookups for an application icon have failed [#2518]
    - Use 'labwc' directory for themes as well as 'openbox-3' [#2488]
    - Add default Alt-Shift-Tab keybind for `PreviousWindow` [#2477]
    - Add config option `<core><autoEnableOutputs>` to allow users to avoid
      automatically enabling outputs at startup and when new outputs are connected.
      With autoEnableOutputs disabled, tools such as kanshi can be used to give
      finer-grained control of which outputs are enabled, which may be useful to
      avoid re-enabling outputs that disconnect and reconnect during powersave
      [#2458]
    - Add WarpCursor action. Written-by: @orfeasxyz [#2118]
    - Support ext-workspace protocol [#2365]
    
    Fixed
    
    - Prevent black flash (caused by unnecessary output commit without buffer) when
      repeatedly calling `wlopm --on` [#2580]
    - Set custom output mode on `wlopm --on` to work around a wlroots issue:
      https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3946 [#2578]
    - Handle layer-shell unmap without any outputs left [#2577]
    - Fix some odd, inconsistent behaviour with resize edges [#2529]
    - Cleanup overlay timer on exit [#2574]
    - Fix unexpected behavior when a menu is opened from another menu [#2537]
    - Taking into account SSD margin in `MoveTo` action [#2469] [#2563]
    - Fix UAF caused by trying to update xcursor in an output destroy-handler
      [#2539] [#2560]
    - Send wlr-foreign-toplevel `output_enter` on initialization to fix a bug which
      causes missing taskbar items in Waybar when configured to show windows per
      output. [#2550]
    - Use subsurface as reference for out-of-surface cursor movement [#2542] [#2547]
    - Dynamically look up window icons in server-side-deco titlebar for output
      scales [#2518]
    - Do not leak bound scroll events from touchpad to clients in some conditions
      [#2516]
    - Ignore duplicated buttons in `<titlebar><layout>` rather than ignoring all of
      it [#2524]
    - Set repeat information for virtual keyboards [#2513]
    - Honour modifier state of virtual keyboards when processing mousebinds. Helps
      some use-cases under wayvnc [#2511]
    - Accept uppercase icon endings
    - IME: fix stuck Ctrl when pressed Ctrl+F in Firefox with Fcitx5 [#2498]
    - Fix invisible cursor on application after reconfigure [#2499]
    - Fix abort() on non-ARGB32 PNG file [#2495]
    - Ignore `wlr_output_state.mode/custom_mode` except for client request [#2486]
    - Cancel keyboard keybind-repeat on reconfigure [#2473]
    - Send initial wlr-foreign-toplevel pre-map state [#2460]
    - Fix NULL `string_prop` crash when `app_id` is NULL [#2453]
    - Fix scaling for rendering large image in non-square rectangle [#2451]
    - Fix cursor focus when menu is closed by clicking its border [#2443]
    - Update pointer focus on xdg-popup/layer popup destruction to fix bug where
      closing a popup did not move the pointer focus to the main toplevel until the
      cursor was moved. [#2443]
    - Improve algorithm for menu placement with xdg-positioner [#2408]
    - Do not forward IME key-release without correspinding key-press to avoid stuck
      keys [#2437]
    
    Changed
    
    - Make window switcher more Openbox-like in terms of key processing. The shift
      key no longer inverts the direction of window switching, so to keep the
      original behavior, alt-shift-tab has been added as a default keybind to cycle
      to the previous window [#2477]
    - Do not set numlock by default, only set on|off if user specifically requests
      it in the config file [#2483]
    - Demote libsfdo error-logging to `WLR_INFO` to avoid logging issues with
      .desktop files as errors [#2456]
    - Always send modifier release events. This means that when a keybind is
      triggered while focusing on an application, the key-release event of the
      modifier key is now sent to the application. This fixes the problem of stuck
      modifier keys in some applications including Blender and wlfreerdp. Note that
      this change makes existing keybinds with Alt key show Firefox's menu bar. For
      those who don't want to make those keybinds interfere with Firefox's menu bar,
      we recommend replacing Alt key (e.g. "A-s") with Win key (e.g. "W-s") in the
      keybinds. [#2455]
    - Removed `wantAbsorbedModifierReleaseEvents` window rule as it's no longer
      needed [#2455]
    - Clear the keyboard/pointer focus while a window is dragged, the window
      switcher is activated or a menu is opened. As a result, with followMouse="yes"
      and followMouseRequiresMovement="no" in rc.xml, keyboard-focus semantics
      have subtly changed when using the window-switcher. [#2455]
  • upstream/0.8.3
  • debian/0.8.2-3
    labwc Debian release 0.8.2-3
    
  • debian/0.8.2-2
    labwc Debian release 0.8.2-2
    
  • debian/0.8.2-1
    labwc Debian release 0.8.2-1
    
  • debian/0.8.1-2
    labwc Debian release 0.8.1-2
    
  • 0.8.2
    labwc 0.8.2
    
    This is a shorter release cycle compared with the usual 10-week one because it
    contains a significant number of stability and cleanliness fixes which warrant
    packaging.
    
    We do not normally describe behind-the-scenes work in this log, but will mention
    two here as an exception:
    
    1. A clean run with gcc/clang memory leak check has been achieved. Thanks to
       @tokyo4j for fantastic work with this [#2331]
    2. A buffer-sharing mechanism has been merged to improve both processor and
       memory usage in the long term. Credits to @tokyo4j and @Consolatis for this
       one. [#2363]
    
    Notes to package maintainers:
    
    - The wlroots dependency has been increased to `0.18.1` to avoid a crash when
      using ext-foreign-toplevel-list protocol.
    - It is also advisable to use `0.18.2` as soon as possible to fix a crash
      triggered when the xwayland server closes during a drag-and-drop with an
      XWayland client.
    
    Added
    
    - Add support for xdg-foreign-v1 and xdg-foreign-v2 protocols [#2400]
    - Add window rule to send release-events of modifiers which are part of
      keybinds. This supports clients (like blender) that want to see modifier
      release events even when they are part of a keybinds. [#2377]
    
    ```xml
    <windowRules>
      <windowRule identifier="blender" wantAbsorbedModifierReleaseEvents="yes"/>
    </windowRules>
    ```
    
    - Support menu borders [#2376]
    
    ```
    menu.border.width: 1
    menu.border.color: #aaaaaa
    ```
    
    - Add conversion specifier `%n` to the window-switcher `<field>` config option
      to show desktop entry name in the window-switcher. Written-by: @jp7677 [#2360]
    
    ```xml
    <windowSwitcher>
      <fields>
        <field content="custom" format="%n" width="25%"/>
        <field content="title" width="75%"/>
      </fields>
    </windowSwitcher>
    ```
    
    - Add hold gestures. @jp7677 [#2326]
    - Support ext-foreign-toplevel-list protocol [#2072]
    - Support additional window rule conditions including `shaded`, `maximized`,
      `iconified`, `focused`, `omnipresent`, `desktop`, `tiled` and `tiled_region`.
      This also works for `If` and `ForEach` queries. @orfeasxyz @ahesford [#2245]
    - Add mouse emulation for touch devices. @spl237 [#2277]
    - Improve handling of touch events. @jp7677 [#2273]
      This includes:
        - Hide the cursor on touch input and keep the cursur invisible until
          pointer or tablet input
        - Close xdg-popups on touch down
        - Notify idle-manager on touch down/up
        - Clear pointer focus on touch input to avoid pointer focus interfering
          with touch input, like showing hover effect on unexpected locations
        - Move touch only with one touch point - in other words do not move the
          cursor when more than one finger is down
        - Warp cursor to touch coordinates for consistent behaviour with
          non-touch capable surfaces including the desktop
    - Set environment variable `LABWC_VER` with current compositor version.
      @01micko [#2257]
    - Broadcast keyboard modifiers to all clients rather than just the one with
      keyboard focus. [#2274]
      This enables:
        - Clients such as panels to display the current keyboard layout without
          introducing new wayland protocols or other IPC.
        - Unfocused xdg-shell clients to understand button press with keyboard
          modifiers for example Ctrl+click.
    
    Fixed
    
    - Fix crash caused by `rc.xml` `<touch>` options being specified as
      elements rather than attributes. [#2412]
    - Fix `ShowMenu` action position with x/y arguments in multi-monitor setup.
      [#2409]
    - Block privileged protocols for sandboxed clients [#2398]
    - Fix incorrect focus behaviour when switching between workspaces with
      omnipresent windows open [#2335]
    - Fall back to loading icon based on app-id when `Icon` defined in .desktop file
      can not be loaded [#2361]
    - Fix regression introduced with `0.8.1` to allow negative values for theme
      option `menu.overlap` [#2356]
    - Ensure output is usable before setting adaptive sync [#2337] [#2338]
    - Fix `menu.title.text.justify: right` not working [#2336]
    - Keep focus on omnipresent windows when switching workspaces [#2329]
    - Skip painting output when session is not active. @enometh @Madhu [#2249]
    - Ignore variable assignments > 1 KiB in environment files to guard against
      recursive constructs like FOO=$FOO:bar which would grow on each reconfigure.
      [#2325]
    - Improve support for non-compliant .desktop files by matching partial strings
      to handle for example app-id="gimp-2.10" with file "gimp.desktop". @spl237
      [#2266]
    - Correctly center menu opened with `<position {x,y}="center">` @tokyo4j [#2319]
    - Allow pointer speed of -1.0. @spl237 [#2321]
    - Fix off-by-one bug in `buf_add_char()` [#2313]
    - Fix menu separator-line padding regression introduced in `0.8.1`. @domo141
      [#2291]
    - Avoid permanent disabling of tearing due to rejected commits caused by the
      cursor plane not allowing async page flips which causes tearing page flips
      to be rejected if the cursor is moved. @RicArch97 [#2295]
    - Use `MenuHeader` font height in separators with labels. @domo141 [#2276]
    
    Changed
    
    - Set xwaylandPersistence default value to `yes` when compiled with wlroots
      <0.18.2. This prevents a bug which has the potential to crash the compositor
      when performing a drag-and-drop action at the same time as the XWayland server
      is shutting down. [#2371] [#2414] [#2420]
    - Set default window placement policy to `cascade` instead of `center` [#2345]
    
    ```xml
    <placement>
      <policy>cascade</policy>
    </placement>
    ```
    
    - Set default values of theme option `window.*.border.color` to `#aaaaaa`. This
      makes the colors of window borders and titlebar different, but will let
      `menu.border.color` inherit `window.active.border.color` just like Openbox
      does, without making the menu borders around a selected menu item invisible.
      [#2376]
    - Invert the y-offset of submenus applied by `menu.overlap.y` to (i) follow
      Openbox's behavior and (ii) behave as already described in our own
      documentation. [#2380]
  • upstream/0.8.2
  • debian/0.8.1-1
    labwc Debian release 0.8.1-1
    
  • 0.8.1
    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]
  • upstream/0.8.1