NOTE: the linux config is specifically set up for a 7th gen x1 carbon, and depends on my emacs configuration. 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
Launch an ephemeral shell with git, nixUnstable, and Emacs
nix-shell -p nixUnstable emacs
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)
Symlinking with nix (and managing doom with nix-doom-emacs
) is very finicky, so for now we need to manually symlink them
ln -s ~/nix-darwin-dotfiles/configs/doom/ ~/.config/doom
Install doom emacs
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.config/emacs
~/.config/emacs/bin/doom install
Suggestions/improvements welcome!