Arch Linux dotfiles managed with GNU Stow, featuring a Hyprland (Wayland) desktop environment with a custom QuickShell bar and a unified theme system that applies across the entire setup.
- πͺ Hyprland - Tiling Wayland compositor with modular configuration
- π₯οΈ QuickShell - Custom QML-based status bar, launcher, notifications, quick settings, and power menu
- π¨ Dynamic Theming - 11 themes (6 dark + 5 light variants) applied live across the entire system, plus a Material You auto mode that generates colors from your wallpaper
- πΌοΈ Wallpaper Picker - Built-in wallpaper manager with search, favorites, and per-theme wallpaper folders
- πΈ Screenshot Tool - Multi-monitor region/fullscreen capture with annotation overlay
- βοΈ Neovim - Lua-based configuration with LSP, Telescope, Smart Splits, and lazy.nvim
- π Tmux - Terminal multiplexer with seamless Neovim navigation (Smart Splits)
- π± Kitty - GPU-accelerated terminal with dynamic theme switching
- β‘ Zsh - Oh-My-Zsh with autosuggestions, syntax highlighting, vi-mode, and Powerlevel10k
- π§ Lyne CLI - Built-in command-line tool for managing the dotfiles
Switching themes from the Quick Settings panel or CLI applies colors instantly to:
| Component | What changes |
|---|---|
| QuickShell (bar, launcher, notifications) | All UI colors |
| Kitty | Terminal colors, cursor, tabs, borders |
| Neovim | Colorscheme (sent to all running instances) |
| Hyprland | Active/inactive border colors, shadow |
| GTK / Qt | Application theme colors |
| Wallpaper | Theme-linked wallpaper applied via swww |
No restarts required.
Available presets:
| Dark | Light |
|---|---|
| Tokyo Night | Tokyo Night Day |
| Catppuccin Mocha | Catppuccin Latte |
| Dracula | β |
| Gruvbox Dark | Gruvbox Light |
| Nord | Nord Light |
| Rose Pine | Rose Pine Dawn |
Material You mode generates a color palette from your current wallpaper using matugen, supporting both dark and light schemes. Enable it from Quick Settings or with lyne theme auto.
- Arch Linux
- Git
- Internet connection
git clone https://github.com/caioax/lyne-dots.git ~/.lyne-dots
cd ~/.lyne-dots
./install.shThe installer is interactive and lets you pick which package categories to install. After finishing, it will prompt you to reboot.
| Category | Packages |
|---|---|
core |
Hyprland, UWSM, portal |
terminal |
Kitty, Zsh, Tmux, Fastfetch |
editor |
Neovim + development tools |
apps |
Dolphin, Zen Browser, Spotify, mpv |
utils |
Clipboard, playerctl, audio, etc |
fonts |
Nerd Fonts, cursors, icons |
quickshell |
QuickShell bar/shell |
theming |
Qt/GTK theming |
nvidia |
NVIDIA drivers (only if needed) |
./install.sh --stow-only # Only create symlinks
./install.sh --setup-only # Only run Hyprland setup
./install.sh --packages core # Install a single categorySee .install/README.md for more details.
Lyne Dots includes a built-in CLI tool called lyne for managing the dotfiles. It is loaded automatically via .zshrc.
lyne <command> [args...]
| Command | Description |
|---|---|
theme |
Manage themes (set, list, auto, scheme) |
state |
Manage state.json (edit, sync, rebuild) |
migrate |
Manage migrations (run, list, done) |
update |
Pull latest changes, sync state, and run migrations |
git |
Run git commands in the dotfiles repo |
reload |
Reload QuickShell |
help |
Show available commands |
Run lyne <command> --help for details and subcommands.
# Show current theme info
lyne theme
# List all available themes (dark and light)
lyne theme list
# Switch to a specific theme preset
lyne theme set catppuccin-mocha
# Switch to Material You auto mode (colors from wallpaper)
lyne theme auto
# Toggle between dark and light scheme
lyne theme scheme light
# Pull the latest changes and apply migrations
lyne update
# Check the git status of the dotfiles
lyne git status
# Edit the QuickShell state configuration
lyne state
# Sync state.json after a manual defaults.json update
lyne state sync
# Check which migrations are pending
lyne migrate list
# Show help for a specific command
lyne state --help| Keybind | Action |
|---|---|
Super + Return |
Terminal (Kitty) |
Super + D |
File Manager (Dolphin) |
Super + Z |
Browser (Zen Browser) |
Super + Space |
App Launcher |
| Keybind | Action |
|---|---|
Super + Q |
Kill window |
Super + F |
Fullscreen |
Super + Shift + F |
Fullscreen (pinned) |
Super + Shift + Space |
Toggle floating |
Super + Tab |
Toggle split |
Super + P |
Pseudo tile |
Super + H J K L |
Move focus (left/down/up/right) |
Super + Shift + H J K L |
Move window |
Super + Alt + H J K L |
Resize window |
| Keybind | Action |
|---|---|
Super + 1-0 |
Switch to workspace 1-10 |
Super + Shift + 1-0 |
Move window to workspace 1-10 |
Super + Ctrl + H / L |
Previous / Next workspace |
Super + Ctrl + Shift + H / L |
Move window to prev / next workspace |
Super + W |
Toggle WhatsApp workspace |
Super + M |
Toggle Spotify workspace |
Super + S |
Toggle Magic workspace |
| Keybind | Action |
|---|---|
Super + B |
Wallpaper Picker |
Super + / |
Keybinds Help |
Super + V |
Clipboard History |
Super + End |
Power Menu |
Print |
Screenshot |
Super + = / - |
Zoom in / out |
Super + Shift + R |
Reload QuickShell |
| Keybind | Action |
|---|---|
Volume Keys |
Volume up / down / mute |
Brightness Keys |
Brightness up / down |
Media Keys |
Play / Pause / Next / Previous |
Each top-level directory is a GNU Stow package that gets symlinked into $HOME.
| Directory | Description |
|---|---|
hyprland/ |
Hyprland compositor config (appearance, keybinds, rules) |
quickshell/ |
QML shell: bar, launcher, notifications, quick settings |
nvim/ |
Neovim config with lazy.nvim plugin manager |
tmux/ |
Tmux config with TPM and Smart Splits integration |
kitty/ |
Kitty terminal config with dynamic themes |
zsh/ |
Zsh config with Oh-My-Zsh and Powerlevel10k |
local/ |
Custom scripts, wallpapers (~/.local/wallpapers/), and themes (~/.local/themes/) |
fastfetch/ |
System info display config |
theming/ |
GTK3/4 and Qt5/6 theme settings |
kde/ |
KDE Plasma global settings (colors, icons, fonts) |
| Directory | Description |
|---|---|
.install/ |
Installation scripts and package lists |
.data/ |
Templates, default themes, and default wallpapers |
.data/lyne-cli/ |
CLI commands, libraries, and migrations |
| Component | Tool |
|---|---|
| Compositor | Hyprland |
| Session Manager | UWSM |
| Desktop Shell | QuickShell |
| Terminal | Kitty |
| Shell | Zsh + Oh-My-Zsh |
| Multiplexer | Tmux |
| Editor | Neovim |
| Wallpaper | swww |
| Auto Theming | matugen |
| File Manager | Dolphin |
| Browser | Zen Browser |
| AUR Helper | yay |
| Dotfile Manager | GNU Stow |
Machine-specific configs are kept in ~/.config/hypr/local/ and are not tracked by git. The install script generates these from templates in .data/hyprland/templates/ on first run:
monitors.conf- Monitor layoutworkspaces.conf- Workspace mappingextra_environment.conf- Local environment variablesautostart.conf- Local autostart programsextra_keybinds.conf- Local keybinds
Wallpapers live in ~/.local/wallpapers/ (git-ignored, defaults copied on install) and are managed through the QuickShell wallpaper picker (Super + B). Features include:
- Search by filename
- Favorites with persistent state
- Theme wallpapers organized in
~/.local/wallpapers/themes/{theme-name}/ - Each theme can have multiple wallpapers; the active one is set from the picker and applied automatically on theme switch
Themes are JSON files in ~/.local/themes/ (git-ignored, defaults copied from .data/themes/ on install). Each theme defines colors for the palette, terminal, Hyprland, Neovim, GTK/Qt, and a wallpaper path. Light themes include a "variant": "light" field and a "darkPair" field linking them to their dark counterpart. To create a new theme, copy an existing one and modify the values.
- Screenshot implementation inspired by HyprQuickFrame





