mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
Compare commits
4 commits
e1820adcd3
...
70e5beb5ec
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70e5beb5ec | ||
|
|
d94e5da815 | ||
|
|
e44a489530 | ||
|
|
6cdfe32af0 |
6 changed files with 59 additions and 18 deletions
47
NEWS.md
47
NEWS.md
|
|
@ -9,7 +9,7 @@ The format is based on [Keep a Changelog]
|
||||||
|
|
||||||
| Date | All Changes | wlroots version | lines-of-code |
|
| Date | All Changes | wlroots version | lines-of-code |
|
||||||
|------------|---------------|-----------------|---------------|
|
|------------|---------------|-----------------|---------------|
|
||||||
| 2025-09-15 | [unreleased] | 0.19.0 | 28686 |
|
| 2025-10-10 | [0.9.2] | 0.19.1 | 28818 |
|
||||||
| 2025-08-02 | [0.9.1] | 0.19.0 | 28605 |
|
| 2025-08-02 | [0.9.1] | 0.19.0 | 28605 |
|
||||||
| 2025-07-11 | [0.9.0] | 0.19.0 | 28586 |
|
| 2025-07-11 | [0.9.0] | 0.19.0 | 28586 |
|
||||||
| 2025-05-02 | [0.8.4] | 0.18.2 | 27679 |
|
| 2025-05-02 | [0.8.4] | 0.18.2 | 27679 |
|
||||||
|
|
@ -39,6 +39,7 @@ The format is based on [Keep a Changelog]
|
||||||
| 2021-03-05 | [0.1.0] | 0.12.0 | 4627 |
|
| 2021-03-05 | [0.1.0] | 0.12.0 | 4627 |
|
||||||
|
|
||||||
[unreleased]: NEWS.md#unreleased
|
[unreleased]: NEWS.md#unreleased
|
||||||
|
[0.9.2]: NEWS.md#092---2025-10-10
|
||||||
[0.9.1]: NEWS.md#091---2025-08-02
|
[0.9.1]: NEWS.md#091---2025-08-02
|
||||||
[0.9.0]: NEWS.md#090---2025-07-11
|
[0.9.0]: NEWS.md#090---2025-07-11
|
||||||
[0.8.4]: NEWS.md#084---2025-05-02
|
[0.8.4]: NEWS.md#084---2025-05-02
|
||||||
|
|
@ -100,23 +101,35 @@ There are some regression warnings worth noting for the switch to wlroots 0.19:
|
||||||
around a bug on the wlroots side which is expected to be fixed in wlroots
|
around a bug on the wlroots side which is expected to be fixed in wlroots
|
||||||
`0.19.1` [#2887]
|
`0.19.1` [#2887]
|
||||||
|
|
||||||
|
With wlroots compiled with libwayland (>= 1.24.0), there is an invisible margin
|
||||||
|
preventing pointer focus on some layer-shell surfaces including those created by
|
||||||
|
Gtk. In simple words, this is because libwayland now rounds floats a bit
|
||||||
|
differently [#3099]. There is a pending fix [wlroots-5159].
|
||||||
|
|
||||||
[wlroots-4878]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4878
|
[wlroots-4878]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4878
|
||||||
[wlroots-5098]:https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5098
|
[wlroots-5098]:https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5098
|
||||||
|
[wlroots-5159]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5159
|
||||||
[gtk-8792]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8792
|
[gtk-8792]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8792
|
||||||
|
|
||||||
## unreleased
|
## unreleased
|
||||||
|
|
||||||
[unreleased-commits]
|
[unreleased-commits]
|
||||||
|
|
||||||
|
## 0.9.2 - 2025-10-10
|
||||||
|
|
||||||
|
[0.9.2-commits]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- Allow `SnapToEdge` and `ToggleSnapToEdge` to combine two cardinal directions
|
||||||
|
with the config option `combine="yes|no"`. [#3081] @tokyo4j
|
||||||
- Support `Border` context for mousebinds as an alias for `Top`...`BRCorner` to
|
- Support `Border` context for mousebinds as an alias for `Top`...`BRCorner` to
|
||||||
make configuration easier. @tokyo4j [#3047]
|
make configuration easier. @tokyo4j [#3047]
|
||||||
- Add window-switcher mode with thumbnails. This can be enabled with:
|
- Add window-switcher mode with thumbnails. This can be enabled with:
|
||||||
`<windowSwitcher style="thumbnail">`. @tokyo4j [#2981]
|
`<windowSwitcher style="thumbnail">`. @tokyo4j [#2981]
|
||||||
- Add `toggle` option to `GoToDesktop` action. This has the effect of going back
|
- Add `toggle` option to `GoToDesktop` action. This has the effect of going back
|
||||||
to the last desktop if already on the target. @RainerKuemmerle [#3024]
|
to the last desktop if already on the target. @RainerKuemmerle [#3024]
|
||||||
- Add `<core maximizedDecoration="titlebar|none"/>` to allow hiding titlebar
|
- Add `<theme maximizedDecoration="titlebar|none"/>` to allow hiding titlebar
|
||||||
when window is maximized. @CosmicFusion @tokyo4j [#3015]
|
when window is maximized. @CosmicFusion @tokyo4j [#3015]
|
||||||
- Use client-send-to-menu as 'Workspace' submenu in built-in client-menu
|
- Use client-send-to-menu as 'Workspace' submenu in built-in client-menu
|
||||||
@johanmalm [#2995]
|
@johanmalm [#2995]
|
||||||
|
|
@ -126,6 +139,7 @@ There are some regression warnings worth noting for the switch to wlroots 0.19:
|
||||||
[#2994]
|
[#2994]
|
||||||
- Add `labnag` (a dialog client with message and buttons) and associated
|
- Add `labnag` (a dialog client with message and buttons) and associated
|
||||||
`<prompt>` option in 'If' actions. @johanmalm @Consolatis @tokyo4j [#2699]
|
`<prompt>` option in 'If' actions. @johanmalm @Consolatis @tokyo4j [#2699]
|
||||||
|
- Support config option `<core><promptCommand>` @johanmalm [#3097]
|
||||||
- Allow snapping to corner edges during interactive move with associated config
|
- Allow snapping to corner edges during interactive move with associated config
|
||||||
options `<snapping><cornerRange>`. @tokyo4j [#2885]
|
options `<snapping><cornerRange>`. @tokyo4j [#2885]
|
||||||
- Support new values "up-left", "up-right", "down-left" and "down-right" with
|
- Support new values "up-left", "up-right", "down-left" and "down-right" with
|
||||||
|
|
@ -147,6 +161,7 @@ There are some regression warnings worth noting for the switch to wlroots 0.19:
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- On detecting broken icon theme, fall back on 'hicolor' @Consolatis [#3126]
|
||||||
- Restore initially-maximized window position after unplug/plug @tokyo4j [#3042]
|
- Restore initially-maximized window position after unplug/plug @tokyo4j [#3042]
|
||||||
- Fix large client-side icon not being loaded when the rendered icon size is
|
- Fix large client-side icon not being loaded when the rendered icon size is
|
||||||
larger than icon sizes from the client. @tokyo4j [#3033]
|
larger than icon sizes from the client. @tokyo4j [#3033]
|
||||||
|
|
@ -162,6 +177,27 @@ There are some regression warnings worth noting for the switch to wlroots 0.19:
|
||||||
|
|
||||||
### Changed
|
### 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` (thereby using default keybinds) or use the
|
||||||
|
`<keyboard><default/>` option. Previous behavior can be restored by setting
|
||||||
|
`combine="no"` as shown below. [#3081] @tokyo4j
|
||||||
|
|
||||||
|
```
|
||||||
|
<keybind key="W-Left">
|
||||||
|
<action name="SnapToEdge" direction="left" combine="no" />
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Right">
|
||||||
|
<action name="SnapToEdge" direction="right" combine="no" />
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Up">
|
||||||
|
<action name="SnapToEdge" direction="up" combine="no" />
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Down">
|
||||||
|
<action name="SnapToEdge" direction="down" combine="no" />
|
||||||
|
</keybind>
|
||||||
|
```
|
||||||
|
|
||||||
- `Focus` and `Raise` on window border press because it is probably what most
|
- `Focus` and `Raise` on window border press because it is probably what most
|
||||||
people expect and it makes the behavior consistent with that of Openbox.
|
people expect and it makes the behavior consistent with that of Openbox.
|
||||||
@johanmalm [#3039] [#3049]
|
@johanmalm [#3039] [#3049]
|
||||||
|
|
@ -2337,7 +2373,8 @@ Compile with wlroots 0.12.0 and wayland-server >=1.16
|
||||||
ShowMenu
|
ShowMenu
|
||||||
|
|
||||||
[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/
|
[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/
|
||||||
[unreleased-commits]: https://github.com/labwc/labwc/compare/0.9.0...HEAD
|
[unreleased-commits]: https://github.com/labwc/labwc/compare/0.9.2...HEAD
|
||||||
|
[0.9.2-commits]: https://github.com/labwc/labwc/compare/0.9.1...0.9.2
|
||||||
[0.9.1-commits]: https://github.com/labwc/labwc/compare/0.9.0...0.9.1
|
[0.9.1-commits]: https://github.com/labwc/labwc/compare/0.9.0...0.9.1
|
||||||
[0.9.0-commits]: https://github.com/labwc/labwc/compare/0.8.4...0.9.0
|
[0.9.0-commits]: https://github.com/labwc/labwc/compare/0.8.4...0.9.0
|
||||||
[0.8.4-commits]: https://github.com/labwc/labwc/compare/0.8.3...0.8.4
|
[0.8.4-commits]: https://github.com/labwc/labwc/compare/0.8.3...0.8.4
|
||||||
|
|
@ -2800,3 +2837,7 @@ Compile with wlroots 0.12.0 and wayland-server >=1.16
|
||||||
[#3043]: https://github.com/labwc/labwc/pull/3043
|
[#3043]: https://github.com/labwc/labwc/pull/3043
|
||||||
[#3047]: https://github.com/labwc/labwc/pull/3047
|
[#3047]: https://github.com/labwc/labwc/pull/3047
|
||||||
[#3049]: https://github.com/labwc/labwc/pull/3049
|
[#3049]: https://github.com/labwc/labwc/pull/3049
|
||||||
|
[#3081]: https://github.com/labwc/labwc/pull/3081
|
||||||
|
[#3097]: https://github.com/labwc/labwc/pull/3097
|
||||||
|
[#3099]: https://github.com/labwc/labwc/pull/3099
|
||||||
|
[#3126]: https://github.com/labwc/labwc/pull/3126
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,6 @@ this is for compatibility with Openbox.
|
||||||
```
|
```
|
||||||
<core>
|
<core>
|
||||||
<decoration>server</decoration>
|
<decoration>server</decoration>
|
||||||
<maximizedDecoration>titlebar</maximizedDecoration>
|
|
||||||
<gap>0</gap>
|
<gap>0</gap>
|
||||||
<adaptiveSync>no</adaptiveSync>
|
<adaptiveSync>no</adaptiveSync>
|
||||||
<allowTearing>no</allowTearing>
|
<allowTearing>no</allowTearing>
|
||||||
|
|
@ -188,11 +187,6 @@ this is for compatibility with Openbox.
|
||||||
that it is not always possible to turn off client side decorations.
|
that it is not always possible to turn off client side decorations.
|
||||||
Default is server.
|
Default is server.
|
||||||
|
|
||||||
*<core><maximizedDecoration>* [titlebar|none]
|
|
||||||
Specify how server side decorations are shown for maximized windows.
|
|
||||||
*titlebar* shows titlebar above a maximized window. *none* shows no server
|
|
||||||
side decorations around a maximized window. Default is titlebar.
|
|
||||||
|
|
||||||
*<core><gap>*
|
*<core><gap>*
|
||||||
The distance in pixels between windows and output edges when using
|
The distance in pixels between windows and output edges when using
|
||||||
movement actions, for example MoveToEdge. Default is 0.
|
movement actions, for example MoveToEdge. Default is 0.
|
||||||
|
|
@ -603,6 +597,11 @@ extending outward from the snapped edge.
|
||||||
Even when disabling server side decorations via ToggleDecorations,
|
Even when disabling server side decorations via ToggleDecorations,
|
||||||
keep a small border (and resize area) around the window. Default is yes.
|
keep a small border (and resize area) around the window. Default is yes.
|
||||||
|
|
||||||
|
*<theme><maximizedDecoration>* [titlebar|none]
|
||||||
|
Specify how server side decorations are shown for maximized windows.
|
||||||
|
*titlebar* shows titlebar above a maximized window. *none* shows no server
|
||||||
|
side decorations around a maximized window. Default is titlebar.
|
||||||
|
|
||||||
*<theme><dropShadows>* [yes|no]
|
*<theme><dropShadows>* [yes|no]
|
||||||
Should drop-shadows be rendered behind windows. Default is no.
|
Should drop-shadows be rendered behind windows. Default is no.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
<core>
|
<core>
|
||||||
<decoration>server</decoration>
|
<decoration>server</decoration>
|
||||||
<maximizedDecoration>titlebar</maximizedDecoration>
|
|
||||||
<gap>0</gap>
|
<gap>0</gap>
|
||||||
<adaptiveSync>no</adaptiveSync>
|
<adaptiveSync>no</adaptiveSync>
|
||||||
<allowTearing>no</allowTearing>
|
<allowTearing>no</allowTearing>
|
||||||
|
|
@ -45,6 +44,7 @@
|
||||||
</titlebar>
|
</titlebar>
|
||||||
<cornerRadius>8</cornerRadius>
|
<cornerRadius>8</cornerRadius>
|
||||||
<keepBorder>yes</keepBorder>
|
<keepBorder>yes</keepBorder>
|
||||||
|
<maximizedDecoration>titlebar</maximizedDecoration>
|
||||||
<dropShadows>no</dropShadows>
|
<dropShadows>no</dropShadows>
|
||||||
<dropShadowsOnTiled>no</dropShadowsOnTiled>
|
<dropShadowsOnTiled>no</dropShadowsOnTiled>
|
||||||
<font place="ActiveWindow">
|
<font place="ActiveWindow">
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
project(
|
project(
|
||||||
'labwc',
|
'labwc',
|
||||||
'c',
|
'c',
|
||||||
version: '0.9.0',
|
version: '0.9.2',
|
||||||
license: 'GPL-2.0-only',
|
license: 'GPL-2.0-only',
|
||||||
meson_version: '>=0.59.0',
|
meson_version: '>=0.59.0',
|
||||||
default_options: [
|
default_options: [
|
||||||
|
|
|
||||||
|
|
@ -1083,12 +1083,6 @@ entry(xmlNode *node, char *nodename, char *content)
|
||||||
} else {
|
} else {
|
||||||
rc.xdg_shell_server_side_deco = true;
|
rc.xdg_shell_server_side_deco = true;
|
||||||
}
|
}
|
||||||
} else if (!strcasecmp(nodename, "maximizedDecoration.core")) {
|
|
||||||
if (!strcasecmp(content, "titlebar")) {
|
|
||||||
rc.hide_maximized_window_titlebar = false;
|
|
||||||
} else if (!strcasecmp(content, "none")) {
|
|
||||||
rc.hide_maximized_window_titlebar = true;
|
|
||||||
}
|
|
||||||
} else if (!strcmp(nodename, "gap.core")) {
|
} else if (!strcmp(nodename, "gap.core")) {
|
||||||
rc.gap = atoi(content);
|
rc.gap = atoi(content);
|
||||||
} else if (!strcasecmp(nodename, "adaptiveSync.core")) {
|
} else if (!strcasecmp(nodename, "adaptiveSync.core")) {
|
||||||
|
|
@ -1130,6 +1124,12 @@ entry(xmlNode *node, char *nodename, char *content)
|
||||||
rc.corner_radius = atoi(content);
|
rc.corner_radius = atoi(content);
|
||||||
} else if (!strcasecmp(nodename, "keepBorder.theme")) {
|
} else if (!strcasecmp(nodename, "keepBorder.theme")) {
|
||||||
set_bool(content, &rc.ssd_keep_border);
|
set_bool(content, &rc.ssd_keep_border);
|
||||||
|
} else if (!strcasecmp(nodename, "maximizedDecoration.theme")) {
|
||||||
|
if (!strcasecmp(content, "titlebar")) {
|
||||||
|
rc.hide_maximized_window_titlebar = false;
|
||||||
|
} else if (!strcasecmp(content, "none")) {
|
||||||
|
rc.hide_maximized_window_titlebar = true;
|
||||||
|
}
|
||||||
} else if (!strcasecmp(nodename, "dropShadows.theme")) {
|
} else if (!strcasecmp(nodename, "dropShadows.theme")) {
|
||||||
set_bool(content, &rc.shadows_enabled);
|
set_bool(content, &rc.shadows_enabled);
|
||||||
} else if (!strcasecmp(nodename, "dropShadowsOnTiled.theme")) {
|
} else if (!strcasecmp(nodename, "dropShadowsOnTiled.theme")) {
|
||||||
|
|
|
||||||
|
|
@ -2161,7 +2161,8 @@ view_snap_to_edge(struct view *view, enum lab_edge edge,
|
||||||
|
|
||||||
view_set_shade(view, false);
|
view_set_shade(view, false);
|
||||||
|
|
||||||
if (lab_edge_is_cardinal(edge) && view->maximized == VIEW_AXIS_NONE) {
|
if (lab_edge_is_cardinal(edge) && view->maximized == VIEW_AXIS_NONE
|
||||||
|
&& view->tiled != LAB_EDGE_CENTER) {
|
||||||
enum lab_edge invert_edge = lab_edge_invert(edge);
|
enum lab_edge invert_edge = lab_edge_invert(edge);
|
||||||
/* Represents axis of snapping direction */
|
/* Represents axis of snapping direction */
|
||||||
enum lab_edge parallel_mask = edge | invert_edge;
|
enum lab_edge parallel_mask = edge | invert_edge;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue