Lean Hyprland dotfiles • Automatic wallust theming • Low-end optimized
Features • Quick Start • Getting Started • Installation • Keybindings • Theming • Performance • FAQ
Warning
Repository Renaming Notice: This repository will be renamed to DEVdots soon!
bitzdots is a lean, automated theming system for Hyprland on Wayland. Change your wallpaper, and every component — status bar, terminal, launcher, notifications, logout screen, audio visualizer, even Qt/KDE apps — instantly adapts to match.
Built for low-end hardware without sacrificing usability. The full stack (Hyprland + waybar + swaync) idles under 300MB RAM, with aggressive CPU optimizations to keep fans quiet on older machines.
- 🎨 Full-stack auto-theming — One wallpaper change propagates to 20+ components via wallust (waybar, kitty, rofi, swaync, wlogout, cava, Hyprland borders, Qt/KDE, GTK, even browser CSS)
- ⚡ Event-driven cache daemon — inotify-based background pre-generation means wallpaper switching is instant, not sluggish
- 🖼 Live wallpaper support — Static images with animated transitions (
awww) and video wallpapers (mpvpaper) with automatic palette extraction - 🧩 25 Jinja2 templates — Every themed component (including launcher, power, wallpaper-grid themes and 8 SVG icons) uses a template. Colors are consistent everywhere
- 🔧 Rofi-powered everything — App launcher, clipboard manager (cliphist), power menu, wallpaper picker (grid with thumbnails), WiFi, Bluetooth, audio, system monitor — all keyboard-navigable
- 🖥 Waybar with 15 modules — Workspace batch display, runcat CPU animation, live media, recording indicator, brightness, power profiles, notification center toggle, system TUIs
- 🔒 Full-screen + region recording — wf-recorder with audio, start/stop toggle keybinds, saves to organized directories
- 📸 Screenshots with clipboard — Fullscreen (Print) and selection (SUPER+SHIFT+S) both save AND copy to clipboard
- 🐟 Fish shell + fastfetch — Minimal greeting-less shell, custom BITZ ASCII logo on startup
- 🔄 Safe theme switching — Backup/restore on every wallust run; if generation fails, previous theme is restored
- 🏞 Wallpaper cache daemon — Monitors wallpaper directories with inotify, pre-generates palettes so switching is instant
- 📦 Multi-distro installer — Automated setup for Arch, Fedora, Debian/Ubuntu, and NixOS with
--with-depsflag
git clone https://github.com/bitzzdev/bitzdots.git ~/.config/bitzdots
cd ~/.config/bitzdots
chmod +x install.sh
# Link configs only:
./install.sh
# Or link configs + install all system packages:
./install.sh --with-depsSee the Getting Started guide for a full walkthrough.
| Key | Action |
|---|---|
SUPER + T |
Open terminal |
SUPER + Q |
Close window |
SUPER + Space |
App launcher (rofi) |
SUPER + V |
Clipboard history |
SUPER + SHIFT + S |
Selection screenshot |
Print |
Fullscreen screenshot |
SUPER + R |
Toggle screen recording |
SUPER + SHIFT + W |
Wallpaper picker |
SUPER + N |
Toggle notifications |
SUPER + P |
Power menu |
SUPER + L |
Lock screen |
Full reference: docs/keybindings.md
| Guide | Description |
|---|---|
| Getting Started | First-time setup, recommended config |
| Installation | Detailed install per distro, manual steps |
| Features | Complete feature breakdown |
| Keybindings | All keyboard shortcuts |
| Waybar Modules | Every module explained |
| Theming | How wallust works, templates |
| Scripts | All utility scripts documented |
| Performance | Low-end optimization guide |
| Customization | Add new components, modify themes |
| DEVos Aliases | Arch Linux dev shortcuts & pacman aliases |
| FAQ | Common issues and solutions |
~/.config/
├── hypr/ # Hyprland (Lua config)
│ ├── hyprland.lua # Entry point
│ ├── keybinds.lua # 55+ keybinds
│ ├── appearance.lua # Blur, opacity, borders
│ ├── animations.lua # Window animations
│ ├── rules.lua # 20+ window rules
│ ├── monitors.lua # Monitor setup
│ ├── input.lua # Keyboard, mouse, touchpad
│ └── autostart.lua # Startup applications
├── waybar/ # Status bar
│ ├── config.jsonc # Module layout (themed, 15 modules)
│ ├── style.css # Styling (themed)
│ └── scripts/ # 17 custom scripts
├── rofi/ # App launcher & menus
│ ├── themes/ # 27 variants
│ ├── icons/ # 8 themed SVG icons
│ ├── scripts/ # Power, clipboard, wallpaper
│ └── config.rasi # Main config
├── swaync/ # Notification center
├── wlogout/ # Logout screen
├── kitty/ # Terminal (themed)
├── cava/ # Audio visualizer (themed)
├── wallust/ # Theming engine (25 templates)
├── fish/ # Fish shell config
├── fastfetch/ # System fetch (custom logo)
└── scripts/ # 10 utility scripts
bitzdots is engineered for low-resource environments:
| Metric | Value |
|---|---|
| Idle RAM (full stack) | ~250-300MB |
| Waybar CPU | ~3.5% idle |
| Compositor | Hyprland (~170MB) |
| Notification daemon | swaync (~85MB) |
| Status bar | waybar (~60MB) |
Optimization strategies are documented in Performance.
Wallpaper image
↓ wallust (fastresize backend)
16-color palette
↓ 25 Jinja2 templates
Config files for every component (20+ files)
↓ reload-theme.sh
All apps pick up new colors instantly
- Hyprland (Wayland compositor)
- wallust — color palette generator
- inotify-tools — for cache daemon
- Nerd Font — icons (JetBrainsMono recommended)
Arch Linux (including Arch-based), Fedora, Debian/Ubuntu, NixOS.
- Low-end first — Every watt and megabyte matters. Scripts are optimized for minimal CPU/RAM, not convenience
- Theme automatically — One wallpaper change, everything updates. No manual color picking
- Safe by default — Backup/restore on every theme generation. Failure never leaves you with broken configs
- Keyboard-driven — Everything in reach of the home row. Mouse optional
- No bloat — Every component earns its place. No unused default configs or unnecessary dependencies
MIT