contents

The carrot almanac#

carrot is a tiling Wayland compositor written in pure Rust with zero linked C, all the way down to the kernel. No libwayland, no libdrm, no libinput, no libxkbcommon, no libseat, and no libc: the whole stack beneath it is hand-grown. These pages cover installing it, configuring it, and driving it.

carrot is in its first beta (v0.1.0). The tiling, input, multi-monitor, and XWayland spine is real and daily-drivable, and 0.1.0 rounds it out with a full animation system, Kawase blur, rounded corners, drop shadows, and a second, scrolling layout. The homepage ledger tracks what runs today versus what is planted.

Where to start#

The five-minute version#

# install from your package manager (AUR, COPR, .deb, nix flake, crates.io)
yay -S carrot              # see Installation for the others
carrot                     # from a TTY, or pick Carrot at your login screen

On first run carrot writes a guided config to ~/.config/carrot/carrot.kdl: every section walked through in comments with docs links, and working binds for terminals, focus, and workspaces already in it. The shape of it:

layout {
    gaps-in 5
    gaps-out 10
    border { width 2; active-color "#89b4fa" }
}
animations {
    spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
    window-open { ease duration-ms=150 curve="ease-out-expo"; style "popin" perc=80 }
}
binds {
    Mod+Return { spawn "foot"; }
    Mod+1 { focus-workspace 1; }
    Mod+Q { close-window; }
}

Start carrot from a TTY. You can switch VTs at any time with Ctrl+Alt+F1 through F12; that shortcut is hardcoded, so no config mistake can take it away. A broken config will not strand you either: carrot prints every error it found and boots on the built-in default.

Getting help#

The fastest route is the Discord. Bugs and code live on GitHub. Security issues go to security@carrotwm.org.