swayfx-mosaic/docs/UPSTREAM.md

1.6 KiB

Upstream relationship

SwayFX Mosaic is intentionally maintained as a small feature delta above SwayFX.

Initial base

  • Project: SwayFX
  • Upstream: https://github.com/WillPower3309/swayfx
  • Tag: 0.6
  • Commit: fd71a6bdc061bd633b488ae7b83e8a6981d22f86
  • Sway base reported by SwayFX: 1.12.0
  • wlroots ABI used by this base: 0.20
  • SceneFX ABI used by this base: 0.5

The original local Arch package was swayfx 0.6-1. Its exact build-source commit could not be reconstructed, so the signed/verifiable project base is the public upstream 0.6 tag commit rather than a claim of byte-for-byte equivalence with that package.

Remote policy

Local development uses:

upstream → SwayFX upstream
origin   → Forgejo canonical repository
github   → GitHub mirror

Only the project remotes receive Mosaic commits.

Do not push Mosaic branches to upstream.

Version policy

Mosaic versions follow the SwayFX base explicitly.

Example:

swayfx 0.6
swayfx-mosaic 0.6+mosaic.1

A future SwayFX 0.7 does not automatically imply a working Mosaic 0.7 package. The patch must be rebased and validated first.

Why a separate binary?

SwayFX does not expose a stable runtime plugin ABI for injecting a new layout. Mosaic therefore cannot be shipped as a small external .so while leaving the running /usr/bin/sway binary unchanged.

The package instead builds the compositor with the Mosaic delta but installs it under a different executable name.

This preserves the operational requirement that ordinary SwayFX can continue to update and remain a safe fallback.