My Dotfiles: macOS Bootstrap and an Emacs Distribution

My Dotfiles: macOS Bootstrap and an Emacs Distribution

1. About   dotfiles macos emacs setup

dotfiles-banner.jpeg

Figure 1: JPEG produced with DALL-E 4o

My dotfiles for my MacOS rice and Emacs configuration live in two public repositories. Both repos are shared as a reference; clone, fork, or just lift the bits that look useful to you!

This post is a thin entry point, and the READMEs in each repo carry the actual detail.

2. chiply/.files   shell tmux macos bootstrap

A single bootstrap.sh that takes a clean macOS install to a fully provisioned development machine in roughly thirty minutes. It installs Xcode CLI tools, Homebrew, and a long list of CLI utilities and language toolchains, then symlinks every config in files/ into the matching path under $HOME.

See repo for installation instructions.

What gets installed:

  • Shell: zsh + zinit, starship prompt, atuin shared history
  • Terminal: Ghostty with cursor shaders, plus Nerd Fonts
  • Multiplexer: tmux with tmux-powerline, tmuxinator, TPM
  • Window manager: AeroSpace, simple-bar, JankyBorders
  • Languages: pyenv, Poetry, uv, nvm + Node, language servers (json, eslint, copilot, svelte)
  • CLI: gh, k9s, bat, fzf, ripgrep, eza, jq, lazygit, AWS CLI v2, and more

The full package list lives in the repo's Brewfile. bootstrap.sh also clones .zetta.d to ~/.zetta.d as part of the Emacs setup; if you only want the shell side, comment out the emacs section.

3. chiply/.zetta.d   emacs zetta distribution

My Emacs configuration, packaged as a small distribution. Around 320 packages wired up via a module DSL, with an Elpaca lockfile pinning every package to an exact commit, and byte- and native-compilation done up front so the first launch is clean.

The name is a cheeky play on how we name certain minimalist text editors after Metric Prefixes nano (10^-9) or pico (10^-12). This maximalist editor config is named after zetta (10^21).

See repo for installation instructions.

Notable parts:

  • Triple-modal editing: Evil, Meow, and vanilla side-by-side, switchable on the fly
  • Module DSL: enable categories or individual packages via zetta-modules! in ~/.zetta.el
  • Reproducible: lockfile + compile-by-default install
  • CI-tested: Emacs 29.4, 30.2, and the 31 snapshot

Zetta also hosts several small packages I've written that live in their own public repos. See the README's "Bundled custom packages" section for the list. None of these are released or publicized yet, so bring a pinch of salt if you choose to try them.