This file contains significant user-visible changes for each version.
For full changelog, use git log
.
The format is based on Keep a Changelog
On the master
branch we have moved across to the wlroots scene-graph
API and as a result there is likey to be a period of instability and
regression. A v0.5
branch has been created as a stable pre-scene-graph
branch, but it is not envisaged that new major features will be added on
that branch.
Date | Release notes | wlroots version | lines-of-code |
---|---|---|---|
2022-05-17 | 0.5.2 | 0.15.1 | 8829 |
2022-04-08 | 0.5.1 | 0.15.1 | 8829 |
2022-02-18 | 0.5.0 | 0.15.1 | 8766 |
2021-12-31 | 0.4.0 | 0.15.0 | 8159 |
2021-06-28 | 0.3.0 | 0.14.0 | 5051 |
2021-04-15 | 0.2.0 | 0.13.0 | 5011 |
2021-03-05 | 0.1.0 | 0.12.0 | 4627 |
This release contains significant refactoring to use the wlroots scene-graph API, particularly src/output.c, server-side-decoration and the layer-shell implementation. Many thanks to @Consolatis for some heavy lifting with this. Native language support has been added by @01micko.
- Presentation protocol
0.5.2 - 2022-05-17
This is a minor bugfix release mostly to ease packaging.
- Properly use system provided wlroots. Written-by: @eli-schwartz
0.5.1 - 2022-04-08
- Honour size increments from WM_SIZE_HINTS, for example to allow xwayland terminal emulators to be resized to a width/height evenly divisible by the cell size. Written-by: @jlindgren90
- Implement cursor input for overlay popups. Written-by: @Consolatis
- Do not raise xwayland windows when deactivating (issue #270). Written-by: @Consolatis
- Restore drag mouse-bindings and proper double-click (issues #258 and #259). Written-by: @Consolatis
- Implement cursor input for unmanaged xwayland surfaces outside their parent view. Without this menus extending outside the main application window do not receive mouse input. Written-by: @jlindgren90
- Allow dragging scrollbar or selecting text even when moving cursor outside of the window (issue #241). Written-by: @Consolatis
- Fix positioning of xwayland views with multiple queued configure events. Written-by: @Consolatis
- Force a pointer enter event on the surface below the cursor when cycling views (issue #162). Written-by: @Consolatis
- Fix qt application crash on touchpad scroll (issue #225). Written-by: @Consolatis
0.5.0 - 2022-02-18
As usual, this release contains a bunch of fixes and improvements, of which the most notable feature-type changes are listed below. A big thank you to @ARDiDo, @Consolatis and @jlindgren90 for much of the hard work.
- Render overlay layer popups to support sfwbar (issue #239)
- Support HiDPI on-screen-display images for outputs with different scales
- Reload environment variables on SIGHUP (issue #227)
- Add client menu
- Allow applications to start in fullscreen
- Add config option
<core><cycleViewPreview>
to preview the contents of each view when cycling through them (for example using alt-tab). - Allow mouse movements to trigger SnapToEdge. When dragging a view, move the cursor outside an output to snap in that direction.
- Unmaximize on Move
- Support wlroots environment variable
WLR_{WL,X11}_OUTPUTS
for running in running nested in X11 or a wlroots compositor. - Support pointer gestures (pinch/swipe)
- Adjust views to account for output layout changes
This release contains the following two breaking changes:
- Disabling outputs now causes views to be re-arranged, so in the context of idle system power management (for example when using swaylock), it is no longer suitable to call wlr-randr {--off,--on} to enable/disable outputs.
- The "Drag" mouse-event and the unmaximize-on-move feature require
slightly different
<mousebind>
settings to feel natural, so suggest updating any localrc.xml
settings in accordance withdocs/rc.xml.all
0.4.0 - 2021-12-31
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.
- Add support for the following wayland protocols:
pointer_constraints
andrelative_pointer
- mostly for gaming. Written-by: @Joshua-Ashtonviewporter
- needed for some games to fake modesets. Written-by: @Joshua-Ashtonwlr_input_inhibit
. This enables swaylock to be run. Written-by: @telentwlr_foreign_toplevel
. This enables controlling windows from clients such as waybar.idle
andidle_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>
withcontexts
(e.g.TitleBar
,Left
,TLCorner
,Frame
),buttons
(e.g.left
,right
), andmouse actions
(e.g.Press
,DoubleClick
). Modifier keys are also supported to handle configurations such asalt
+ mouse button to move/resize windows. (Written-by: @bi4k8, @apbryan) <libinput>
configuration. Written-by: @ARDiDo<resistance><screenEdgeStrength>
- Load default keybinds on
- 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 withescape
(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
andXCURSOR_SIZE
environment variables - Support submenus including inline definitions
- The config option
<lab><xdg_shell_server_side_deco>
has changed to<core><decoration>
(breaking change)
0.3.0 - 2021-06-28
Compile with wlroots 0.14.0
- Add config options
<focus><followMouse>
and<focus><raiseOnFocus>
(provided-by: Mikhail Kshevetskiy) - Do not use Clearlooks-3.4 theme by default, just use built-in theme
- Fix bug which triggered Qt application segfault
0.2.0 - 2021-04-15
Compile with wlroots 0.13.0
- Support wlr-output-management protcol for setting output position, scale and orientation with kanshi or similar
- Support server side decoration rounded corners
- Change built-in theme to match default GTK style
- Add labwc-environment(5)
- Call
wlr_output_enable_adaptive_sync()
ifLABWC_ADAPTIVE_SYNC
set
0.1.0 - 2021-03-05
Compile with wlroots 0.12.0 and wayland-server >=1.16
- Support xdg-shell and optionally xwayland-shell
- Show xbm buttons for maximize, iconify and close
- Support layer-shell protocol (partial)
- Support damage tracking to reduce CPU usage
- Support very basic root-menu implementation
- Re-load config and theme on SIGHUP
- Support simple configuration to auto-start applications, set environment variables and specify theme, font and keybinds.
- Support some basic theme settings for window borders and title bars
- Support basic actions including Execute, Exit, NextWindow, Reconfigure and ShowMenu