# Dotfiles

My desktop: **Arch Linux + Hyprland** (Lua config) + **aurora**, a custom Quickshell shell (bar, panel,
notifications, OSD, dock), themed live from the wallpaper with **matugen** (pywal16 for the terminal) and deployed with **GNU stow**.
## aurora
One shell instead of waybar, dunst, wlogout, fuzzel and a pile of scripts. Everything below is themed from the
current wallpaper.

Control panel · media, volume/mic/brightness, quick toggles, capture, session |

System · cpu, memory, disks, battery, power profile, GPU mode (envycontrol) |

Runner (Super+R) · apps, scripts, calc, shell; also a dmenu for scripts |

Wallpaper picker · folders, search, re-themes everything through matugen |

Glyph picker (Super+`) · emoji, nerd icons, symbols, kaomoji, fancy text |

Power menu (Super+Esc) · lock, logout, suspend, reboot, ... |

Calendar · from the clock in the bar |

Settings (Super+I) · network, sound, appearance, Hyprland, keybinds, display, power |

Overview · live previews of every workspace and window, click to jump |
> [!WARNING]
> **This is my personal setup, not a general purpose dotfiles framework.**
>
> It's built around my hardware (Lenovo Legion, Intel + NVIDIA hybrid graphics, `linux-zen`), my monitors,
> my keyboard and my habits. I'm not trying to make it work for everyone, and I won't be adding options
> or support for other setups. It's public as a **reference**, or for people who want **exactly the same
> setup** as me.
>
> **Only run `install.sh` on a freshly installed, unconfigured Arch Linux system.** It installs a lot of
> packages (NVIDIA drivers included if you pick them), replaces your configs with symlinks, changes your login
> shell and can enable system services. Don't run it on a system you already use.
## Just want a piece of it?
You don't need the installer for that. Browse the repo and copy what you like, for example:
- `.config/quickshell/aurora/`: the shell (needs Quickshell; it reads its colours from matugen's `~/.cache/matugen/aurora.json`)
- `.config/hypr/`: Hyprland in the new Lua config format
- `.local/bin/`: small scripts (`setwall`, `brictl`, `sysact`, `tms`, ...)
- `.config/matugen/templates/`: matugen templates for aurora, Hyprland, hyprlock, GTK, Qt, zathura, cava
## Installing (fresh Arch only)
```bash
git clone https://git.krolyxon.com/dotfiles ~/.dotfiles
cd ~/.dotfiles
./install.sh # interactive: pick packages per group
./install.sh --yes # pre-select the default packages, no pickers
./install.sh --check # only compare installed packages with the lists, changes nothing
```
The repo has to live at `~/.dotfiles` (stow links into the parent directory).
What `install.sh` does:
1. Refuses to run as root or on anything other than Arch, and asks for confirmation if the system doesn't
look fresh (another desktop's config, or lots of configs this repo doesn't provide).
2. Installs `stow gum git zsh`, shows the disclaimer, then lets you pick packages per group.
3. Runs `stow . --no-folding`. Files that are in the way are **moved** to `~/.dotfiles-backup/