The main contents of this repo have been merged into https://github.com/shawnohare/conf and are managed along-side nix.
User configuration managed through a bare git repo. This avoides having to explicitly symlink at the cost of wrapping git when dealing with configuration files. By default an editor might not pick up on git information for files fetched from the bare repository.
We prefer a quick and destructive way to pull user configuration files
into $HOME
.
git clone --bare https://github.com/shawnohare/home.git $HOME/.git
git --git-dir=$HOME/.git/ --work-tree=$HOME checkout -f
# To optionally not show untracked files:
# cd $HOME/.git
# git config --local status.showUntrackedFiles no
An alternative is to use rsync.
git clone https://github.com/shawnohare/home.git config.tmp
rsync --recursive --verbose --exclude '.git' config.tmp/ $HOME/
rm -rf config.tmp
One benefit of cloning to ~/.git
is that git
will be able to directly see
history, branch information, etc.
Once the configuration files are installed, a new shell session should have
access to the hit
alias, among other things, wraps git.
For example,
hit <cmd> [args]
# equivalent to git --git-dir=$HOME/.git work-tree=$HOME <cmd> [args]
We would like to move towards a NixOS like configuration that uses nix home-manager. In theory it would subsume much of the configuration files in this repository
On macOS this is possible nix-darwin which provides a configuration.nix experience.
- https://github.com/MatthiasBenaets/nixos-config
- https://github.com/lrewega/nix-configs
- https://github.com/jwiegley/nix-config
- A gist with a minimal setup for nix-darwin+home-manager on mac M1 The API for nix seems to have changed since 2.9 and almost all the resources I have come across for nix-darwin and home-manager result in commands simply failing.