swayfx-enhanced

A guide to installing SwayFX Enhanced on Debian 13 (Trixie/Sid)

Note: This guide targets SwayFX Enhanced (based on Sway 1.11). It manually builds the required dependencies (wlroots 0.19.0 and scenefx-enhanced) using Meson subprojects to ensure compatibility and stability.

1. Install Dependencies

Debian Trixie requires a specific set of development headers, particularly for the newer wlroots 0.19 backend (which needs liblcms2, libliftoff, and libdisplay-info).

sudo apt update && sudo apt install -y \
  meson pkg-config cmake git scdoc \
  wayland-protocols libwayland-dev libpcre2-dev libjson-c-dev \
  libpango1.0-dev libcairo2-dev libgdk-pixbuf-2.0-dev \
  libdrm-dev libgbm-dev libinput-dev libseat-dev libxkbcommon-dev \
  libxcb-dri3-dev libxcb-present-dev libxcb-res0-dev \
  libxcb-render-util0-dev libxcb-ewmh-dev libxcb-icccm4-dev \
  libliftoff-dev libdisplay-info-dev liblcms2-dev libpixman-1-dev

2. Setup Build Environment

We will use the Meson Subprojects method. This places the specific versions of wlroots and scenefx directly inside the build folder, preventing conflicts with system libraries.

# Create a clean build directory
mkdir -p ~/build
cd ~/build

# 1. Clone SwayFX Enhanced
git clone https://github.com/CreitinGameplays/swayfx-enhanced.git
cd swayfx-enhanced

# 2. Setup Subprojects Directory
mkdir -p subprojects
cd subprojects

# 3. Clone SceneFX Enhanced
git clone https://github.com/CreitinGameplays/scenefx-enhanced.git scenefx

# 4. Clone Wlroots 0.19.0 (The Wayland Compositor Backend)
git clone https://gitlab.freedesktop.org/wlroots/wlroots.git
cd wlroots
git checkout 0.19.0

# Return to source root
cd ../..

Your directory structure should now look like this:

~/build/swayfx-enhanced
└── subprojects
    ├── scenefx (enhanced)
    └── wlroots (v0.19.0)

3. Compile and Install

Now we build everything in one go. Meson will detect the code in subprojects/ and build it automatically.

# Configure the build
meson setup build/

# Compile
ninja -C build/

# Install
sudo ninja -C build/ install

4. Finalize

Debian does not automatically link new libraries in /usr/local/lib immediately. You must update the linker cache to avoid “shared object not found” errors.

sudo ldconfig

5. Verification

Check that the installation was successful and is using the correct version base.

sway --version
# Expected Output: 
# swayfx version 0.5.3... (based on sway 1.11.0)