⚠️ Work in Progress: Wayle is under active development. The bar and modules that are completed under the UI Components section are ready to use. This, however, is not a stable environment, things are subject to change.
A fast, configurable desktop environment shell for Wayland compositors. Built in Rust with Relm4 and focused on performance, modularity, and a great user experience. A successor to HyprPanel without the pain or dependency on Hyprland.
- Configuration System - Reactive TOML config with schema validation
- CLI Interface - Complete command-line management interface
- Documentation Generator - Auto-generated config docs from schemas
- MPRIS
- PulseAudio
- Network
- Bluetooth
- Battery
- Notification Daemon
- Power Profiles
- System Tray
- GTK4 Adapter
- Hyprland
- Cava
- Component Library - Base Relm4 widgets and containers
- Bar Modules (WIP):
- Battery
- Media
- Volume
- Network
- Bluetooth
- Clock
- Microphone
- System tray
- Notification
- Dashboard
- Netstat
- RAM
- CPU
- CPU Temp
- Storage
- Separator
- Power
- World clock
- Weather
- Idle Inhibit
- Keyboard input
- Hyprland Window title
- Hyprland submap
- Hyprsunset
- Hyprland workspaces
- Custom Modules
- Cava
- Updates
- Too much surface area and distro coupling
- Will be achievable easily via custom modules
- Audio Panel
- Battery Panel
- Bluetooth Panel
- Calendar Panel
- Dashboard
- Media Panel
- Network Panel
- Notifications Panel
- Weather Panel
- Settings Dialog
- Notifications
- OSD
- Custom Modules
Configuration lives in ~/.config/wayle/config.toml with live reloading.
[styling]
theme-provider = "wayle"
[styling.palette]
bg = "#16161e"
fg = "#c0caf5"
primary = "#7aa2f7"
[bar]
scale = 1
location = "top"
rounding = "sm"
[[bar.layout]]
monitor = "*"
left = ["clock"]
center = ["media"]
right = ["battery"]
[modules.clock]
format = "%H:%M"
icon-show = true
label-show = trueConfig files can be split and imported for better organization:
# config.toml
imports = ["@colors.toml", "@modules/bar.toml"]
[bar]
location = "top"Paths prefixed with @ resolve relative to the config directory.
CLI commands can also be used to modify, get or reset any property:
wayle config get bar.scale
wayle config set bar.location bottom
wayle config reset bar.scaleEditor intellisense is available via JSON Schema. Install
Tombi
for VSCode or the tombi LSP for Neovim. The schema is generated automatically
on startup.
This will give you auto-complete, config validation and other nice QoL features for your config.toml (and other toml files).
wayle config schemaSwitch to nightly Rust:
rustup toolchain install nightly
rustup override set nightlyThen clone the repository recursively and build:
git clone --recursive https://github.com/Jas-SinghFSU/wayle
cd wayle
cargo install --path crates/wayle-shell
cargo install --path wayleOnce Wayle is installed, you can set up the icons (temporary measure) and start it via:
wayle icons setup
wayle panel startWayle uses GTK symbolic icons that support CSS color theming.
To manually manage icons:
# Install bundled icons (automatic on first launch)
wayle icons setup
# Install additional icons from CDN sources
wayle icons install tabler home settings bell
wayle icons install simple-icons firefox spotify
# See all available sources
wayle icons install --helpIcons are installed to ~/.local/share/wayle/icons/ as GTK symbolic icons.
MIT