Skip to content
aleckshenPublic

About

My macOS .dotfiles

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

149 Commits

Folders and files

Repository files navigation

dotfiles

My personal development environment for macOS.

A terminal-centric, keyboard-driven setup:

  • AeroSpace — i3-like tiling window manager for macOS
  • Ghostty — fast, GPU-accelerated, native terminal emulator
  • Zsh — shell with a Powerlevel10k prompt
  • tmux — terminal multiplexer
  • Neovim — terminal-based code editor
  • Karabiner-Elements — keyboard remapping
  • Mise — polyglot runtime version manager
  • btop — terminal resource monitor
  • yazi — terminal file manager
  • Claude Code — agentic coding assistant, configured in aleckshen/.claude

Installation

Quick start

git clone https://github.com/aleckshen/dotfiles.git ~/dotfiles
~/dotfiles/install.sh

That is the whole bootstrap. install.sh runs steps 3 to 7 below, plus the Xcode command line tools check from step 1, and is safe to re-run — it skips anything already in place.

Manual steps

The same bootstrap done by hand, for reference or for running only part of it.

  1. Install Apple's command line tools, which are prerequisites for Git and Homebrew.
xcode-select --install
  1. Clone repo into root directory.
git clone https://github.com/aleckshen/dotfiles.git
  1. Install Homebrew, then the software listed in the Brewfile.
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Put brew on PATH — the installer only updates future shells via .zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

# Pass in file Brewfile location
brew bundle --file ~/dotfiles/Brewfile
  1. Create symlinks in the home directory to the real files in the repo.
ln -s ~/dotfiles/.zshrc ~/.zshrc
ln -s ~/dotfiles/.p10k.zsh ~/.p10k.zsh
ln -s ~/dotfiles/.gitconfig ~/.gitconfig
ln -s ~/dotfiles/aerospace ~/.config/aerospace
ln -s ~/dotfiles/wezterm ~/.config/wezterm
ln -s ~/dotfiles/ghostty ~/.config/ghostty
ln -s ~/dotfiles/nvim ~/.config/nvim
ln -s ~/dotfiles/tmux ~/.config/tmux
ln -s ~/dotfiles/karabiner ~/.config/karabiner
ln -s ~/dotfiles/mise ~/.config/mise
ln -s ~/dotfiles/btop ~/.config/btop
ln -s ~/dotfiles/yazi ~/.config/yazi

mkdir -p ~/.local/bin
ln -s ~/dotfiles/bin/theme ~/.local/bin/theme
ln -s ~/dotfiles/bin/trans ~/.local/bin/trans
  1. Install the tmux plugins. They are not tracked in this repo — TPM owns them, and the tmux/plugins/ directory is gitignored.
git clone https://github.com/tmux-plugins/tpm ~/dotfiles/tmux/plugins/tpm
tmux start-server
tmux source-file ~/.config/tmux/tmux.conf
~/dotfiles/tmux/plugins/tpm/bin/install_plugins

The start-server and source-file steps matter: install_plugins reads its install path from a running tmux server, and without one it reports success while installing nothing.

  1. Clone the Claude Code config. It lives in its own repo and is cloned in place rather than symlinked, because ~/.claude also holds runtime state (sessions, history, caches) that stays untracked.
git clone https://github.com/aleckshen/.claude.git ~/.claude

If ~/.claude already exists, git will refuse to clone into it — install.sh handles that case by cloning alongside and moving .git into place.

  1. Apply the colour theme. This writes the gitignored files that Ghostty, yazi and btop read for the active theme.
theme nord

About

My macOS .dotfiles

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages