config files for various tools
f5d9e26a — David Mynors a day ago
Set 'main' as default git init branch
7b406f00 — David Mynors 2 days ago
Adjust phoenix emacs keybind
59b01acb — David Mynors 16 days ago
Add stack to backup ignored dirs


browse  log 



You can also use your local clone with git send-email.

#my dots

These dotfiles are bootstrapped with dotbot and can be installed by cloning this repo and running ./install inside it. Much inspiration taken from here.

Note: I've initialised git-crypt in this repo to encrypt all files with the word secret anywhere in their name.


Backups are important. You can find my backup script in this repo, and you can read more of my thoughts about backups in my public notes.


Nix is a purely functional package manager which I don't yet totally understand. You're welcome to read my notes on it for more info/resources/tips, but for the purposes of this Readme you just need to know that I have a nix config for macOS which instructs nix-darwin to setup/install the nix-related programs like lorri which I want available system-wide.


My current emacs setup consists of a base emacs install of homebrew's emacs-plus and my doom-based literate config. Doom is great because it provides a large collection of really thoughtfully pieced-together 'modules' for different tasks/tools, allowing you to get up and running really quickly. The draw of Emacs for me in general is that all of the tools I need for editing text are tightly integrated but remain highly configurable. I'm not immune to the allure of the 'unix philosophy' though, so I do keep an eye on interesting simpler editors, like Kakoune.


Kitty is my current terminal emulator of choice, because it supports tabs and has file-based config. Someday I might learn tmux and switch to Alacritty...


Karabiner is amazing, and Goku is makes it much simpler to configure. My config isn't the tidiest, but it works! Basically, I remap caps-lock to control when held and escape when pressed, and I remap my right command key to f13 when pressed (to launch Alfred) and ctrl+opt when held (mostly to foreground/launch applications with Phoenix). I also remap comma to a "dead key" inspired by the implementation in the workman layout.


Phoenix is great! It's a window-manager for macOS which you can configure with JavaScript. In other words, it allows you to bind keyboard shortcuts to functions which move windows around your screen(s). I used chunkwm for a long while, but ended up moving away from it because I found myself fighting against its automatic window placement. I also use Phoenix to foreground/launch apps with keyboard shortcuts.


I'm currently using Elvish as my daily-driver shell. Before I discovered Elvish I used fish, which drew me in as a fast shell with built-in features that would require plugins in zsh or bash, slowing down their startup time.

Elvish replaced fish principally because its scripting language seems much easier to learn, but I also quite like its directory history feature (like fzf, but built-in) and package manager.

#Honourable Mentions

Duti is a (currently unmaintained) tool for "setting default applications for various document types on macOS, using Apple's Uniform Type Identifiers (UTI)". I can imagine this being handy, but I don't currently have a use for it.