Skip to content
labwc 0.7.1

Added

- Support libinput option sendEventsMode to allow enabling/disabling devices.
  Co-Authored-By: @Sachin-Bhat

```xml
<libinput>
  <device>
    <sendEventsMode>yes|no|disabledOnExternalMouse</sendEventsMode>
  </device>
</libinput>
```

- Add click method libinput option. Written-by: @datMaffin

```xml
<libinput>
  <device>
    <clickMethod>none|buttonAreas|clickfinger</clickMethod>
  </device>
</libinput>
```

- Add `data/labwc.svg` & `data/labwc-symbolic.svg`, and specify icon name
  in labwc.desktop to enable Display Managers to show an icons for labwc.
- Expose output configuration test to clients. For example, this enables
  `wlr-randr --dryrun`
- Add window-edge resistance for interactive moves/resizes and support negative
  strengths to indicate attractive snapping. Written-by: @ahesford

```xml
<resistance>
  <screenEdgeStrength>-20</screenEdgeStrength>
  <windowEdgeStrength>-20</windowEdgeStrength>
</resistance>
```

- Set keyboard layout on reconfigure. Issue #1407
- Reset keyboard-layout group (index) for each window on reconfigure if
  the keymap has changed.
- Support merging multiple config files with the --merge-config command
  line option. Issue #1406
- Add config option to map touch events to a named output (display).
  Optionally, make this only apply to specific named devices.
  Written-by: @jp7677

```xml
<touch mapToOutput=""/>
<touch deviceName="" mapToOutput=""/>
```

- Add tablet support including:
  - Mapping of tablet to output (display)
  - Emulation of cursor movement and button press/release
  - Configuration of area and rotation
  Written-by: @jp7677 @Consolatis

```xml
<tablet mapToOutput="HDMI-A-1" rotate="90">
  <area top="0.0" left="0.0" width="0.0" height="0.0" />
  <map button="Tip" to="Left" />
  <map button="Stylus" to="Right" />
  <map button="Stylus2" to="Middle" />
</tablet>
```

- Add tearing support. #1390. Written-by: @Ph42oN @ahesford
- Add configuration support for mouse buttons `Side`, `Extra`, `Forward`,
  `Back` and `Task`. Written-by: @jp7677
- config: allow `<libinput><device>` without category attribute to define a
  `default` profile because it is more user-friendly and intuitive.
- Add a configuration option to enable adaptive sync only when an application
  is in fullscreen mode. Written-by: @Ph42oN
- Add `touchpad` libinput device type to increase configuration flexibility,
  for example allowing `naturalScroll` on touchpads, but not on regular pointer
  devices such as mice. Written-by: @jmbaur
- Add actions:
  - `AutoPlace` (by @ahesford)
  - `MoveToOutput`, `FitToOutput` (by @jp7677)
  - `Shade`, `Unshade`, `ToggleShade` (by @ahesford @Consolatis)
- Add config option `<placement><policy>` with supported values `center`,
  `cursor` and `automatic`. The latter minimizes overlap with other windows
  already on screen and is similar to Openbox's smart window placement.
  The placement policies honour `<core><gap>`.
  Written-by: @ahesford #1312

```xml
<placement>
  <policy>center|automatic|cursor</policy>
</placement>
```

Fixed

- Delay popup-unconstrain until after first commit in response to a changed
  wlroots 0.17 interface and to get rid of the error message below. Issue #1372

    [types/xdg_shell/wlr_xdg_surface.c:169] A configure is scheduled for an uninitialized xdg_surface

- Notify clients about configuration errors when changing output settings.
  Issue #1528.
- Fix output configuration bug causing compositor crash when refresh rate is
  zero. Issue #1458
- Fix disappearing cursor bug on view destruction. Issue #1393
- Use used specified config-file (using -c command line option) on
  reconfigure.
- Assign outputs to new views on surface creation instead of mapping, and
  notify the client of the preferred output scale when doing so. This fixes an
  issue with foot: https://codeberg.org/dnkl/foot/issues/1579
  Written-by: @ahesford
- Cancel key repeat on vt change to fix crash on VT change on FreeBSD.
  Issue #1424
- Fix crash when a minimized fullscreen window closes. Written-by: @bi4k8
- Execute menu actions after closing menus so that menu entries can issue
  `wtype` commands to the surface with keyboard-focus. Issue #1366
- Try to honor original window geometry on layout changes.
- Fix virtual keyboard bug experienced with `wlrctl keyboard type xyz`. Do not
  process virtual keyboard keycodes (just the keysyms). Issue #1367
- Sync xdg-shell client `view->pending` when applying geometry to fix issue
  caused by applications choosing not respond to pending resize requests either
  by ignoring them or substituting alternative sizes (for example, when mpv
  constrains resizes to keep its aspect ratio fixed). Written-by: @ahesford

Changed

- Make `MoveToCursor` honour `<core><gap>`. Issue #1494
- Add `Roll Up/Down` client-menu entry for `ToggleShade`
- When a Wayland-native window is snapped to a screen edges or user-defined
  region, labwc will notify the application that it is "tiled", allowing the
  application to better adapt its rendering to constrained layouts. Windows
  with client-side decorations may respond to these notices by squaring off
  corners and, in some cases, disabling resize abilities. This can be disabled
  with:

```xml
<snapping>
  <notifyClient>never</notifyClient>
</snapping>
```

  or limited to only edge-snapped or only region-snapped windows. See the
  labwc-config(5) manual page for more information.

- When a window is dragged from a snapped position (either a screen edge or a
  user-defined region), the snapped state is now discarded as soon as the
  dragging begins. This means that dragging from a snapped position to a
  maximized state (with the `topMaximize` option enabled) and then
  un-maxmimizing the window will restore the window to its size and position
  *before* it was snapped. In previous releases, un-maximizing would restore
  the window to its snapped state. To preserve the snapped state of a window
  when maximized, use the Maximize window button or the `ToggleMaximize`
  action.

- The new windowEdgeStrength setting makes windows resist interactive moves and
  resizes across the edges of other windows. This can be disabled with:

```xml
<resistance>
  <windowEdgeStrength>0</windowEdgeStrength>
</resistance>
```

- Run menu actions on button release intead of press.
- Constrain window size to that of usable area when an application is started.
  Issue #1399
- Support showing the full `app_id` in the window switcher. Users with a custom
  `windowSwitcher` configuration should use the `trimmed_identifier` field
  label to preserve existing behavior; the `identifier` field now refers to the
  full `app_id`. Consult the labwc-config(5) manual page for more details.
  Issue #1309