NOTE: This is a WIP!!!
This was influenced by https://github.com/holman/dotfiles.
There are a few special directories...
- shell/: All files required for your particular shell. Currently using bash.
- bin/: Anything in
bin/
will get added to your$PATH
and be made available everywhere. - nix/: Contains a
flake.nix
file to configure/install packages for your environment. See README. - public-keys/: Public keys you want to make available anywhere.
All other directories are "topics", corresponding to specific programs/packages/etc. These files are processed/synced by running the ./bootstrap
script.
- {topic}/*.symlink: Any file ending in
*.symlink
will be symlinked into your$HOME
directory.Note this will overwrite an existing file with the same name.
- {topic}/*.source: Any files ending in
.source
get sourced by your shell. For example, you might want to export applicable environment variables or set up auto-completion.
We're using nix
for package management, but there are some specific requirements to even install nix. Ensure your system has the following before proceeding:
sudo
(and your user has sudo access)git
curl
xz
git clone https://github.com/adamhamlin/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./bootstrap
# restart/reset your shell
exec $SHELL
Changes to .source files or existing .symlink files should be reflected on next shell reset, but other changes may require you to re-run the bootstrap script.
- While there is a nix package for
docker
, it really only is useful for NixOS. Better off just installing docker engine + docker desktop separately.
- More mac vs linux switches
- One-time setup install scripts? i.e., separate from shell sourcing?
- Use NixOS?