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]