huntedbytheirs a5c64bcac4 perf(wave3): IPC buffer reuse, listener pooling, lazy shadows
Wave 3 changes:
- Static JSON buffer reuse across IPC calls: file-scope json_shared_buf/json_shared_cap,
  json_init allocates once via malloc, json_finish is no-op, json_grow reallocs static buffer
  → eliminates ~30 malloc/free pairs per IPC test workload
- Capped lazy IPC payload: payload_size capped at 64KB, first alloc is min(size+1, 65536),
  subsequent reallocs only when new payload larger than current allocation
  → bounds worst-case per-client allocation
- Embedded wl_listeners: IdleInhibitorTrack and PopupCommitTrack wrapper structs replace
  bare heap-allocated listeners; LISTEN_STATIC macro deprecated
  → consolidates listener + state into one allocation
- Lazy shadow allocation: shadow kept alive across config reload (set_enabled(false) instead
  of destroy); zero shadow allocations for users with shadows disabled
  → eliminates per-client shadow overhead for non-shadow users
- Zero-warning build with clang -Werror -Wpedantic
2026-07-02 23:54:38 -04:00
2026-06-28 17:26:07 -04:00
2026-07-02 23:00:13 -04:00
2026-07-02 01:24:16 -04:00
2026-06-30 02:07:19 -04:00
2026-07-02 02:25:06 -04:00
2026-07-02 23:03:28 -04:00

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)
  • 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
  • More effects are planned and on the way.

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
S
Description
PeachWM is a Wayland Compositor that is powerfully simple for the X11 lifestyle.
Readme GPL-3.0
1.2 MiB
Languages
C 92.8%
Makefile 5.4%
Lua 1.8%