labwc 0.4.0 Compile with wlroots 0.15.0 This release contains lots of internal changes, fixes and new features. A big thank you goes out to @ARDiDo, @bi4k8, @Joshua-Ashton, @jlindgren90, @Consolatis, @telent and @apbryan. The most notable feature-type changes are listed below: - The config option `<lab><xdg_shell_server_side_deco>` has changed to `<core><decoration>` (breaking change) - Add support for the following wayland protocols: - `pointer_constraints` and `relative_pointer` - mostly for gaming. Written-by: @Joshua-Ashton - `viewporter` - needed for some games to fake modesets. Written-by: @Joshua-Ashton - `wlr_input_inhibit`. This enables swaylock to be run. Written-by: @telent - `wlr_foreign_toplevel`. This enables controlling windows from clients such as waybar. - `idle` and `idle_inhibit` (Written-by: @ARDiDo) - Support fullscreen mode. - Support drag-and-drop. Written-by: @ARDiDo - Add the following config options: - Load default keybinds on `<keyboard><default />` - `<keyboard><repeatRate>` and `<keyboard><repeatDelay>` - Specify distance between views and output edges with `<core><gap>` - `<core><adaptiveSync>` - Set menu item font with `<theme><font place="MenuItem">` - Allow `<theme><font>` without place="" attribute, thus enabling simpler config files - Support `<mousebind>` with `contexts` (e.g. `TitleBar`, `Left`, `TLCorner`, `Frame`), `buttons` (e.g. `left`, `right`), and `mouse actions` (e.g. `Press`, `DoubleClick`). Modifier keys are also supported to handle configurations such as `alt` + mouse button to move/resize windows. (Written-by: @bi4k8, @apbryan) - `<libinput>` configuration. Written-by: @ARDiDo - `<resistance><screenEdgeStrength>` - Support for primary selection. Written-by: @telent - Support 'alt-tab' on screen display when cycling between windows including going backwards by pressing `shift` (Written-by: @Joshua-Ashton) and cancelling with `escape` (Written-by: @jlindgren90) - Add the following theme options: - set buttons colors individually (for iconify, close and maximize) - `window.(in)active.label.text.color` - `window.label.text.justify` - OSD colors - Show application title in window decoration title bar - Handle double click on window decoration title bar - Support a 'resize-edges' area that is wider than than the visible window decoration. This makes it easier to grab edges to resize windows. - Add window actions 'MoveToEdge', 'ToggleMaximize', 'Close', 'Iconify', 'ToggleDecorations', 'ToggleFullscreen', 'SnapToEdge', 'Focus', 'Raise', 'Move', 'MoveToEdge', 'Resize', 'PreviousWindow', 'ShowMenu' - Add labwc.desktop for display managers - layer-shell: - Take into account exclusive areas of clients (such as panels) when maximizing windows - Support popups - Handle xwayland `set_decorations` and xdg-shell-decoration requests. Written-by: @Joshua-Ashton - Handle view min/max size better, including xwayland hint support. Written-by: @Joshua-Ashton - Handle xwayland move/resize events. Written-by: @Joshua-Ashton - Support audio and monitor-brightness keys by default - Catch ctrl-alt-F1 to F12 to switch tty - Support `XCURSOR_THEME` and `XCURSOR_SIZE` environment variables - Support submenus including inline definitions