Files
peachwm/README.md
T
2026-07-03 04:42:41 -04:00

3.3 KiB

PeachWM

peachwm

peachwm is a fork of swindle PeachWM is now a independent wayland compositor based on WLRoots that is designed to be similar to MangoWC, while remaining lightweight.

PeachWM is maintained by HuntedByTheIRS.

Features

  • Lua configuration
  • Dwindle, Master, Monocle, and Floating layouts
  • XWayland support
  • Lightweight

Dependencies

  • libinput
  • wayland
  • wlroots-0.20 (compiled with the libinput backend)
  • scenefx (for rendering effects) — see note below
  • xkbcommon
  • wayland-protocols (compile-time only)
  • pkg-config (compile-time only)
  • a C23 compiler — GCC 14+ or Clang 18+ (clang recommended)

Install these (and their -devel versions if your distro has separate development packages) and run make followed by doas/sudo make install, if you wish to install it (installs to /usr/local/bin/ by default).

SceneFX

PeachWM uses scenefx for rendering eye-candy effects on screen. These effects are now considered stable and no longer experimental.

Effects

  • Rounded corners — smooth, configurable corner rounding on windows
  • Shadows — drop shadows for windows
  • Blur — background blur behind transparent windows
  • More effects are planned and on the way.

⚠️ SceneFX version note

PeachWM requires a scenefx build targeting wlroots 0.20. The latest official scenefx release (0.4.1) targets wlroots 0.19 and is not compatible.

The Makefile looks for scenefx-0.5 via pkg-config. This version does not exist as an official release — it refers to a distro-patched scenefx that has been updated to build against wlroots 0.20 and had its SONAME bumped to libscenefx-0.5.so to avoid version conflicts.

How to get a compatible build:

  • Arch (CachyOS): Install scenefx-wlroots20-git from the CachyOS repo (used by CI — version 0.4.1.r32.g7829fdc-1 or later).
  • Other distros: Build scenefx from git master and bump the project version in meson.build to 0.5.0 before installing, or create a symlink/wrapper so pkg-config finds it as scenefx-0.5.

Configuration

Read example/config.lua. It should give you a basic idea of how configuring peachwm works.

Its good to move/copy /etc/peachwm/config.lua to $HOME/.config/peachwm/, but will start without this step if you choose not to.

Installation

make release -j$(nproc)
sudo make install
mkdir -p $HOME/.config/peachwm/
cp /etc/peachwm/config.lua $HOME/.config/peachwm/config.lua

Roadmap

  • No longer require exiting peachwm upon input config changes
  • Allow status bar requests (swaymsg like)
  • Add smartgaps
  • Implement scratchpad workspaces
  • Add animations via scenefx