Arch Linux · Hyprland / i3 · Quickshell · Neovim
| Component | Setup |
|---|---|
| Window managers | Hyprland on Wayland · i3 on X11 |
| Desktop shell | Quickshell bar, panels, notifications, and OSDs |
| Launchers | Fuzzel on Hyprland · rofi on i3 |
| Compositor | Hyprland effects · Picom for i3 |
| Editor | Neovim with lazy.nvim |
The configs favor a quiet status surface, quick keyboard workflows, and panels that reveal detail only when needed. Shared helpers keep the Hyprland and i3 setups familiar across Wayland and X11.
Quickshell · Control Center |
Quickshell · Calendar and weather |
Three launcher palettes, including a light theme. These are design previews of the launcher configuration.
![]() Slate · default |
![]() Graphite · compact |
![]() Porcelain · light |
The desktop configuration expects the repository at $HOME/dotfiles on
Arch Linux.
git clone --recurse-submodules git@github.com:lukelex/dotfiles.git "$HOME/dotfiles"
cd "$HOME/dotfiles"
./linux/install/syncFor a headless server, use ./linux/install/all --server. For a specific
machine, pass a committed host overlay, for example:
./linux/install/sync --host <name>linux/packages.yaml— desktop and server package selections, config links, and services.linux/install/— sync, full setup, verification, and supporting installer steps.linux/config/— application and desktop configurations.linux/scripts/— system helpers, installed asu_*commands on desktop setups.linux/hosts/README.md— host overlay format.linux/config/fuzzel/README.md— launcher themes and shortcuts.
How installation works
sync reconciles packages, groups, config links, and services from the selected
profile using the pinned dotpkg binary. On first use, it seeds
$XDG_CONFIG_HOME/dotpkg/package.yaml from linux/packages.yaml; dotpkg stores
its state beside that manifest.
Preview the reconciliation with:
./linux/install/sync --dry-runThe first run can still bootstrap yay and initialize dotpkg's local manifest
and state. Existing installs keep their local manifest; use
--refresh-manifest to adopt the repository version (a backup is saved beside
it). Config conflicts are preserved unless --replace is passed. Use
./linux/install/all to include system setup, post-install steps, and
verification, or ./linux/install/verify to check an existing setup.
For package and resource maintenance, see dotpkg --help. dotpkg clean only
removes stale managed packages; dotpkg recover handles an interrupted
transaction.





