Skip to content
labwc 0.6.6

Added

- Add `fixedPosition` window-rule property to avoid re-positioning windows
  on reserved-output-space changes (determined by *<margin>* settings or
  exclusive layer-shell clients) and to disallow interactive move or
  resize, for example by alt+press.
- Add `Unfocus` action to enable unfocusing windows on desktop click.
  Issue: #1230
- Add config option `<keyboard layoutScope="window">` to use per-window
  keyboard layout. Issue #1076
- Support separate horizontal and vertical maximize by adding a
  `direction` option to actions Maximize and ToggleMaximize.
- Add actions GrowToEdge and ShrinkToEdge. Written-by: @digint
- Add `snapWindows` option to MoveToEdge action. Written-by: @digint
- Add MoveToCursor action. Written-by: @Arnaudv6
- Add config option `<keyboard><numlock>` to enable Num Lock on startup.
- Support Meta (M), Hyper (H), Mod1, Mod3, Mod4 and Mod5 modifiers in
  keybind definitions. Fixes: #1061
- Add themerc 'titlebar.height' option. Written-by: @mozlima
- Add If and ForEach actions. Written-by: @consus
- Allow referencing the current workspace in actions, for example:
  `<action name="SendToDesktop" to="current"/>`

Fixed

- Do not reset XWayland window SSD on unminimize
- Keep XWayland stacking order in sync when switching workspaces
- Update top-layer visiblity on workspace-switch in order to show
  top-layer layer-shell clients correctly when there is a window in
  fullscreen mode on another workspace. Issues: #1040 #1158
- Make interactive window snapping with mouse more intuitive in
  multi-output setups. Written-by: @tokyo4j
- Try to handle missing `set_window_geometry` with Qt apps which
  occasionally fail to call `set_window_geometry` after a configure
  request, but correctly update the actual surface extent. Issue: #1194
- Update XWayland stacking order when moving a window to the front/back.
- Prevent switching workspaces for always-on-bottom windows. Fixes: #1170
- Fix invisible cursor after wlopm --off && wlopm --on.
- When a session is locked using 'session-lock' protocol, reconfigure for
  output layout changes to avoid incorrect positioning
- Account for window base size in resize indicator so that the displayed
  size exactly matches the terminal grid, for example 80x25.
- The following focus related issues:
  - Allow re-focusing xwayland-unmanaged surfaces in response to pointer
    action (click or movement if focus-follow-mouse is enabled). This
    enables clients such as dmenu, rofi and jgmenu to regain
    keyboard-focus if it was lost to another client.
  - Fix code paths which could lead to a lock-screen losing focus, making
    the session impossible to unlock or another surface to gain focus thus
    breaching the session lock.
  - Only focus topmost view on unmap if unmapped view was focused.
  - Fix `xwayland_surface->data` bug relating to unmanaged surfaces.
  - Fix layer subsurface focus bug to make waybar's minimize-raise work.
    Fixes: #1131
  - Ignore focus change to unmanaged surface belonging to same PID to fix
    an issue with menus immediately closing in some X11 apps.
  - Avoid focusing xwayland views that do not want focus using the ICCCM
    "Globally Active" input model.
  - Allow re-focus between "globally active" XWayland views of the same
    PID.
  - Assume that views that want decorations also want focus
- The following keyboard and keybind related issues:
  - Send pressed keys correctly when focusing new surface.
  - Refactor handling of pressed/bound keys to send (to client) the
    release events for any pressed key that was not part of a keybind,
    typically because an unrelated non-modifier key was pressed before
    and held during a keybind invocation. Fixes #1091 #1245
  - Fix keyboard release event bug after session lock. Fixes: #1114
- Raise xdg and xwayland sub-views correctly relative to other sub-views,
  by letting the relative stacking order between them change.
- Honor initially maximized requests for XWayland views via
  `_NET_WM_STATE`.
- For initially maximized XWayland views, set the stored natural geometry
  to be output-centered.
- Fix regions rounding error sometimes resulting in incorrect gaps
  between regions.

Changed

- Move floating windows in response to changes in reserved output space
  (determined by *<margin>* settings or exclusive layer-shell clients such
  as panels). Users with window-rules for panels and/or desktops should
  add the `fixedPosition` property to avoid regression. Issue: #1235
- Restore `SIGPIPE` default handler before exec. Fixes: #1209
- With the introduction of directional Maximize, right-click on the
  maximize button now toggles horizontal maximize, while middle-click
  toggles vertical maximize.
- Make MoveToEdge snap to the next window edge by default rather than
  just the screen edge.
- Comment out variables in `docs/environment` to avoid users using the
  file without editing it and ending up with unwanted settings.
  Fixes: #1011
- Set `_JAVA_AWT_WM_NONREPARENTING=1` unless already set.
- This release has seen significant refactoring and minor improvements
  with respect to window and surface focus (particular thanks to
  @jlindgren). This work has helped uncover and fix some hard-to-find
  bugs. We don't believe that there are any regressions, but can't say
  for sure.
- Set Num Lock to enabled by default on start up
- Allow switching VT when locked
- Use `fnmatch()` for pattern matching instead of `g_pattern_match_simple()`
  because it is a POSIX-compliant function which has a glob(7) manual page
  for reference.
- Title context is used instead of TitleBar for the default client-menu
  on click. This means that if a button is right-clicked, the client-menu
  will not appear anymore.
- Always switch to the workspace containing the view being focused.