Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

54 Commits

Folders and files

Repository files navigation

mac-dotfiles

Every config here is symlinked into $HOME, so editing a dotfile in place edits this repo. Commit and push when you're done.

Fresh Mac

xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
git clone git@github.com:baljinnyamday/mac-dotfiles.git ~/mac-dotfiles
cd ~/mac-dotfiles
./install.sh --brew --tools   # symlink configs, brew bundle, then claude / uv / cursor-agent
./macos.sh                    # key repeat, dock, finder defaults

Then fill in ~/.gitconfig.local (name, email, signing key) and put any machine-specific env, such as a work package index or tokens, in ~/.zshrc.local. Neither file is tracked.

What's here

Path Linked to Notes
zsh/ ~/.zshrc, ~/.zshenv starship, zoxide, fzf, direnv, nvm, pnpm, bun, uv. Starts in ~0.1s: nvm loads on first use, completions rescan hourly (rm ~/.zcompdump && reload to force)
git/ ~/.gitconfig, ~/.config/git/ignore delta pager, zdiff3, identity from ~/.gitconfig.local
aerospace/ ~/.aerospace.toml i3-style tiling, see keys below
ghostty/ ~/.config/ghostty/config Catppuccin Mocha, JetBrainsMono Nerd Font, drop-down quick terminal. cmux reads it too
cmux/ ~/.config/cmux/cmux.json Warp-style vertical tabs on top of Ghostty, ctrl+tab cycles the sidebar, cmd+hjkl moves between splits
warp/ ~/.warp/settings.toml vertical tabs, JetBrainsMono Nerd Font, Warp hot-reloads edits
starship/ ~/.config/starship.toml gruvbox powerline prompt
tmux/ ~/.tmux.conf no plugins, Catppuccin status bar on top, popups for lazygit/claude/sessions
lazygit/ ~/Library/Application Support/lazygit/config.yml delta diffs, Cursor as editor, claude + gh custom commands
nvim/ ~/.config/nvim
bin/ ~/.local/bin/ every file gets linked, so a new script only needs ./install.sh. claude-in <folder> (new cmux tab, or a Ghostty window outside cmux), link-agent-docs [dir], tmux-sessionizer [dir], plus the longer commands listed in zsh/ALIASES.md (cc* pipeline, ship, wrm, fzf pickers)
Brewfile refresh with brew bundle dump --force --describe
macos.sh defaults write settings

AeroSpace keys

alt is the modifier.

Key Action
alt-enter open cmux
alt-shift-enter new Ghostty window
alt-h / j / k / l focus window (wraps around)
alt-shift-h / j / k / l move window
ctrl-alt-h / j / k / l focus monitor
ctrl-alt-shift-h / l move window to monitor
alt-1 … 9, alt-0 workspace 1 … 9, 0
alt-shift-1 … 0 move window to workspace
alt-tab previous workspace
alt-shift-tab move workspace to next monitor
alt-n / c / s / t / o / w / e Notion / Claude / Slack / Teams / Outlook / cmux / Cursor workspace, launches the app
alt-shift-n / c / s / t / o / w / e move window to that app's workspace
alt-b open Chrome
alt-f fullscreen
alt-shift-space toggle floating
alt-slash, alt-comma tiles / accordion layout
alt-minus, alt-equal shrink / grow
alt-r resize mode: h/j/k/l, = balances, esc
alt-shift-q close window
alt-shift-r reload config
alt-shift-; service mode: r flatten, f float, backspace close others, alt-shift-hjkl join

Terminal keys

cmux (vertical tabs, reads the Ghostty config)

Key Action
cmd-1 … 9 jump to sidebar tab
ctrl-tab / ctrl-shift-tab next / previous sidebar tab
cmd-n new sidebar tab (workspace)
cmd-t new tab inside the workspace
cmd-b show / hide sidebar
cmd-shift-r rename workspace
cmd-d / cmd-shift-d split right / down
cmd-h / j / k / l move between splits (only when the workspace is split, so cmd-h hide / cmd-k clear still work)
cmd-shift-enter zoom split
cmd-shift-u jump to the agent waiting for you
ctrl-cmd-shift-d diff viewer
cmd-shift-w close workspace

Ghostty (horizontal native tabs; under AeroSpace each tab leaves an empty gap, AeroSpace#68, so prefer cmux or new windows)

Key Action
cmd-1 … 8, cmd-9 jump to tab, last tab
ctrl-tab / ctrl-shift-tab next / previous tab
cmd-shift-left / right move tab
cmd-shift-r rename tab
cmd-d / cmd-shift-d split right / down
cmd-alt-arrows move between splits
cmd-shift-enter zoom split
ctrl-` (anywhere) drop-down quick terminal

tmux (prefix is ctrl-b). For SSH and the plain-Ghostty fallback; inside cmux use workspaces and splits instead, see zsh/ALIASES.md

Key Action
prefix f fzf session picker (ts outside cmux and tmux)
prefix w / s tree of windows / sessions with preview
prefix g / C / t popup lazygit / claude / scratch shell
prefix | / - split right / down in current folder
prefix h j k l, H J K L move / resize panes (repeatable)
prefix tab, shift-tab last window, last session
prefix < / > move window left / right
prefix v copy mode: v select, ctrl-v block, y copy
prefix X kill session
prefix r reload config

lazygit extras (press ? for everything)

Where Key Action
files ctrl-g claude drafts the commit message, you edit it
branches ctrl-v claude reviews branch vs main
commits ctrl-x claude explains the commit
branches S push and open PR
branches ctrl-n check out an open PR
branches D delete branches merged into main
diff | cycle delta / side-by-side

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages