+ Added
- `<windowSwitcher order="focus|age"/>` to sort windows
by focus or age
- New snapping config:
`<snapping><range inner="" outer="">`
- `direction` option for `Resize` action
(up-left, right, down, etc.)
- `sendEventsMode` option to disable keyboard input
- Window switcher OSD options:
+ `thumbnailLabelFormat`
+ `output="all|focused|cursor"`
- Click-to-focus in window switcher OSD
- Support for `xdg-dialog` protocol
- `--keyboard-focus` option for labnag
- Option to unshade windows during window switching
+ Changed
- Alt-Tab now selects the previously focused window
- Deprecated old `<snapping><range>` syntax
- Refactored window switcher configuration
- OSD placement now centered on output
+ Fixed
- Desktop files with dots in filenames
- Incorrect cursor motion from absolute events
- Mouse issues with constrained surfaces
- XCB race between Raise and input
- Window switcher layout and geometry issues
OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/labwc?expand=0&rev=39
+ Added
- Allow `SnapToEdge` and `ToggleSnapToEdge` to combine two
cardinal directions with the config option
`combine="yes|no"`.
- Support `Border` context for mousebinds as an alias for
`Top`...`BRCorner` to make configuration easier.
- Add window-switcher mode with thumbnails. This can be
enabled with: `<windowSwitcher style="thumbnail">`.
- Add `toggle` option to `GoToDesktop` action. This has the
effect of going back to the last desktop if already on
the target.
- Add `<theme maximizedDecoration="titlebar|none"/>` to
allow hiding titlebar when window is maximized.
- Use client-send-to-menu as 'Workspace' submenu in built-in
client-menu.
- Allow overwriting submenu icon to increase flexibility
and enhance Openbox compatibility.
- Allow client-{list-combined,send-to}-menu as submenu of
static menu.
- Add `labnag` (a dialog client with message and buttons)
and associated `<prompt>` option in 'If' actions.
- Support config option `<core><promptCommand>`.
- Allow snapping to corner edges during interactive move
with associated config options `<snapping><cornerRange>`.
- Support new values "up-left", "up-right", "down-left"
and "down-right" with `<action name="(Toggle)SnapToEdge"
direction="[value]">` and `<query tiled="[value]">`.
- XML parsing improvements:
- Support nested `If` and `ForEach` actions
- Parse CDATA as text all nodes
- Remove ordering constraint of attributes in
`<keybind>`, `<mousebind>` and `<windowRule>`
- `If` actions now work for menus
- For menus, the `name` argument no longer has to be the
first argument of `<action>`; and the `label` argument
no longer has to be the first argument of `<item>`
- Toggle mousebinds with the `ToggleKeybinds` action
- Add support for direction value 'any' with tiled queries.
This allows users to query for any snap directions
without using multiple query statements
+ Fixed
- On detecting broken icon theme, fall back on 'hicolor'.
- Restore initially-maximized window position after
unplug/plug.
- Fix large client-side icon not being loaded when the
rendered icon size is larger than icon sizes from the
client.
- Improve debug logging for configuring input devices.
- Fix false positives when matching desktop entries.
- Prevent accidental downcasting of scale in
scaled-icon-buffer to avoid blurry icons on non-integer
scales and a cairo assert when using a output scale < 1.
- Fix xdg-shell windows moving between outputs due to
configure timeout.
- Fix segfault with toplevel `<separator>` in `menu.xml`.
- Prevent hi-res mice triggering scroll actions too often.
+ Changed
- Change default keybind `W-<arrow>` to combine cardinal
directions to support resizing of windows to fill a
quarter of an output. This only affects users who do not
use an `rc.xml` or use the `<keyboard><default/>` option.
Previous behavior can be restored by setting
`combine="no"`.
- `Focus` and `Raise` on window border press to align with
Openbox behavior.
- On interactive resize, only un-maximize the axis/axes
that are being resized.
- Change theme setting `osd.window-switcher.*` to
`osd.window-switcher.style-classic.*`. Backward
compatibility is preserved.
- In client-list menu, add brackets around the titles of
any minimised windows.
- Respect client-initiated window resize of non-maximized
axis, for example remember the width of
vertically-maximized window resizing itself
horizontally.
- Remember position of window along non-maximized axis
during interactive move.
- Restore default libinput device values on reconfigure
with empty value.
- Change `If` action when used without a focused window to
execute the `<else>` branch (previously it was just
ignored).
- Make `autoEnableOutputs=no` apply only to drm outputs.
- Take into account `<core><gap>` for edge and region
overlays.
OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/labwc?expand=0&rev=37
+ This is an earlier-than-usual release containinig bug fixes
only:
- Prevent interaction with un-initialized xdg-shell windows
after unmap to fix a bug exposed by wlroots-0.19.0 resulting
in a compositor crash in certain (unusual) circumstances
- Fix double-free in img_svg_render() failure path
- Fix swapped width/height in XWayland client _NET_WM_ICON
stride calculation
OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/labwc?expand=0&rev=35
- Update to version 0.9.0:
+ The main focus has been to port labwc to wlroots 0.19 and fix
associated issues. There is a regression warning worth noting
for the switch to wlroots 0.19:
- Menu item can no longer be activated in any Gtk applications
with a single press-drag-release mouse action.
- VR headset support is disabled when compiled with wlroots
0.19.0 to work around a bug on the wlroots side which is
expected to be fixed in wlroots 0.19.1
+ Read completely changelog on NEWS.md
+ Change pkgconfig(wlroots-0.18) BuildRequires to
pkgconfig(wlroots-0.19)
+ Fix all xdg-portal open if open thunar (labwc only need wl+gtk)
- Update libsfdo to version 0.1.4:
+ sfdo-version.h with macros indicating libsfdo version.
+ More descriptive libsfdo-desktop-file errors.
+ libsfdo-icon loader is slightly more robust now.
+ Documentation improvements.
OBS-URL: https://build.opensuse.org/request/show/1292336
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/labwc?expand=0&rev=12
+ The main focus has been to port labwc to wlroots 0.19 and fix
associated issues. There is a regression warning worth noting
for the switch to wlroots 0.19:
- Menu item can no longer be activated in any Gtk applications
with a single press-drag-release mouse action.
- VR headset support is disabled when compiled with wlroots
0.19.0 to work around a bug on the wlroots side which is
expected to be fixed in wlroots 0.19.1
+ Read completely changelog on NEWS.md
+ Change pkgconfig(wlroots-0.18) BuildRequires to
pkgconfig(wlroots-0.19)
+ Fix all xdg-portal open if open thunar (labwc only need wl+gtk)
- Update libsfdo to version 0.1.4:
+ sfdo-version.h with macros indicating libsfdo version.
+ More descriptive libsfdo-desktop-file errors.
+ libsfdo-icon loader is slightly more robust now.
+ Documentation improvements.
OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/labwc?expand=0&rev=32
* This release predominantly consists of bug-fixes, code
simplification and usability improvements, read completely on
NEWS.md.
* Add new features the most noteworthy is the addition of icons
support in the window-switcher and client-list-combined-menu.
OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/labwc?expand=0&rev=30
* Add titlebar window icons and layout configuration
* Support for the cosmic-workspace protocol and the openbox
inspired client-list-combined-menu for a better user experience
with workspaces.
- add libsfdo submodule: to enable titlebar window icons and layout
OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/labwc?expand=0&rev=26
+ The main focus in this release has been to port labwc to
wlroots 0.18 and to grind out associated regressions.There are
a couple of regression warnings when using wlroots 0.18:
- There appears to be an issue with increased commit failures,
particularly with intel drivers. If this turns out to be an
issue for anyone please try running with WLR_DRM_NO_ATOMIC=1.
- Fullscreen VRR is broken but should be fixed once wlroots
0.18.1 is released.
+ Added
- Add options fullscreen and fullscreenForced.
- Optionally allow keybindings when session is locked, which
for example can be useful for volume settings.
- Add resistance when dragging tiled/maximized windows.
- Implement support for renderer loss recovery.
- Support xinitrc scripts to configure XWayland server on
launch.
- Add theme option window.button.width to set window button
size.
- Add cascade placement policy.
- Support relative tablet motion.
+ Fixed
- Make tablet rotation follow output rotation.
- Fix error when launching windowed Chromium.
- Fix empty XKB_DEFAULT_LAYOUT bug.
- Take into account CSD borders when unconstraining XDG popups.
- Choose xdg-popup output depending on xdg-positioner.
- Fix wlroots-0.18 regression causing flicker with some layer-
shell clients like fuzzel on launch.
- Fix incorrect condition in server-side-deco logic.
- Fix flicker of snapped windows in nested session.
- Fix tearing with atomic mode setting.
- Handle initially maximized and fullscreen xdg-shell windows
better.
- Set initial geometry of maximized and fullscreen XWayland
windows in the map_request handler to avoid visual glitches
with some apps.
- Disable pango glyph position rounding to avoid text geometry
jump around when changing scale.
+ Changed
- Make windows stay fullscreen when associated output is
disconnected.
- Change wlroots-devel BuildRequires to pkgconfig(wlroots-0.18)
- Fix conditional xwayland on wlroots
OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/labwc?expand=0&rev=23
- Update to version 0.7.3
+ Added
- Add config option `<core><xwaylandPersistence>` to support
keeping XWayland alive even when no clients are connected.
- Support xdg-shell protocol v3 with popup repositioning.
which adds support on the wlroots side.
- Add action `ToggleTabletMouseEmulation`.
- Implement `<resize><drawContents>`.
- Add `onRelease` option to `<keybind>` in support of binding
`Super_L` to a menu.
- Add initial support for `security-context-v1`
(user configurable blocklists are still missing).
- Add support for `tablet-v2-manager`.
- Add action `UnMaximize`.
- Support multiple IME popups.
- Add `All` context for mouse bindings which need to be
handled irrespective of the mouse pointer location. This
enables Super+mouse-scroll to change magnification.
- Add `SetDecorations` action.
- Add `policy` option to `AutoPlace` action.
- Add window type filter to If-actions.
- Add screen magnifier which can be controlled with the
`ZoomIn`, `ZoomOut` and `ToggleMagnify` actions.
+ Fixed
- When looking for menu.xml, go through all paths rather than
just giving up if not found in the first path searched.
This makes it consistent with how other config/theme files
are handled.
- Fix memory leaks in theme.c and menu.c.
- Fix session-lock bugs related to keyboard focus.
+ Clear focused surface on lock
+ Restore focused view on unlock
- Fix memory leak in ssd/ssd-shadow.c
- Respect `menu.overlap.x` when using pipemenus.
- Do not try to restore windows to very small width/height on
unmaximize.
- Conditially set squared server-side decoration (SSD) corners
when a view is tiled.
- Remember initial direction when starting window-cycling with
`PreviousView`. Also make the toggling of direction when
shift is pressed relative to the initial direction.
- Show dnd icon above layer-shell surfaces.
- Initialize locale after reading environment files so that
client-menu items and workspace names follow the env var
`LANG` should that be set in `~/.config/labwc/environment`
(which is not recommended, but we prefer to handle it
properly if it is).
- Fix crash on `menu.xml` containing `<item>` without a
parent `<menu>`.
- Reset XWayland cursor image on cursor theme reload to avoid
trying to read destroyed pixel data.
- Prevent child views from opening outside of usable area.
- Fix IME popups issues (flicker when popup surface is
initially mapped and incorrectly showing multiple popups).
- Rate-limit cursor-driven resize events based on monitor's
refresh rate. This fixes the lag when resizing windows of
some apps on XWayland, for example Chromium and Steam.
- Session-lock: fix flashing & update cursor shape.
- Remove tearing-controller listeners on destroy.
- Handle invalid `ForEach` and `If` action cofigs.
- Delay startup of applications until event loop is ready.
- With `SendToDesktop` action follow=no option, ensure the
topmost window is focused.
- Prevent XWayland from using incorrect keymap.
- Allow keybinds containing the hyphen key to be defined
with `-`.
- Show/hide `top` layer more smartly. Before this commit,
`top` layers were hidden whenever there was a fullscreen
window in the corresponding output. With this commit,
`top` layers are hidden only when there is a fullscreen
window without other windows above it in the
corresponding output.
+ Changed
- Remove subprojects/seatd.wrap as no longer needed
- Action `MoveToCursor` is deprecated in favour of:
`<action name="AutoPlace" policy="cursor"/>`.
- Recommends alacritty instead foot as default terminal
OBS-URL: https://build.opensuse.org/request/show/1187220
OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/labwc?expand=0&rev=16