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.
Desktop syncs install checksum-pinned OpenEffects 0.1.4 native packages (x86_64)
before dotpkg links its settings and enables its user service on default.target.
The GTK preview dependency is declared in the manifest. Reactions are enabled,
the physical camera is autodetected, and capture/effects processing stops when
no application consumes the virtual camera. OpenEffects is managed by pacman,
not dotpkg's package-clean stage, until an upstream package origin is available.
To migrate an existing install, review your local manifest before running:
./linux/install/sync --refresh-manifest --replaceRefreshing backs up the local manifest; --replace can replace conflicting
config paths across the desktop profile. Chrome is the shared default browser;
its managed chrome-flags.conf enables PipeWire camera support. Fully quit and
reopen Chrome after applying it, then select OpenEffects Virtual Camera in your
calling app.
Microsoft Edge is not installed. The archqms host overlay additionally
links its flags file for an independently installed Edge. On that machine use
./linux/install/sync --host archqms --refresh-manifest --replace and fully quit
and reopen Edge after applying it.





