Imported from prdlk/dotfiles master (efdd827), which supersedes the omarchy branch (3031416). Drops the Umbriel, Noctalia, niri, CachyOS, macOS, and Blume docs-site layers; docs/ is plain Markdown.
3.8 KiB
Installation
Install Omarchy, then install chezmoi and apply these dotfiles with one command.
Before you run it
-
Omarchy
Install Omarchy first. It provides Arch Linux, Hyprland, Waybar, the
omarchy-*commands, the[omarchy]pacman repo, and a working AUR helper (yay). The desktop layer in this repo (thedot_config/hyprsubmodule, Waybar,uwsm, theomarchy-*scripts) layers on top of that install and does not replace it. -
age key
chezmoi is configured for age encryption with the identity at
~/.config/chezmoi/key.txt. The key is never committed. Copy it from an existing machine before applying:mkdir -p ~/.config/chezmoi scp <existing-machine>:.config/chezmoi/key.txt ~/.config/chezmoi/key.txt chmod 600 ~/.config/chezmoi/key.txt -
Repository access
env/omarchy is a public repository on the prad.codes Gitea, so the HTTPS clone needs no credentials. The submodules (
dot_config/fish,dot_config/hypr) are cloned by chezmoi on init. Use the SSH remote (git@prad.codes:env/omarchy.git) if you plan to push.
One-liner
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply https://prad.codes/env/omarchy.git
This is chezmoi's official install script. It installs chezmoi to ./bin (run it from ~ or pass -b ~/.local/bin), clones the repo into ~/.local/share/chezmoi, and runs chezmoi apply.
Options
Arguments after -- go to chezmoi:
SSH
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b ~/.local/bin init --apply git@prad.codes:env/omarchy.git
Dry run
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b ~/.local/bin init https://prad.codes/env/omarchy.git
chezmoi diff
chezmoi apply
chezmoi only
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b ~/.local/bin --version
| Flag | Effect |
|---|---|
-b <dir> |
Install directory (default ./bin) |
-t <tag> |
chezmoi release tag (default latest) |
-d |
Debug logging |
Roles
The first apply asks once for a machine role:
| Role | Gets |
|---|---|
desktop (default) |
Universal toolset plus the Linux desktop layer (Hyprland config, Waybar, omarchy-* scripts, fonts, default apps) |
laptop |
Same as desktop |
server |
Universal toolset only; no desktop layer |
See Configuration for how the role is stored and Ignore rules for what it gates.
First apply
-
Prompts
.chezmoi.toml.tmplasks once for name, email, and role (desktop,laptop,server). Answers are stored in~/.config/chezmoi/chezmoi.tomland not asked again. See Configuration. -
Packages
run_onchange_before_10-packagesinstalls everything in.chezmoidata/packages.yamlwith pacman and yay before any file is written. See Scripts. -
Files and externals
Configs are linked into
$HOME(symlink mode). The neovim config, Omarchy's~/.config/omarchycheckout, and the terminal and tool configs are cloned as externals. See Externals and ignore rules. -
Post-apply scripts
rustup and cargo crates, the global mise tools (
ghq,bun,node,uv,opencode,crush, omp), strata on Linux desktops, then gh extensions (from a fish session), skills, the bat cache, the font cache, yazi plugins, and the systemd user services. tpm arrives earlier as an external.
Note
The gh extension script skips with a warning until
gh auth loginhas run. A skipped run still exits 0, so a plainchezmoi applydoes not retry it. See Scripts for how to re-run it.
Updating
chezmoi update # git pull + apply
chezmoi diff # what apply would change