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#
- Installation: packages for your distro, and what your system needs.
- Running carrot: starting a session from a TTY, VT switching, logs, and quitting.
- Tiling & windows and Workspaces & monitors: how the layout thinks.
- Configuration: the KDL and Lua config files, with the full schema.
- Animations: springs, easings, custom curves, and styles.
- Binds & actions: keybind grammar and everything a key can do.
- burrow & IPC: the companion CLI and the JSON control socket.
- Screen sharing and Gaming: the two how-to pages everyone asks for.
- Architecture: the zero-C tour, for the curious.
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.