A sleek, modern, dynamic Wayland desktop environment powered by Niri (scrollable tiling compositor) with a real-time, wallpaper-driven theme engine.
- Scrollable Tiling Compositor: Smooth, modern Wayland experience powered by Niri.
- Dynamic Real-Time Theming: Press
Mod + Wto pick any wallpaper. An automated Python theme generator extracts the dominant palette and updates colors across all desktop components instantly without restarting sessions:- Swaybg: Sets the background wallpaper.
- Waybar: Updates CSS color variables (
colors.css) and reloads instantly. - Rofi: Dynamically updates launcher styles, clipboard menu, and power menu.
- Ghostty: Updates terminal color theme configuration on the fly.
- Zellij: Hot-reloads terminal multiplexer colors live in active sessions.
- Neovim: Updates color scheme configuration in
init.lua/colors.lua. - Starship: Dynamically sets prompt color accents.
- Niri: Updates window focus ring and active border colors.
- Mako: Updates notification popups with matching accent borders.
- Modern CLI Stack:
eza,bat,fd,btop,fastfetch,lazygit,bluetuith,nmtui,zoxide, andyazi. - Interactive Cheatsheet: Run
dots-helpin any terminal (ordots-help -ifor interactivefzfsearch) to view all aliases, keybindings, and system shortcuts.
| Keybinding | Action | Description |
|---|---|---|
Mod + T |
Terminal | Launch Ghostty terminal emulator |
Mod + Shift + T |
Scratchpad | Toggle floating scratchpad Ghostty terminal (preserves context) |
Mod + D |
Launcher | Launch Rofi application menu |
Mod + W |
Wallpaper Picker | Select wallpaper & auto-generate dynamic theme |
Mod + V |
Clipboard History | Open Cliphist clipboard history menu |
Mod + Shift + P |
Power Menu | Shutdown / Reboot / Lock screen menu |
Mod + Shift + S |
Screenshot | Interactive screen selection screenshot (Satty) |
Mod + L |
Lock Screen | Lock session immediately (Swaylock) |
Mod + Q |
Close Window | Close focused window |
Mod + Tab |
Workspace Overview | Toggle workspace grid overview |
Mod + C |
Center Column | Center current window column |
Mod + 1..9 |
Switch Workspace | Switch to workspace 1 through 9 |
Mod + Shift + 1..9 |
Move Window | Move current window to workspace 1..9 |
The heart of this configuration is scripts/theme_generator.py triggered by walltheme <image_path> or through the Rofi Wallpaper Picker (Mod + W).
- Palette Extraction: Quantizes colors from the selected wallpaper into primary background, foreground, accents, and 16-color ANSI terminal palettes.
- Template Interpolation: Re-writes config files across the system with matching color variables.
- Live Signal Propagation: Sends IPC / SIGUSR signals and updates watched config files so running applications (Waybar, Zellij, Niri, Ghostty, Mako) update their visual appearance in real time.
This repository replaces legacy shell utilities with modern Rust/C++ alternatives:
ls/la/tree→ezawith icons and git integrationcat→batwith syntax highlighting and line numbersfind→fdfast file findertop→btopgraphical resource monitorcd→zoxide(z/zi) directory jumping- File Manager →
yazi(y) with directory syncing on exit - Terminal Multiplexer →
zellij(zj) - Git TUI →
lazygit(lg) - Bluetooth TUI →
bluetuith(blue) - Wi-Fi TUI →
nmtui(wifi)
dots-help(dots_help.py): Interactive CLI cheatsheet. Rundots-helpordots-help -ito filter shortcuts interactively withfzf.tokens(check_tokens.py): AI token consumption and GCP estimated usage monitor.
Dotfiles/
├── .bashrc # Custom aliases, env vars, and shell functions
├── .config/
│ ├── ghostty/ # Ghostty terminal emulator configuration
│ ├── mako/ # Mako notification daemon config
│ ├── niri/ # Niri Wayland compositor config (config.kdl)
│ ├── nvim/ # Neovim (LazyVim) setup
│ ├── rofi/ # Rofi launchers, wallpaper picker, clipboard, powermenu
│ ├── starship.toml # Starship prompt configuration
│ ├── waybar/ # Waybar bar layout, styles, weather & Wi-Fi scripts
│ ├── yazi/ # Yazi file manager configuration
│ └── zellij/ # Zellij terminal multiplexer config & dynamic theme
├── scripts/
│ └── theme_generator.py # Python wallpaper palette extractor & theme generator
├── Wallpapers/ # Curated wallpaper gallery
├── dots_help.py # Interactive cheatsheet CLI
└── check_tokens.py # AI usage & token tracking utility
Configs are symlinked into ~/.config/:
ln -s ~/Dotfiles/.config/niri ~/.config/niri
ln -s ~/Dotfiles/.config/waybar ~/.config/waybar
ln -s ~/Dotfiles/.config/rofi ~/.config/rofi
ln -s ~/Dotfiles/.config/ghostty ~/.config/ghostty
ln -s ~/Dotfiles/.config/zellij ~/.config/zellij
ln -s ~/Dotfiles/.config/mako ~/.config/mako
ln -s ~/Dotfiles/.config/nvim ~/.config/nvim
ln -s ~/Dotfiles/.config/yazi ~/.config/yazi
ln -s ~/Dotfiles/.config/starship.toml ~/.config/starship.tomlAlternatively, run the automated installation script:
cd ~/Dotfiles
./install.sh