Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
TideWM is a solo/free-time project, and the gates are open. Issues, forks, and pull requests are all genuinely welcome, not just tolerated — bug reports and hardware/driver testing especially, since real-hardware coverage is the thing a solo maintainer can least scale alone. These are the ground rules.

Contributions follow the license of the component being changed: GPL-3.0-or-later
for TideWM software and its bundled Wave engine, CC BY-NC-SA 4.0 for the logo,
for TideWM software and its bundled Wave engine, CC BY-SA 4.0 for the icon
(CC BY-NC-SA 4.0 for the faithful 4k logo),
and the existing OFL terms for the bundled font. See [LICENSING.md](LICENSING.md)
for scope and the separately published Scorium project's own terms.

Expand Down
170 changes: 170 additions & 0 deletions LICENSES/CC-BY-SA-4.0.txt

Large diffs are not rendered by default.

46 changes: 26 additions & 20 deletions LICENSING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ for one component does not replace another component's terms.
| --- | --- | --- |
| TideWM source code, shaders, scripts, documentation, configuration examples and other project assets unless separately identified below | GNU GPL version 3 or later (`GPL-3.0-or-later`) | [LICENSE](LICENSE) |
| Bundled Wave implementation and `wavefmt` | GNU GPL version 3 or later (`GPL-3.0-or-later`) | [LICENSE](LICENSE); these are part of TideWM |
| `share/icons/TideWM-logo-faithful-4k.png` and `share/icons/tidewm.png` | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (`CC-BY-NC-SA-4.0`) | [Logo notice](share/icons/LICENSE), [full legal text](LICENSES/CC-BY-NC-SA-4.0.txt) |
| `share/icons/tidewm.png` (the icon packages install) | Creative Commons Attribution-ShareAlike 4.0 International (`CC-BY-SA-4.0`) | [Logo notice](share/icons/LICENSE), [full legal text](LICENSES/CC-BY-SA-4.0.txt) |
| `share/icons/TideWM-logo-faithful-4k.png` | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (`CC-BY-NC-SA-4.0`) | [Logo notice](share/icons/LICENSE), [full legal text](LICENSES/CC-BY-NC-SA-4.0.txt) |
| `protocols/hyprland-toplevel-export-v1.xml` (protocol definition from hyprwm/hyprland-protocols) | BSD 3-Clause (`BSD-3-Clause`) | [Copyright notice and license](protocols/LICENSE-hyprland-protocols) |
| `assets/fonts/AdwaitaSans-Regular.ttf` | SIL Open Font License 1.1 (`OFL-1.1`) | [Font copyright notices and license](assets/fonts/OFL-LICENSE.txt) |

Expand All @@ -16,24 +17,30 @@ These project notices do not relicense third-party material.

## Logo attribution and use

When sharing the logo, credit Fi3w0, provide the license link and identify
TideWM has two renderings of its logo under different licenses:

- `share/icons/tidewm.png` is free artwork under CC BY-SA 4.0. It is the icon
every package installs, so distributing TideWM, commercially or not, needs
nothing beyond the GPL and this attribution.
- `share/icons/TideWM-logo-faithful-4k.png` stays under CC BY-NC-SA 4.0. It is
kept in the repository but not installed by any package.

When sharing either file, credit Fi3w0, provide the license link and identify
modifications. A suitable attribution is:

> TideWM logo by Fi3w0 (2026), licensed under CC BY-NC-SA 4.0.
> https://creativecommons.org/licenses/by-nc-sa/4.0/
> TideWM logo by Fi3w0 (2026), licensed under CC BY-SA 4.0.
> https://creativecommons.org/licenses/by-sa/4.0/
> Source: https://github.com/Fi3w0/TideWM/tree/master/share/icons

The logo license permits noncommercial sharing and adaptation. Shared
adaptations must follow its ShareAlike terms. It does not grant trademark
rights or permission to imply official endorsement. See the full legal text
for the binding conditions and exceptions.
(use `CC BY-NC-SA 4.0` and https://creativecommons.org/licenses/by-nc-sa/4.0/
for the faithful 4k file). Shared adaptations must follow the ShareAlike
terms of the file they start from. Neither license grants trademark rights
or permission to imply official endorsement. See the full legal texts for
the binding conditions and exceptions.

TideWM's GPL software remains usable and distributable commercially under
the GPL. A distributor relying on the logo's CC license must separately
respect its NonCommercial condition; commercial distributions can omit or
replace the standalone icon, or obtain separate permission from
[Fi3w0](https://github.com/Fi3w0). Earlier license grants are not revoked by
this notice.
Using the faithful 4k file beyond its NonCommercial condition needs separate
permission from [Fi3w0](https://github.com/Fi3w0). Earlier license grants
are not revoked by this notice.

## Wave and standalone Scorium

Expand All @@ -60,9 +67,8 @@ standalone library must establish suitable licensing before shipping.

## Packaged notices

The installers and distro packages include the GPL text, logo attribution
notice, CC BY-NC-SA legal text and the font's OFL notices in their
`share/licenses` directory. Package metadata lists the separate licenses.
Because the bundled logo is noncommercial, the Nix package is classified as
unfree; see [packaging/README.md](packaging/README.md) for a package-specific
opt-in. Gentoo users may need to accept `CC-BY-NC-SA-4.0` for this package.
The installers and distro packages install the CC BY-SA icon and include
the GPL text, logo attribution notice, CC BY-SA legal text and the font's OFL
notices in their `share/licenses` directory. Package metadata lists the
separate licenses, all of them free, so no unfree or license opt-in is
needed on Nix, Gentoo or elsewhere.
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,12 +164,14 @@ Split it with `include`, format it with `wavefmt`, ask the running session anyth

> [!NOTE]
> TideWM is in **beta** and built by one person. It is a daily driver on Arch and Gentoo (AMD and NVIDIA); other distros should work, and reports are very welcome.
>
> **No systemd required.** TideWM gets its seat through libseat, so it runs on OpenRC, runit (Void), s6 and friends with seatd or elogind.

| Distro | Command |
| --- | --- |
| Arch and derivatives | `packaging/arch/install.sh` |
| Gentoo | `packaging/gentoo/install.sh` |
| NixOS / Nix | `NIXPKGS_ALLOW_UNFREE=1 nix run --impure github:Fi3w0/TideWM` <sub>(the logo is non-commercial)</sub> |
| NixOS / Nix | `nix run github:Fi3w0/TideWM` |
| Anything else | `./install.sh` after the [build dependencies](TECHNICAL_REPORT.md#building) |

Then pick **TideWM** in your display manager. Details: [packaging guide](packaging/README.md).
Expand All @@ -193,6 +195,8 @@ sudo dnf install pkgconf-pkg-config wayland-devel systemd-devel libinput-devel l
sudo apt install pkg-config libwayland-dev libudev-dev libinput-dev libxkbcommon-dev libegl1-mesa-dev libgbm-dev libdrm-dev libseat-dev
# Gentoo (systemd or OpenRC)
sudo emerge --ask dev-util/pkgconf dev-libs/wayland dev-libs/libinput x11-libs/libxkbcommon media-libs/mesa x11-libs/libdrm sys-auth/seatd sys-fs/eudev
# Void
sudo xbps-install -S pkg-config wayland-devel eudev-libudev-devel libinput-devel libxkbcommon-devel MesaLib-devel libdrm-devel libseat-devel seatd
```

Screen sharing (OBS, Discord, browsers) needs `--features screencast` and clang/libclang at build time.
Expand Down Expand Up @@ -236,7 +240,7 @@ Bug reports from new hardware are the most useful thing you can send right now.
<summary><b>License</b></summary>

- **TideWM code, including its bundled Wave configuration engine:** GPL-3.0-or-later, see [LICENSE](LICENSE).
- **TideWM logo:** [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](LICENSES/CC-BY-NC-SA-4.0.txt), see the [logo notice](share/icons/LICENSE).
- **TideWM icon (`share/icons/tidewm.png`):** [Creative Commons Attribution-ShareAlike 4.0 International](LICENSES/CC-BY-SA-4.0.txt). The faithful 4k logo stays [CC BY-NC-SA 4.0](LICENSES/CC-BY-NC-SA-4.0.txt) and is not packaged; see the [logo notice](share/icons/LICENSE).
- **Standalone Scorium:** a separate project with its own [custom source-available license](https://github.com/Scorium-lang/scorium-rs/blob/main/LICENSE), labelled PolyForm Strict 1.0.0. Its restrictions apply to that project; TideWM's bundled Wave code stays GPL.
- **Bundled Adwaita Sans font:** [SIL Open Font License 1.1](assets/fonts/OFL-LICENSE.txt).

Expand Down
15 changes: 14 additions & 1 deletion TECHNICAL_REPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ universal or long-session guarantee. See [profile setup and rollback](packaging/
| **Intel** | Untested. Reports welcome. |
| **Hybrid AMD + NVIDIA laptops** | GPU selection and offload are implemented and unit-tested, but not yet run end to end on a laptop. |

**Distros:** Arch and Gentoo are fully supported and tested. On Gentoo, both systemd and OpenRC work. Fedora, Debian/Ubuntu, openSUSE and NixOS have build instructions or packages and should work, but they get less testing. TideWM needs no particular init system: libseat and libudev are enough.
**Distros:** Arch and Gentoo are fully supported and tested. On Gentoo, both systemd and OpenRC work. Fedora, Debian/Ubuntu, openSUSE, Void and NixOS have build instructions or packages and should work, but they get less testing. TideWM needs no particular init system: libseat and libudev are enough, so it runs under OpenRC, runit, s6 or systemd alike.

## Building

Expand Down Expand Up @@ -224,10 +224,23 @@ sudo apt install pkg-config libwayland-dev libudev-dev libinput-dev \
# openSUSE (add clang for screencast)
sudo zypper install pkgconf-pkg-config wayland-devel libudev-devel libinput-devel \
libxkbcommon-devel Mesa-libEGL-devel Mesa-libgbm-devel libdrm-devel libseat-devel

# Void (add clang and pipewire-devel for screencast)
sudo xbps-install -S pkg-config wayland-devel eudev-libudev-devel libinput-devel \
libxkbcommon-devel MesaLib-devel libdrm-devel libseat-devel seatd
```

If a package name is wrong on your distro, the library list above is what matters, and an [issue](https://github.com/Fi3w0/TideWM/issues/new/choose) helps everyone.

**Without systemd** (Void, Artix, Gentoo OpenRC, ...), libseat needs a seat manager: run seatd and add your user to its group, or use elogind. On Void with runit:

```bash
sudo ln -s /etc/sv/seatd /var/service/
sudo usermod -aG _seatd "$USER" # log out and back in
```

There is no systemd user bus, so start TideWM from a TTY as `dbus-run-session TideWM` if portals, screen sharing or tray apps need a session bus. The systemd environment export and `tidectl doctor`'s journal and core-dump checks quietly skip when systemd isn't there.

Optional: [`xwayland-satellite`](https://github.com/Supreeeme/xwayland-satellite) for X11 apps (`xwayland.enabled = false` turns it off).

```bash
Expand Down
3 changes: 1 addition & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@
{ pkgs, lib, ... }:
{
imports = [ ./packaging/nix/module.nix ];
# Use the system's package set so its license policy applies to
# the noncommercial logo bundled with the GPL compositor.
# Use the system's package set, so its overlays and config apply.
programs.tidewm.package = lib.mkDefault (
pkgs.callPackage ./packaging/nix/package.nix { inherit gitCommit; }
);
Expand Down
4 changes: 2 additions & 2 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ cargo build --release --locked --features screencast
sudo install -Dm755 target/release/TideWM /usr/local/bin/TideWM
sudo install -Dm755 target/release/tidectl /usr/local/bin/tidectl
sudo install -Dm644 share/wayland-sessions/tidewm.desktop /usr/share/wayland-sessions/tidewm.desktop
sudo install -Dm644 share/icons/TideWM-logo-faithful-4k.png /usr/share/pixmaps/tidewm.png
sudo install -Dm644 share/icons/tidewm.png /usr/share/pixmaps/tidewm.png
sudo install -Dm644 LICENSE /usr/local/share/licenses/tidewm/LICENSE
sudo install -Dm644 share/icons/LICENSE /usr/local/share/licenses/tidewm/LOGO-NOTICE
sudo install -Dm644 LICENSES/CC-BY-NC-SA-4.0.txt /usr/local/share/licenses/tidewm/CC-BY-NC-SA-4.0.txt
sudo install -Dm644 LICENSES/CC-BY-SA-4.0.txt /usr/local/share/licenses/tidewm/CC-BY-SA-4.0.txt
sudo install -Dm644 assets/fonts/OFL-LICENSE.txt /usr/local/share/licenses/tidewm/OFL-LICENSE.txt
sudo install -Dm644 LICENSING.md /usr/local/share/doc/tidewm/LICENSING.md

Expand Down
23 changes: 6 additions & 17 deletions packaging/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ Each one installs the same files as the top-level `install.sh` (`TideWM`, `tidec

All of them build from git, so re-running the installer upgrades to the latest commit.

The compositor code is GPL-3.0-or-later. The bundled logo is CC BY-NC-SA 4.0
The compositor code is GPL-3.0-or-later, the installed icon is CC BY-SA 4.0
and the embedded font is OFL-1.1; packages install their notices alongside
the GPL text. See [LICENSING.md](../LICENSING.md). The logo's NonCommercial
condition applies separately from the software's GPL rights.
the GPL text. Everything a package installs is free, so no license opt-in is
needed. See [LICENSING.md](../LICENSING.md).

| Distro | Files | One command |
| --- | --- | --- |
Expand All @@ -30,14 +30,6 @@ The script copies the overlay to `/var/db/repos/tidewm`, registers it in `/etc/p

Manual route: point a `repos.conf` entry at `packaging/gentoo`, then `emerge gui-wm/tidewm::tidewm`.

If Portage's license policy masks the logo, read its terms and add this
package-specific entry to `/etc/portage/package.license` (or a file in that
directory):

```text
gui-wm/tidewm::tidewm CC-BY-NC-SA-4.0
```

## Arch

```bash
Expand All @@ -62,9 +54,6 @@ Add the flake to your system flake and enable the module:
tidewm.nixosModules.default
{
programs.tidewm.enable = true;
# The bundled noncommercial logo makes this package unfree.
nixpkgs.config.allowUnfreePredicate = pkg:
nixpkgs.lib.getName pkg == "tidewm";
}
];
};
Expand All @@ -77,9 +66,9 @@ Add the flake to your system flake and enable the module:
Without the module:

```bash
NIXPKGS_ALLOW_UNFREE=1 nix run --impure github:Fi3w0/TideWM
NIXPKGS_ALLOW_UNFREE=1 nix profile install --impure github:Fi3w0/TideWM
NIXPKGS_ALLOW_UNFREE=1 nix develop --impure
nix run github:Fi3w0/TideWM
nix profile install github:Fi3w0/TideWM
nix develop
```

To change the build options, override the package: `tidewm.packages.x86_64-linux.default.override { withAccessibility = true; }`.
Expand Down
6 changes: 3 additions & 3 deletions packaging/arch/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ pkgrel=1
pkgdesc="Water-themed Wayland tiling compositor built on Smithay"
arch=('x86_64' 'aarch64')
url="https://github.com/Fi3w0/TideWM"
license=('GPL-3.0-or-later' 'CC-BY-NC-SA-4.0' 'OFL-1.1')
license=('GPL-3.0-or-later' 'CC-BY-SA-4.0' 'OFL-1.1')
depends=(
'gcc-libs'
'glibc'
Expand Down Expand Up @@ -67,7 +67,7 @@ package() {
install -Dm755 target/release/TideWM target/release/tidectl target/release/wavefmt -t "$pkgdir/usr/bin/"

install -Dm644 share/wayland-sessions/tidewm.desktop "$pkgdir/usr/share/wayland-sessions/tidewm.desktop"
install -Dm644 share/icons/TideWM-logo-faithful-4k.png "$pkgdir/usr/share/pixmaps/tidewm.png"
install -Dm644 share/icons/tidewm.png "$pkgdir/usr/share/pixmaps/tidewm.png"
install -Dm644 share/xdg-desktop-portal/tidewm.portal "$pkgdir/usr/share/xdg-desktop-portal/portals/tidewm.portal"
install -Dm644 share/xdg-desktop-portal/tidewm-portals.conf "$pkgdir/usr/share/xdg-desktop-portal/tidewm-portals.conf"

Expand All @@ -76,6 +76,6 @@ package() {
install -Dm644 share/nvidia/50-tidewm.json "$pkgdir/etc/nvidia/nvidia-application-profiles-rc.d/50-tidewm.json"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -Dm644 share/icons/LICENSE "$pkgdir/usr/share/licenses/$pkgname/LOGO-NOTICE"
install -Dm644 LICENSES/CC-BY-NC-SA-4.0.txt "$pkgdir/usr/share/licenses/$pkgname/CC-BY-NC-SA-4.0.txt"
install -Dm644 LICENSES/CC-BY-SA-4.0.txt "$pkgdir/usr/share/licenses/$pkgname/CC-BY-SA-4.0.txt"
install -Dm644 assets/fonts/OFL-LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/OFL-LICENSE.txt"
}
6 changes: 3 additions & 3 deletions packaging/gentoo/gui-wm/tidewm/tidewm-9999.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ EGIT_REPO_URI="https://github.com/Fi3w0/TideWM.git"
# Follow the upstream default branch.
EGIT_BRANCH="master"

LICENSE="GPL-3+ CC-BY-NC-SA-4.0 OFL-1.1"
LICENSE="GPL-3+ CC-BY-SA-4.0 OFL-1.1"
# Dependent crate licenses
LICENSE+=" Apache-2.0 BSD CC0-1.0 ISC MIT Unicode-3.0 ZLIB"
SLOT="0"
Expand Down Expand Up @@ -72,7 +72,7 @@ src_install() {

insinto /usr/share/wayland-sessions
doins share/wayland-sessions/tidewm.desktop
newicon share/icons/TideWM-logo-faithful-4k.png tidewm.png
doicon share/icons/tidewm.png

if use screencast; then
insinto /usr/share/xdg-desktop-portal/portals
Expand All @@ -89,7 +89,7 @@ src_install() {

dodoc README.md CHANGELOG.md DOCUMENTATION.md WAVE.md LICENSING.md
insinto /usr/share/licenses/tidewm
doins LICENSE LICENSES/CC-BY-NC-SA-4.0.txt assets/fonts/OFL-LICENSE.txt
doins LICENSE LICENSES/CC-BY-SA-4.0.txt assets/fonts/OFL-LICENSE.txt
newins share/icons/LICENSE LOGO-NOTICE
}

Expand Down
6 changes: 3 additions & 3 deletions packaging/nix/package.nix
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,11 @@ rustPlatform.buildRustPackage {
install -Dm644 share/wayland-sessions/tidewm.desktop -t $out/share/wayland-sessions
substituteInPlace $out/share/wayland-sessions/tidewm.desktop \
--replace-fail "Exec=TideWM" "Exec=$out/bin/TideWM"
install -Dm644 share/icons/TideWM-logo-faithful-4k.png $out/share/pixmaps/tidewm.png
install -Dm644 share/icons/tidewm.png $out/share/pixmaps/tidewm.png
install -Dm644 share/nvidia/50-tidewm.json $out/share/tidewm/nvidia/50-tidewm.json
install -Dm644 LICENSE $out/share/licenses/tidewm/LICENSE
install -Dm644 share/icons/LICENSE $out/share/licenses/tidewm/LOGO-NOTICE
install -Dm644 LICENSES/CC-BY-NC-SA-4.0.txt $out/share/licenses/tidewm/CC-BY-NC-SA-4.0.txt
install -Dm644 LICENSES/CC-BY-SA-4.0.txt $out/share/licenses/tidewm/CC-BY-SA-4.0.txt
install -Dm644 assets/fonts/OFL-LICENSE.txt $out/share/licenses/tidewm/OFL-LICENSE.txt
''
+ lib.optionalString withScreencast ''
Expand All @@ -115,7 +115,7 @@ rustPlatform.buildRustPackage {
homepage = "https://github.com/Fi3w0/TideWM";
license = with lib.licenses; [
gpl3Plus
cc-by-nc-sa-40
cc-by-sa-40
ofl
];
mainProgram = "TideWM";
Expand Down
40 changes: 22 additions & 18 deletions share/icons/LICENSE
Original file line number Diff line number Diff line change
@@ -1,30 +1,34 @@
TideWM logo artwork
Copyright (C) 2026 Fi3w0

SPDX-License-Identifier: CC-BY-NC-SA-4.0

This notice applies to these files only:
TideWM-logo-faithful-4k.png
tidewm.png

The artwork is licensed under Creative Commons
Attribution-NonCommercial-ShareAlike 4.0 International:
https://creativecommons.org/licenses/by-nc-sa/4.0/

The complete legal text is provided in
LICENSES/CC-BY-NC-SA-4.0.txt at the repository root.
This directory holds two renderings of the TideWM logo under different
licenses.

tidewm.png
SPDX-License-Identifier: CC-BY-SA-4.0
Creative Commons Attribution-ShareAlike 4.0 International:
https://creativecommons.org/licenses/by-sa/4.0/
Full legal text: LICENSES/CC-BY-SA-4.0.txt at the repository root.
This is the icon TideWM packages install.

TideWM-logo-faithful-4k.png
SPDX-License-Identifier: CC-BY-NC-SA-4.0
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International:
https://creativecommons.org/licenses/by-nc-sa/4.0/
Full legal text: LICENSES/CC-BY-NC-SA-4.0.txt at the repository root.

Suggested attribution:
TideWM logo by Fi3w0 (2026), CC BY-NC-SA 4.0.
TideWM logo by Fi3w0 (2026), CC BY-SA 4.0 (tidewm.png)
or CC BY-NC-SA 4.0 (TideWM-logo-faithful-4k.png).
Source: https://github.com/Fi3w0/TideWM/tree/master/share/icons

Credit the creator, link to the license and indicate modifications when
sharing the artwork. Sharing and adaptation under this license are for
noncommercial purposes; shared adaptations use the same license or another
license permitted by its ShareAlike terms. The full legal text controls.
sharing the artwork. Shared adaptations use the same license or another
license permitted by its ShareAlike terms. The NonCommercial condition
applies only to TideWM-logo-faithful-4k.png. The full legal texts control.

This artwork license does not grant trademark rights or imply endorsement.
For permission beyond this license, contact Fi3w0:
Neither license grants trademark rights or implies endorsement.
For permission beyond these licenses, contact Fi3w0:
https://github.com/Fi3w0

Rights previously granted under another license are not revoked by this notice.
Loading