Initial import: chezmoi source for CachyOS + Umbriel + Noctalia
Imported from prdlk/dotfiles master (efdd827). Drops the niri, Hyprland/Omarchy, macOS, and Blume docs-site layers; docs/ is plain Markdown.
This commit is contained in:
commit
ee355bcfd5
152 files changed
+11564
No files matched your search
@@ -0,0 +1,80 @@
|
||||
# cachyos
|
||||
|
||||
[chezmoi](https://chezmoi.io) source for a CachyOS machine running the
|
||||
Umbriel compositor with the Noctalia shell.
|
||||
Hosted at <https://prad.codes/env/cachyos>. Full documentation:
|
||||
[`docs/README.md`](docs/README.md).
|
||||
|
||||
## Install
|
||||
|
||||
One command on a fresh machine (installs chezmoi, clones this repo and its
|
||||
submodules, prompts once, installs packages, applies everything):
|
||||
|
||||
```sh
|
||||
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply https://prad.codes/env/cachyos.git
|
||||
```
|
||||
|
||||
Over SSH: `... init --apply git@prad.codes:env/cachyos.git`.
|
||||
|
||||
The first apply asks for a name, an email, and a machine role:
|
||||
|
||||
| Role | Gets |
|
||||
| --- | --- |
|
||||
| `desktop` (default) | Universal toolset plus the Linux desktop layer (Umbriel, Noctalia, fontconfig, mimeapps, systemd user units) |
|
||||
| `laptop` | Same as `desktop` |
|
||||
| `server` | Universal toolset only |
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- **CachyOS / Arch Linux** with `sudo` for pacman. `yay` or `paru` is used for
|
||||
AUR packages; with neither, the install script bootstraps `yay` (from a sync
|
||||
repo, else `yay-bin` from the AUR) or warns and skips AUR packages.
|
||||
- **age key**: encrypted files need the key at `~/.config/chezmoi/key.txt`.
|
||||
Copy it there **before** `chezmoi apply` (distributed manually, never
|
||||
committed):
|
||||
|
||||
```sh
|
||||
mkdir -p ~/.config/chezmoi
|
||||
scp <existing-machine>:.config/chezmoi/key.txt ~/.config/chezmoi/key.txt
|
||||
chmod 600 ~/.config/chezmoi/key.txt
|
||||
```
|
||||
|
||||
- `gh auth login` once per machine. The `gh` extension install script skips
|
||||
until then and runs again on the next apply.
|
||||
|
||||
## What's managed
|
||||
|
||||
- **Shells**: fish (submodule), bash, and zsh with one alias list
|
||||
(`.chezmoidata/aliases.yaml`), starship, and atuin.
|
||||
- **Terminal and tools**: kitty, ghostty, tmux (+ tmux-palette), herdr,
|
||||
television, yazi, neovim, lazygit, lazydocker, gh and gh-dash, bat, git,
|
||||
topgrade, hunk, drydock.
|
||||
- **Desktop** (roles `desktop`/`laptop`): Umbriel compositor config
|
||||
(`dot_config/umbriel`), Noctalia shell (external), fontconfig, mimeapps,
|
||||
default terminal list, and systemd user units.
|
||||
- **Scripts**: standalone executables in `~/.local/bin` shared by every shell.
|
||||
- **Packages**: `.chezmoidata/packages.yaml` (pacman, AUR, cargo, mise, gh
|
||||
extensions), installed by `.chezmoiscripts` and re-run when the manifest
|
||||
changes.
|
||||
- **Agent skills**: not vendored. `.chezmoidata/skills.yaml` lists each skill
|
||||
and its upstream; `run_onchange_after_25-skills.sh.tmpl` installs them with
|
||||
the Skills CLI.
|
||||
|
||||
## Submodules and externals
|
||||
|
||||
| Kind | Path | Source |
|
||||
| --- | --- | --- |
|
||||
| Submodule | `dot_config/fish` | [prdlk/fish](https://github.com/prdlk/fish) |
|
||||
| External | `~/.config/{kitty,ghostty,tmux,tmux-palette,television,yazi,herdr,noctalia,nvim}`, `~/.omp` | `prdlk/*` repos on GitHub |
|
||||
| External | `~/.local/bin/agent-root`, `~/.config/tmux/plugins/tpm`, bat PureScript syntax | upstream projects |
|
||||
|
||||
The `prdlk/*` externals are separate repos that chezmoi clones into `$HOME` and
|
||||
fast-forwards; this repo holds only their `.toml` declarations. Edit them in
|
||||
their live checkout under `~/.config/<app>`.
|
||||
|
||||
## Layout
|
||||
|
||||
`mode = "symlink"` and `age` encryption are set in `.chezmoi.toml.tmpl`. Plain
|
||||
files in `$HOME` are symlinks into this repo; `*.tmpl`, `private_`, and
|
||||
`executable_` targets are rendered copies. See [`AGENTS.md`](AGENTS.md) for the
|
||||
repository rules and [`docs/README.md`](docs/README.md) for per-tool pages.
|
||||
Reference in new issue
Block a user