Warning: Nix on darwin, especially on arm, is a work in progress. Be prepared to encounter bugs and weird behavior. Packages might take a while to randomly build from souce (the offender is usually GHC), and packages on master regularly break. Feel free to open an issue if you run into problems, and I’ll try my best to fix it.
NOTE: Don’t use this unless you know what you’re doing. You’re likely here for the MacOS flake, if so just skip on ahead!
nix-shell -p nixUnstable git
nixos-install --flake https://github.com/shaunsingh/nix-darwin-dotfiles#shaunsingh-thinkpad
NOTE: These are available as an executable script ./extra/install.sh
Install Nix. I have it setup for multi-user, but you can remove the --daemon
if you want a single user install
sh <(curl -L https://nixos.org/nix/install) --daemon
Tangle the .org
files (not needed, but recommend in case I forgot to update tangled files)
git clone --depth 1 https://github.com/shaunsingh/nix-darwin-dotfiles.git ~/nix-darwin-dotfiles/ && cd ~/nix-darwin-dotfiles
emacs --batch --eval "(progn (require 'org) (setq org-confirm-babel-evaluate nil) (org-babel-tangle-file \"~/nix-darwin-dotfiles/nix-config.org\"))"
emacs --batch --eval "(progn (require 'org) (setq org-confirm-babel-evaluate nil) (org-babel-tangle-file \"~/nix-darwin-dotfiles/configs/doom/config.org\"))"
(if emacs asks you for comment syntax, put `# ` for everything) Build, and switch to the dotfiles
nix build ~/nix-darwin-dotfiles\#darwinConfigurations.shaunsingh-laptop.system --extra-experimental-features nix-command --extra-experimental-features flakes
./result/sw/bin/darwin-rebuild switch --flake .#shaunsingh-laptop
(note, --extra-experimental-features
is only needed the first time around. After that the configuration will edit /etc/nix/nix.conf
to enable flakes and nix-command by default)
Suggestions/improvements welcome!