skip to content

uses

The apps, fonts and settings I work with every day. Most of it is checked in to my dotfiles, so if something looks useful you can copy the config instead of guessing at it.

1 2 3 4 5 6 7 8
fig. 1 A herdr workspace in Ghostty, in Light Lite, following the page's theme the way Ghostty follows the system's. It is a drawing rather than a screenshot, set in JetBrains Mono where the real thing uses Dank Mono. The numbers match the list below.

the dotfiles

on github
mac-dot-files joshdonnell/mac-dot-files

Every config on this page lives in one repository. Clone it, run the install script, and a new Mac ends up set up like mine.

updated 11 packages

last change: Add a devbox alias that attaches to herdr with the server keybindings

install
$ git clone git@github.com:joshdonnell/mac-dot-files.git ~/mac-dot-files
$ cd ~/mac-dot-files && ./install.sh

written in

  • Nothing else understands PHP this well. I run it light, with Pint, PHPStan and oxlint on save.

    phpstorm/
  • Zed

    Open before I finish the thought. Quick edits and reading code outside a project.

    zed/
  • Neovim fig. 1, part 4

    LazyVim with the Laravel language server, for when I am on the devbox over SSH.

    nvim/

run in

  • Ghostty fig. 1, part 1

    Native and fast, and it follows the system appearance without a plugin.

    ghostty/
  • herdr fig. 1, part 2

    One workspace per worktree, so every branch keeps its own panes and agents.

    herdr/
  • lazygit fig. 1, part 5

    Staging hunks by hand means I read my own diff before anyone else does.

    lazygit/
  • Starship fig. 1, part 6

    A prompt configured once and then forgotten about.

    starship/
  • ripgrep, fd, fzf, zoxide, eza, bat and delta. What macOS should have shipped with.

    Brewfile
  • Symlinks every package into place, so the repository is the config rather than a copy of it.

    packages.sh

set in

  • Dank Mono fig. 1, part 7

    My font everywhere, in every editor and terminal at 14px. The italics earn their keep in comments.

    ghostty/
  • What this site and its wordmark are set in, with JetBrains Mono for anything that is data.

coloured with

  • Light Lite fig. 1, part 8

    Brent Roose's theme with almost no highlighting, in PhpStorm, Ghostty and herdr. Fewer colours, more reading.

    ghostty/
  • Osaka Jade fig. 1, part 9

    Omarchy's dark palette, for when macOS switches to dark. I ported it to PhpStorm.

    ghostty/

assisted by

  • Claude Code fig. 1, part 3

    A pane per worktree in herdr, held to a strict CLAUDE.md and Spatie's PHP guidelines.

    claude/
  • A debugger, a feature builder, a simplifier and a planner, written for how I structure apps.

    agents/
  • Matt Pocock's skills, superpowers and impeccable, tracked in a lock file rather than copied in.

    .skill-lock.json
  • the devbox

    A headless Mac that runs agents and GitHub Actions runners, reached over Tailscale.

also open

  • Chromium without the Google, with uBlock Origin built in.

  • Launcher, clipboard history and window snapping behind one shortcut.

  • Notes as plain Markdown files that I own.

  • Every worktree gets its own .test domain and database, with no Docker.

made on

  • machine

    to add

  • display

    to add

  • keyboard

    to add

  • mouse or trackpad

    to add

  • headphones

    to add

  • desk and chair

    to add