dotfiles icon indicating copy to clipboard operation
dotfiles copied to clipboard

My Emacs config

#+title: My Configuration

This is my configuration. It's centred around [[file:Emacs.org][Emacs]], with smatterings of other stuff.

  • (Maybe) Install from App Store
  • 1Password
  • Slack
  • Zoom
  • Horo
  • Refined GitHub (Safari Extention)
  • Okta (Safari Extention)
  • Nix

** Setup =~/.config/nixpkgs=

#+begin_src sh :results silent if [ -L ~/.config/nixpkgs ] ; then rm ~/.config/nixpkgs elif [ -e ~/.config/nixpkgs ] ; then echo "~/.config/nixpkgs exists but is not a symlink" exit 1 fi ln -vsf $(pwd) ~/.config/nixpkgs #+end_src

** Install Nix

Run this from a terminal:

: ./install-nix.sh --darwin-use-unencrypted-nix-store-volume

To regenerate install-nix.sh:

#+begin_src sh :results silent curl -fsSL https://nixos.org/nix/install > install-nix.sh #+end_src

** Install nix-darwin

Run this from a terminal, and be prepared to answer "yes" to every question.

: nix-build https://github.com/LnL7/nix-darwin/archive/master.tar.gz -A installer : ./result/bin/darwin-installer

** Install home-manager

Run from a terminal:

: nix build --no-link #homeConfigurations.stig.activationPackage : "$(nix path-info #homeConfigurations.stig.activationPackage)"/activate

** Daily Usage

: darwin-rebuild switch --flake .

  • Regenerate install-brew.sh

I prefer Nix, but sometimes have to install from Brew.

#+begin_src sh :results silent curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh > install-brew.sh #+end_src

  • Tangle other config files

Execute this next block of source code to tangle the main config files after checking out.

#+begin_src emacs-lisp :results silent (require 'ob-tangle) (dolist (org-file (directory-files-recursively "." ".+\.org\'")) (when (and (file-exists-p org-file) (not (equal (expand-file-name org-file) (buffer-file-name)))) (org-babel-tangle-file org-file))) #+end_src

  • Credits

For the darwin parts I've used [[https://blog.sulami.xyz/posts/nix-for-developers/][Robin Schroer's blog post]] and [[https://ianthehenry.com/posts/how-to-learn-nix/][Ian Henry's stream of conciousness]] as my guides. I'll probably check out the manual too, one day.

For the home-manager stuff, I've used Ju Liu's [[https://juliu.is/tidying-your-home-with-nix/][Tidying up your $HOME with Nix]] post as a reference. The home-manager manual also lent some help to integrating home-manager and nix-darwin.

  • Password rotation

** SMTP

: security delete-internet-password -s : security add-internet-password -s -r smtp -a -w