2.8 KiB
README.md of chezmoi repo
This is my chezmoi dotfiles repo
One line install
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply https://code.lksz.me/lksz/dotfiles.git
Why even bother?
I work on multiple platforms:
- Windows 11 - as my home PC (not covered directly by this repo... yet)
- TrueNAS SCALE/Linux servers (mine and my backup-buddy friend home-labs I manage/support)
- MacOS - Work MacBook Pro
- Linux - @Work log analysis tech servers, (on which I do not have root access).
This repo helps me keep these environments (excluding the Windows/Powershell one for now) as comfortable and predictable for me as possible.
Philosophy / Design Guidelines
Do as much setup as possible at once, make maintenance simple, don't slow down productivity (it's bad for my ADHD).
If a tool is missing, find a single-binary solution that can be managed
by .chezmoiexternals
. rust and go based tools are best for
this.
Assume a system has bash
, git
, curl
or wget
, anything else that
is missing, chezmoi should be able to grab.
NEVER store personal identifying secrets/details or work/employer specific details in the repo.
Assume others will be interested in investigating/cloning this envrionment (I know, a bit arrogant), so keep it as generic as possible, so it can be shared.
Repo structure
The root dir of the repo is for documentation/orientation, as little content as possible.
It contains:
-
A 'throwaway' chezmoi bootstrap environment:
.chezmoiscripts/ .chezmoi.toml.tmpl .chezmoiignore .gitignore
-
This
README.md
and adocs
directory for additional documentation. -
chezmoi.roots
containing environment specific chezmoi roots.
Bootstrap
.chezmoiroot
points to the source-state of the current envrionments.
I creted this so I can ensure I have the necessary tooling to
effectively initialize an envrionment assuming as little as possible.
Initializing the bootstrap envrionment, detects the macine type,
generates the .chezmoiroot
, scraps the bootstrap configuration and
initializes chezmoi now that .chezmoiroot
exitst.
This is why .gitignore
ignores .chezmoiroot
, as it is different on
every machine.
The Different Envrionments
At this point Home and Home.MacOS are almost identical and they will probably be merged in the future.
I crated the MacOS envionrment when I was unsure about the differences, wanting to separate the envrionments while I currate them.
Both are POSIX based (to a degree), and my expectation for them is to behave in as similar a manner as possible.
To make the envrionments 'inherit' from one another, I've written
symclone.sh
, a tool script that creats symlinks across different
chezmoi environments.
For more information abot each envrionment, see their respective (WIP)
README.md
files.