Beta v0.1.0

garchomp

GPU-accelerated X11 compositor with blur, shadows, and animations

garchomp is the compositor component of the gardesk ecosystem. Built with wgpu for GPU-accelerated rendering, it provides modern desktop effects including blur behind transparent windows, soft shadows, rounded corners, and smooth animations. Integrates with gar window manager for workspace transitions and focus effects. Configuration uses the same Lua format as gar, supporting hot-reload and per-window rules.

🎯 RPM Available

Features

Installation

RPM (Fedora/RHEL)

terminal
$sudo dnf config-manager --add-repo https://repos.musicsian.com/musicsian.repo
$sudo dnf install garchomp garchompctl

From Source

terminal
$git clone https://github.com/espadon/gardesk
$cd gardesk/garchomp
$cargo build --release
$sudo cp target/release/garchomp /usr/local/bin/
$sudo cp target/release/garchompctl /usr/local/bin/

Dependencies

  • wgpu - GPU abstraction (Vulkan, Metal, DX12 backends)
  • x11rb - X11 protocol bindings
  • mlua - Lua configuration runtime

Quick Start

Start garchomp as part of your X11 session:

terminal
$garchomp
INFO garchomp compositor starting INFO Initializing GPU renderer for 1920x1080 surface INFO GPU renderer initialized INFO Compositor initialized, tracking 5 windows

With gar Window Manager

When using gar, garchomp starts automatically via systemd:

# ~/.config/systemd/user/garchomp.service
[Unit]
Description=garchomp X11 compositor
PartOf=gar-session.target
After=gar.service

[Service]
ExecStart=/usr/bin/garchomp
Restart=on-failure

[Install]
WantedBy=gar-session.target

CLI Options

terminal
$garchomp --help
garchomp - X11 compositor for gar desktop environment Usage: garchomp [OPTIONS] Options: -d, --display <DISPLAY> X11 display to connect to -c, --config <PATH> Config file path [default: ~/.config/gar/init.lua] -v, --verbose Increase logging verbosity --no-hdr Disable HDR support -h, --help Print help -V, --version Print version

Verbosity Levels

terminal
$garchomp # INFO level logging
$garchomp -v # DEBUG level logging
$garchomp -vv # TRACE level logging

Configuration Locations

garchomp looks for configuration in this order:

  1. ~/.config/garchomp/init.lua - Dedicated garchomp config
  2. ~/.config/gar/init.lua - Shared with gar (garchomp = ... table)

Control with garchompctl

terminal
$garchompctl status
( "version": 1, "window_count": 5, "current_workspace": 1, "effects_enabled": ( "blur": true, "shadows": true, "animations": true, "blur_strength": 5 ), "connected_to_gar": true )
$garchompctl reload
Reloaded configuration
$garchompctl set-effect blur false
$garchompctl set-blur-strength 10

File Locations

  • Config: ~/.config/garchomp/init.lua or ~/.config/gar/init.lua
  • Socket: $XDG_RUNTIME_DIR/garchomp.sock
  • Logs: journalctl --user -u garchomp.service