haylan 2227a23630 Document the confd/hyprpaper config rewrite traps and pin known versions
Both bugs fixed in the preceding commits came from assuming an older
config syntax was still valid. Recorded the gotcha directly on the
relevant Architecture bullets, plus a version table for every
dotfiles-managed package so future edits check the installed version
against upstream's current schema instead of repeating the mistake.
2026-07-07 23:27:34 +02:00
2026-07-04 23:48:24 +02:00
2026-07-04 23:48:24 +02:00
2026-07-04 23:48:24 +02:00
2026-07-07 23:26:43 +02:00

DotFiles

Master repo for a Hyprland desktop on Arch Linux. Dotfiles are organized as GNU Stow packages (one top-level dir per app, mirroring $HOME), and an interactive TypeScript CLI drives package installation, symlinking, updates, and removal.

Prerequisites

sudo pacman -S --needed stow nodejs npm

(yay is bootstrapped automatically by install if missing.)

Usage

npm install
npm start install   # interactive: choose packages, installs them, backs up
                     # conflicting files, symlinks dotfiles into $HOME
npm start update     # pacman -Syu + yay -Syu, then re-links any new files
npm start remove     # removes symlinks, restores the most recent backup
                      # (does NOT uninstall packages)

Backups of any pre-existing files that would have collided with a symlink are stored at ~/.dotfiles-backup/<timestamp>/. remove restores the most recent one automatically; to restore an older one manually:

cp -a ~/.dotfiles-backup/<timestamp>/. ~/

Which packages/dirs were chosen at install time is recorded in ~/.config/dotfiles/state.json, so update/remove know what to act on without re-prompting.

install also installs SDDM and enables its systemd service (so Hyprland actually starts at next boot), and auto-detects installed GPU(s) via lspci to propose NVIDIA/AMD/Intel driver packages (confirm/override before they're installed). If NVIDIA is kept, the required Wayland env vars are written to ~/.config/hypr/confd/nvidia.lua (machine-generated, not stowed) and sourced from hyprland.lua.

Wallpaper

Default wallpaper by rahremix (via github.com/PsychedelicPalimpsest/dotfiles).

Adding a new app

Add a directory under packages/ mirroring its $HOME layout (e.g. packages/foo/.config/foo/config), and add an entry to src/packages.ts with the matching package name (and dir if it differs, or a group if it's a mutually-exclusive alternative to another package).

Testing in a container

./docker/test.sh runs a disposable Arch container with stow/nodejs/npm preinstalled and the repo copied in, without touching the host:

./docker/test.sh                        # interactive shell, deps installed
./docker/test.sh "npx tsc --noEmit"     # run one command non-interactively

Testing in a VM

The container above can't run a graphical Hyprland session (no display, no GPU). To actually see a config change before installing it on a real machine, boot an Arch Linux VM (QEMU/KVM, virt-manager, or whatever you're used to — there's no scripted provisioning for this, it's a manual one-off):

  1. Get the repo into the VM (shared folder, git clone, scp, whatever's convenient), then sudo pacman -Syu && npm install && npm start install, choosing hyprland + hyprpaper + a bar.
  2. Reboot into SDDM and log into Hyprland.
  3. From a terminal in that session, use hyprctl to inspect/validate config live — hyprctl reload, hyprctl monitors, hyprctl keyword <name> <value>, hyprctl dispatch <dispatcher> <args> — instead of editing-and-relaunching blindly. See the hyprctl wiki page for the full command set, including its interactive REPL mode.
S
Description
No description provided
https://me.arthurerlich/DotFiles
Readme
818 KiB
Languages
TypeScript 92.2%
Shell 5.1%
Lua 1.7%
Dockerfile 0.6%
CSS 0.4%