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