diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7f91f07d..7944284a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,7 @@ jobs: matrix: name: [ Arch, - Debian, +# Debian, FreeBSD, Void-musl ] @@ -40,11 +40,11 @@ jobs: env: TARGET: 'sh -xe' - - name: Debian - os: ubuntu-latest - container: debian:testing - env: - TARGET: 'sh -xe' +# - name: Debian +# os: ubuntu-latest +# container: debian:testing +# env: +# TARGET: 'sh -xe' - name: FreeBSD os: ubuntu-latest @@ -81,6 +81,7 @@ jobs: apt-get upgrade -y apt-get install -y git gcc clang gdb xwayland apt-get build-dep -y labwc + apt-get install libwlroots-0.18-dev - name: Install FreeBSD dependencies if: matrix.name == 'FreeBSD' @@ -105,8 +106,8 @@ jobs: xbps-install -Syu xbps-install -y git meson gcc clang pkg-config scdoc \ cairo-devel glib-devel libpng-devel librsvg-devel libxml2-devel \ - pango-devel wlroots0.17-devel gdb bash xorg-server-xwayland \ - dejavu-fonts-ttf + pango-devel wlroots0.18-devel gdb bash xorg-server-xwayland \ + dejavu-fonts-ttf libsfdo-devel # These build are executed on all runners - name: Build with gcc diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 655376c5..0f79ef5f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,9 +14,10 @@ - [4.3.3 The use of GNU extensions](#the-use-of-gnu-extensions) - [4.3.4 Naming Conventions](#naming-conventions) - [5. Commit Messages](#commit-messages) -- [6. Submitting Patches](#submitting-patches) -- [7. Native Language Support](#native-language-support) -- [8. Upversion](#upversion) +- [6. Unit Tests](#unit-tests) +- [7. Submitting Patches](#submitting-patches) +- [8. Native Language Support](#native-language-support) +- [9. Upversion](#upversion) # How to Contribute @@ -345,6 +346,29 @@ This first line should: And please wrap the commit message at max 74 characters, otherwise `git log` and similar look so weird. URLs and other references are exempt. +# Unit Tests + +## Introduction + +The tests live in the `t/` directory. + +In the bigger scheme of validating that the compositor meets users' needs, unit +tests do not contribute a great deal. However, they have a role to play in +providing some verification that stand-alone functions behave as expected. + +On this project, writing unit-tests is not compulsory nor do we measure +coverage. The inclusion of the t/ directory does not signifiy a move towards +test-driven development. We intend to use unit tests sparingly and only when +devs find them useful. + +## Usage + +From repo top level directory: + + meson setup -Dtest=enabled build + meson compile -C build/ + meson test --verbose -C build/ + # Submitting patches Base both bugfixes and new features on `master`. diff --git a/NEWS.md b/NEWS.md index 719785d7..307c6784 100644 --- a/NEWS.md +++ b/NEWS.md @@ -9,7 +9,9 @@ The format is based on [Keep a Changelog] | Date | All Changes | wlroots version | lines-of-code | |------------|---------------|-----------------|---------------| -| 2024-06-09 | [unreleased] | 0.17.3 | | +| 2024-08-16 | [0.8.0] | 0.18.0 | 23320 | +| 2024-06-19 | [0.7.4] | 0.17.4 | 22746 | +| 2024-06-12 | [0.7.3] | 0.17.4 | 22731 | | 2024-05-10 | [0.7.2] | 0.17.3 | 21368 | | 2024-03-01 | [0.7.1] | 0.17.1 | 18624 | | 2023-12-22 | [0.7.0] | 0.17.1 | 16576 | @@ -31,13 +33,254 @@ The format is based on [Keep a Changelog] ## [unreleased] +The most noteworthy additions in this release are: + +1. Titlebar window icons and layout configuration +2. Support for the cosmic-workspace protocol and the openbox inspired + client-list-combined-menu for a better user experience with workspaces. + +Notes to package maintainers: + +- The SSD titlebar window icon support requires libsfdo to be added as a + dependency or statically linked. If this is not wanted, add -Dicon=disabled to + the `meson setup` command in the build script for the next release. +- PRs #1716 and #2205 add labwc xdg-portal configuration, modify `labwc.desktop` + and amend `XDG_CURRENT_DESKTOP` which should enable better out-of-the-box + support for xdg-desktop-portal, but if you already ship a custom setup for + this you or have different requirements, please review this change. + ### Added +- Support dmabuf feedback (#2234, #1278) +- Add initial implementation of cosmic-workspace-unstable-v1 (#2030) +- Optionally support SSD titlebar window icons. When an icon file is not found + or could not be loaded, the window menu icon is shown as before. The icon + theme can be selected with `` (#2128) +- Add actions `ToggleSnapToEdge` and `ToggleSnapToRegion`. These behave like + `SnapToEdge` and `SnapToRegion`, except that they untile the window when + already being tiled to the given region or direction. + Written-by: @jp7677 and @tokyo4j (#2154) +- Add action `UnSnap`. This behaves like `ToggleSnapToEdge/Region` but + unconditionally. Written-by: @jp7677 and @tokyo4j (#2154) +- Handle xdg-shell `show_window_menu` requests (#2167) +- Support the openbox style menus listed below. Written-by: @droc12345 + 1. `client-list-combined-menu` shows windows across all workspaces. This can + be used with a mouse/key bind using: + `` (#2101) + 2. `client-send-to` shows all workspaces that the current window can be sent + to. This can additional be used within a client menu using: + `` (#2152) +- Add theme option for titlebar padding and button spacing (#2189) + +``` +window.button.height: 26 +window.titlebar.padding.width: 0 +window.titlebar.padding.height: 0 +window.button.spacing: 0 +``` + +- Set titlebar height based on the maximum height of any of the objects within + it, rather than just taking the font height into account (#2152) +- Add theme option for setting button hover effect corner radius (#2127, #2231) + +``` +window.button.hover.bg.corner-radius: 0 +``` + +- Add position arguments for menus. Written-by: @droc12345 (#2102) + +``` + + root-menu + + 0 + 0 + + +``` + +- Allow interactive window movement when horizontally or vertically maximized + and add associated config option `` (#2052) +- Add optional Shade (shade.xbm) and AllDesktops (desk.xbm) buttons and theme + options: + +``` +window.active.button.desk.unpressed.image.color +window.inactive.button.desk.unpressed.image.color +window.active.button.shade.unpressed.image.color +window.inactive.button.shade.unpressed.image.color +``` + +- Make action `FocusOutput` behave like `MoveToOutput` by adding direction and + wrap arguments. Written-by: @orfeasxyz (#2100) +- Add config option for titlebar layout. Written-by: @xi (#2088, #2150) + +``` + + icon:iconify,max,close + yes|no + +``` + +- Add `Oblique` option to `