Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Wayland Elements - A compositor agnostic shell with extensive customization

License

Notifications You must be signed in to change notification settings

Jas-SinghFSU/wayle

Repository files navigation

Wayle

⚠️ 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.

Progress

Core Infrastructure

  • Configuration System - Reactive TOML config with schema validation
  • CLI Interface - Complete command-line management interface
  • Documentation Generator - Auto-generated config docs from schemas

Services

  • MPRIS
  • PulseAudio
  • Network
  • Bluetooth
  • Battery
  • Notification Daemon
  • Power Profiles
  • System Tray
    • GTK4 Adapter
  • Hyprland
  • Cava

UI Components

  • 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

Scoped out

  • Updates
    • Too much surface area and distro coupling
    • Will be achievable easily via custom modules

Dropdown Interfaces

  • Audio Panel
  • Battery Panel
  • Bluetooth Panel
  • Calendar Panel
  • Dashboard
  • Media Panel
  • Network Panel
  • Notifications Panel
  • Weather Panel

Additional Features

  • Settings Dialog
  • Notifications
  • OSD
  • Custom Modules

Configuration

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 = true

Config 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.scale

Editor 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 schema

Building

Switch to nightly Rust:

rustup toolchain install nightly
rustup override set nightly

Then 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 wayle

Once Wayle is installed, you can set up the icons (temporary measure) and start it via:

wayle icons setup
wayle panel start

Icons

Wayle 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 --help

Icons are installed to ~/.local/share/wayle/icons/ as GTK symbolic icons.

License

MIT

About

Wayland Elements - A compositor agnostic shell with extensive customization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •