Skip to content

Repository files navigation

dotfiles

Portable macOS config: zsh + oh-my-zsh + Powerlevel10k, Homebrew packages, git config, aliases, and a journaling utility.

Inspired by Getting Started With Dotfiles.

New Mac setup

mkdir -p ~/repos && git clone git@github.com:Aylr/dotfiles.git ~/repos/dotfiles
cd ~/repos/dotfiles && ./setup.sh

The repo must live at ~/repos/dotfiles. setup.sh is safe to re-run. It installs Homebrew, everything in the Brewfile, oh-my-zsh, and Powerlevel10k fonts. It also sets brew's zsh as the login shell, symlinks the configs into ~/ (backing up existing files; a symlink pointing elsewhere is left alone), runs gh auth login if needed, and installs Claude Code and Hermes Agent with their official installers. A package that fails to install doesn't stop the run.

Expect prompts for your password (sudo, chsh) and the GitHub login.

Afterwards, by hand:

  1. Fill in ~/.gitconfig-professional and ~/.gitconfig-personal (created from the .example templates).
  2. Copy shell/.secrets over from the old Mac.
  3. hermes setup, or copy ~/.hermes/.env from the old Mac.
  4. Open a new terminal.

Layout

Path What
Brewfile Homebrew formulae and casks. Commented lines are optional extras.
setup.sh Bootstrap script
zsh/.zshrc, zsh/.p10k.zsh Shell and prompt, symlinked to ~/
shell/.alias Aliases and functions
shell/.exports Non-secret environment variables
shell/.secrets Secret environment variables (gitignored)
shell/.gitconfig Git config, symlinked to ~/. Includes per-path identity files, but its own [user] email currently overrides them.
bin/ Scripts on PATH, e.g. git prune-merged
journal.sh Journaling CLI, aliased as jj

Keeping the Brewfile current

brew bundle check --verbose   # what's in the Brewfile but not installed
brew bundle cleanup           # what's installed but not in the Brewfile (dry run)

Journal

jj views today's entry, jj -e (or j) edits it in $EDITOR.

journal.sh                              View today's entry
journal.sh -e                           Edit today's entry
journal.sh "TIL something neat"         Add a note to today's entry
journal.sh "TIL something neat" -e      Add a note and edit
journal.sh -d 2020-01-01                View the entry from 1/1/20
cat file.txt | journal.sh               Pipe file.txt into today's entry

About

command line superpowers

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages