Stable v0.3.1

🪟 gar

Tiling window manager for X11 with smart splits and Lua configuration

gar is the centerpiece of the gardesk desktop environment. Written in Rust with x11rb bindings, it provides a tiling window management experience with smart automatic splits, Lua scripting for configuration and keybindings, native integration with garbar status bar, and deep compositor integration via picom for visual effects including blur, shadows, rounded corners, and animations.

🎯 RPM Available

Features

Installation

RPM (Fedora/RHEL)

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

From Source

terminal
$git clone https://github.com/gardesk/gar
$cd gar && cargo build --release
$sudo cp target/release/gar /usr/local/bin/
$sudo cp target/release/garctl /usr/local/bin/

Dependencies

gar requires the following runtime dependencies:

  • x11 - X11 libraries (libX11, libXrandr)
  • lua54 - Lua 5.4 for configuration
  • picom - Compositor for visual effects (optional but recommended)

Quick Start

1. Create Configuration

Copy the example configuration to your config directory:

terminal
$mkdir -p ~/.config/gar
$cp /usr/share/gar/examples/init.lua ~/.config/gar/

2. Add to .xinitrc

For startx-based sessions, add gar to your .xinitrc:

terminal
$echo "exec gar" >> ~/.xinitrc

3. Display Manager Session

gar installs a desktop entry at /usr/share/xsessions/gar.desktop. Select "gar" from your display manager's session menu.

4. First Launch

On first launch, use Mod+Return to open a terminal. Mod is the Super/Windows key by default. Press Mod+Shift+r to reload config after making changes.