https://github.com/wayle-rs/wayle
Wayland Elements - A compositor agnostic shell with extensive customization
https://github.com/wayle-rs/wayle
bar catppuccin desktop desktop-shell gtk4 hyprland linux notifications osd panel relm4 rust shell status-bar theme wayland
Last synced: 15 days ago
JSON representation
Wayland Elements - A compositor agnostic shell with extensive customization
- Host: GitHub
- URL: https://github.com/wayle-rs/wayle
- Owner: wayle-rs
- License: mit
- Created: 2025-06-15T23:45:02.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2026-05-13T04:12:56.000Z (21 days ago)
- Last Synced: 2026-05-13T06:23:51.279Z (20 days ago)
- Topics: bar, catppuccin, desktop, desktop-shell, gtk4, hyprland, linux, notifications, osd, panel, relm4, rust, shell, status-bar, theme, wayland
- Language: Rust
- Homepage: https://wayle.app
- Size: 9.78 MB
- Stars: 322
- Watchers: 10
- Forks: 37
- Open Issues: 79
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hyprland - wayle
README
# Wayle
A Wayland desktop shell with the bar, notifications, OSD, wallpaper, and device controls built in. Written in Rust with GTK4 and Relm4.
Configure it in `config.toml`, through the `wayle-settings` GUI, or with the `wayle config` CLI.
## Documentation
Full guides, reference, and walkthroughs are at **[wayle.app](https://wayle.app)**.
- [Getting started](https://wayle.app/guide/getting-started) - Installation instructions
- [Editing config](https://wayle.app/guide/editing-config) - File layout, live reload, imports, CLI editing
- [Bars and layouts](https://wayle.app/guide/bars-and-layouts) - Per monitor layouts, groups, classes
- [Themes](https://wayle.app/guide/themes) - Color tokens, theme files
- [Custom icons](https://wayle.app/guide/custom-icons) - Installing icons, icon sources
- [Custom modules](https://wayle.app/guide/custom-modules) - Shell-backed bar modules
- [CLI](https://wayle.app/guide/cli) - Every subcommand
- [Config reference](https://wayle.app/config/) - Full config documentation
## Install
Arch Linux binary:
```sh
yay -S wayle-bin
```
Arch (from source)
Install Rust via [rustup](https://rustup.rs), then the system libraries:
```sh
sudo pacman -S --needed git gtk4 gtk4-layer-shell gtksourceview5 \
libpulse fftw libpipewire systemd-libs clang base-devel
```
Runtime daemons for the battery, bluetooth, network, power, and audio modules (skip any you don't need):
```sh
sudo pacman -S --needed bluez bluez-utils networkmanager upower \
power-profiles-daemon pipewire wireplumber pipewire-pulse
sudo systemctl enable --now bluetooth NetworkManager upower power-profiles-daemon
```
Debian / Ubuntu
Ubuntu 24.04 LTS does not package `libgtk4-layer-shell-dev`. Use Ubuntu 25.04+ or Debian 13 (trixie).
Install Rust via [rustup](https://rustup.rs), then the system libraries:
```sh
sudo apt install git pkg-config cmake libgtk-4-dev libgtk4-layer-shell-dev \
libgtksourceview-5-dev libpulse-dev libfftw3-dev libpipewire-0.3-dev \
libudev-dev clang build-essential
```
Runtime daemons:
```sh
sudo apt install dbus-user-session bluez network-manager \
upower power-profiles-daemon pipewire-pulse wireplumber
sudo systemctl enable --now bluetooth NetworkManager upower power-profiles-daemon
```
Fedora
Requires Fedora 42 or later.
Install Rust via [rustup](https://rustup.rs), then the system libraries:
```sh
sudo dnf install git cmake pkgconf-pkg-config gtk4-devel gtk4-layer-shell-devel \
gtksourceview5-devel pulseaudio-libs-devel fftw-devel pipewire-devel \
systemd-devel clang gcc
```
Fedora Workstation already ships the runtime daemons. Minimal and Server installs need:
```sh
sudo dnf install pipewire-pulseaudio wireplumber NetworkManager bluez upower \
power-profiles-daemon
sudo systemctl enable --now bluetooth NetworkManager upower power-profiles-daemon
```
### Build and launch:
```sh
git clone https://github.com/wayle-rs/wayle
cd wayle
cargo install --path wayle
cargo install --path crates/wayle-settings
wayle icons setup
wayle panel start
```
On a different distro? See [wayle.app/guide/getting-started](https://wayle.app/guide/getting-started) for the library-version reference.
## Configuration
The config file is at `~/.config/wayle/config.toml`. Changes reload on save:
```toml
[bar]
location = "top"
scale = 1.25
[[bar.layout]]
monitor = "*"
left = ["dashboard"]
center = ["clock"]
right = ["volume", "network", "bluetooth", "battery"]
[modules.clock]
format = "%H:%M"
```
Every field is documented at [wayle.app/config](https://wayle.app/config/).
## Requirements
A Wayland compositor that implements the `wlr-layer-shell` protocol. Compositor-specific modules currently target Hyprland; Niri, Sway, and Mango support is in development.
## Credits
Logo by [@M70v](https://www.instagram.com/m70v.art/).
## License
MIT