Skip to content
labwc 0.7.3

Following a couple of big releases, this one feels like more steady with lots of
focus on bug fixes and stability. In terms of new features the most noteworthy
ones include improved tablet support (by @jp7677), `Super_L` on-release keybinds
(by @spl237 from the Raspberry Pi teams) and the screen magnifier which was a
joint effort by @spl237 and @Consolatis.

Added

- Add config option `<core><xwaylandPersistence>` to support keeping XWayland
  alive even when no clients are connected. PR #1961
- Support xdg-shell protocol v3 with popup repositioning. #1950
  Also see https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3514
  which adds support on the wlroots side.
- Add action `ToggleTabletMouseEmulation`. Written-by: jp7677 PR #1915
- Implement `<resize><drawContents>`. With thanks to @tokyo4j PR #1863
- Add `onRelease` option to `<keybind>` in support of binding `Super_L` to a
  menu. Written-by: @spl237 PR #1888
- Add initial support for `security-context-v1` (user configurable blocklists
  are still missing). Written-by: @nesteroff PR #1817
- Add support for `tablet-v2-manager`. Written-by: @jp7677 PR #1678 #1882
- Add action `UnMaximize`. PR #1831
- Support multiple IME popups. PR #1823
- Add `All` context for mouse bindings which need to be handled irrespective of
  the mouse pointer location. This enables Super+mouse-scroll to change
  magnification. Written-by: @spl237 PR #1768
- Add `SetDecorations` action. Written-by: @xi PR #1733
- Add `policy` option to `AutoPlace` action. PR #1784
- Add window type filter to If-actions. Written-by: @xi PR #1731
- Add screen magnifier which can be controlled with the `ZoomIn`, `ZoomOut` and
  `ToggleMagnify` actions. Written-by: @spl237 PR #1774

Fixed

- When looking for menu.xml, go through all paths rather than just giving up
  if not found in the first path searched. This makes it consistent with how
  other config/theme files are handled. PR #1971
- Fix memory leaks in theme.c and menu.c. PR #1971
- Fix session-lock bugs related to keyboard focus. PR #1952
  - Clear focused surface on lock
  - Restore focused view on unlock
- Fix memory leak in ssd/ssd-shadow.c PR #1954
- Respect `menu.overlap.x` when using pipemenus. PR #1940
- Do not try to restore windows to very small width/height on unmaximize.
  This fixes a bug with Thonny (Python IDE made with Tk). PR #1938
- Conditially set squared server-side decoration (SSD) corners when a view is
  tiled. Written-by: @jp7677 PR #1926
- Remember initial direction when starting window-cycling with `PreviousView`.
  Also make the toggling of direction when shift is pressed relative to the
  initial direction. For example if W-j is bound to PreviousWindow, subsequent
  key presses will continue to cycle backwards unless shift is also pressed.
  Written-by: @droc12345 PR #1919
- Show dnd icon above layer-shell surfaces. PR #1936
- Initialize locale after reading environment files so that client-menu items
  and workspace names follow the env var `LANG` should that be set in
  `~/.config/labwc/environment` (which is not recommended, but we prefer to
  handle it properly if it is). PR #1927
- Fix crash on `menu.xml` containing `<item>` without a parent `<menu>`.
  PR #1907
- Reset XWayland cursor image on cursor theme reload to avoid trying to read
  destroyed pixel data. PR #1895
- Prevent child views from opening outside of usable area. PR #1878
- Fix IME popups issues (flicker when popup surface is initially mapped
  and incorrectly showing multiple popups). PR #1872
- Rate-limit cursor-driven resize events based on monitor's refresh rate. This
  fixes the lag when resizing windows of some apps on XWayland, for example
  Chromium and Steam. PR #1861
- Session-lock: fix flashing & update cursor shape. PR #1858
- Remove tearing-controller listeners on destroy. PR #1853
- Handle invalid `ForEach` and `If` action cofigs. PR #1838
- Delay startup of applications until event loop is ready. This avoids race
  conditions when using autostart scripts that trigger a labwc SIGHUP. #1588
- With `SendToDesktop` action follow=no option, ensure the topmost window is
  focused. #1800
- Prevent XWayland from using incorrect keymap. #1816
- Allow keybinds containing the hyphen key to be defined with `-`.
  Written-by: @toast #1811
- Show/hide `top` layer more smartly. Before this commit, `top` layers were
  hidden whenever there was a fullscreen window in the corresponding output.
  With this commit, `top` layers are hidden only when there is a fullscreen
  window without other windows above it in the corresponding output.

Changed

- Remove subprojects/seatd.wrap as no longer needed
- Action `MoveToCursor` is deprecated in favour of:
  `<action name="AutoPlace" policy="cursor"/>`.