A portable Wayland theme configuration for Niri compositor, designed to work across multiple Linux distributions with minimal but complete philosophy.
The goal of this project is to create a truly portable Wayland desktop configuration that works seamlessly across different Linux distributions. Most dotfiles are distribution-specific, relying on AUR-only packages or niche tools that break when switching distros.
This theme follows core principles:
| Principle | Description |
|---|---|
| Minimal but Complete | Each widget provides essential functionality without bloat |
| Consistent | Uniform styling, naming conventions, and configuration patterns |
| Readable | Clear configuration structure that is easy to understand |
| Extendable | Modular design allows adding new features without modifying core |
| Composable | Widgets work independently but can be combined seamlessly |
Niri is a scrollable Wayland compositor that provides a modern, Sway-like experience with:
- Modern window management (like Sway)
- Built-in wallpaper support (no extra daemon needed)
- IPC for control
- Growing ecosystem
We prioritize packages available in most distribution repositories:
| Component | Recommended | Alternative |
|---|---|---|
| Compositor | niri | - |
| Display Manager | sddm | lightdm |
| Terminal | kitty | alacritty, wezterm |
| Status Bar | waybar | yabar |
| Notifications | mako | dunst |
| Launcher | wofi | rofi |
| Locker | swaylock | - |
| Brightness | brightnessctl | light |
| Power | power-profiles-daemon | tlp |
| Wallpaper | niri built-in | feh, awww |
This is a complete Wayland desktop theme featuring:
- Niri - Wayland compositor with scrollable workspaces
- SDDM - Display manager
- Kitty - Terminal emulator
- Waybar - Status bar with system info (CPU, memory, battery, network, clock)
- Mako - Notification daemon
- Wofi - Application launcher
- Swaylock - Screen locker
- Brightnessctl - Display brightness control
- Power-profiles-daemon - Power management
# 1. Install dependencies (see docs/pkg.md for your distro)
./scripts/install.sh
# 2. Copy configurations to your system
./scripts/sync.sh --install
# 3. Collect configurations from system (for development)
./scripts/sync.sh --collectThe unified sync.sh script handles both collecting from and deploying to your system:
# Deploy configurations to system (requires confirmation)
./scripts/sync.sh --install
# Collect configurations from system
./scripts/sync.sh --collect| Component | Path |
|---|---|
| Niri | .config/niri/config.kdl |
| Waybar | .config/waybar/config |
| Waybar Style | .config/waybar/style.css |
| Waybar Scripts | .config/waybar/scripts/ |
| Mako | .config/mako/config |
| Kitty | .config/kitty/kitty.conf |
| Wofi | .config/wofi/config |
| Wofi Style | .config/wofi/style.css |
| Swaylock | .config/swaylock/config |
| Binding | Action |
|---|---|
Super + T |
Open terminal (kitty) |
Super + D |
Open app launcher (wofi) |
Super + P |
Cycle power profile |
Super + S |
Rotate wallpaper |
Alt + Print |
Screenshot |
Super + Q |
Close window |
Super + Enter |
Spawn terminal |
Super + B |
Move window to scratchpad |
- Package Guide - Detailed package selection and cross-distro compatibility
- Module Guide - Widget/module documentation and configuration
Wallpapers are included in the wallpapers/ directory. They are automatically copied when running the sync script if you choose to do so.
Wallpapers from Wallhaven