A lightweight, customizable tiling Wayland compositor built with wlroots and C++.
- Multiple Tiling Layouts - Master-stack, monocle, grid
- XWayland Support - Run X11 applications seamlessly alongside Wayland clients
- Workspaces - 9 dynamic workspaces with quick switching
- Built-in Notification Daemon - No external daemon needed
- Tabbed Windows - Organize windows with tabs (in development)
- Application Launcher - Enhanced menubar with desktop app integration
- Vim-like Keybindings - Familiar hjkl navigation
- Layer-Shell Support - For panels, notifications, and overlays
- Built-in Help - Press
Super + F1for keybinding overlay - Customizable - Colors, gaps, borders, and behavior
Ubuntu/Debian:
sudo apt install build-essential cmake meson ninja-build \
wayland-protocols libwayland-dev libxkbcommon-dev libpixman-1-dev \
libyaml-cpp-dev libcairo2-dev libgdk-pixbuf-2.0-dev libgtk-3-dev \
libxcb-dri3-dev libxcb-present-dev libxcb-sync-dev \
libxcb-composite0-dev libxcb-render-util0-dev libxcb-xinput-devArch Linux:
sudo pacman -S base-devel cmake meson ninja wayland wayland-protocols \
xkbcommon pixman gtk4 gtk-layer-shell./build.sh
./build/leviathanRun from a TTY (Ctrl+Alt+F2) or nested in another Wayland session with cage ./build/leviathan.
All keybindings use Super (Windows key):
Super + Return- Launch terminalSuper + p- Application launcherSuper + F1- Show all keybindingsSuper + j/k- Focus next/previous windowSuper + 1-9- Switch workspaceSuper + Shift + c- Close windowSuper + t/m/g- Switch layout (tile/monocle/grid)
Create ~/.config/leviathan/leviathanrc:
border_width 2
gap_size 10
border_focused #5e81ac
border_unfocused #3b4252
focus_follows_mouse trueVisit leviathansystems.github.io/LeviathanDM for:
- Installation guides
- Feature documentation
- Customization options
- Development guides
- Plugin development
- Architecture details
Contributions are welcome! See the Contributing Guide for details.
Pre-built binaries are available on the Releases page.
MIT License - Feel free to modify and distribute!
Built out of frustration with existing window managers/compositors. Feel free to fork and customize!
