Skip to content

blutarche/blut-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

blut-setup

Dotfiles and config for macOS. Managed via symlinks into this repo.

Structure

blut-setup/
├── ghostty/          # Ghostty terminal config
│   └── config
├── zsh/
│   ├── .zshrc        # Main shell config (interactive)
│   ├── .zshenv       # Sourced by every zsh; mise shims fallback for non-interactive shells
│   └── config/       # Modular zsh config (aliases, exports, plugins, fzf-tab)
├── mise/
│   └── config.toml   # mise tool versions + global npm: CLIs (codex, omc, …)
├── yabai/
│   └── .yabairc      # Yabai window manager
└── vscode/           # VS Code settings

Quick start (new Mac)

This assumes macOS with Zsh as your login shell.

Prereqs

  • Git (Xcode Command Line Tools)
xcode-select --install || true
  • Homebrew

Install from https://brew.sh, then verify:

brew --version

Install

  1. Clone and init submodules (required for fzf-tab)
cd "$HOME"
git clone https://github.com/blutarche/blut-setup.git
cd blut-setup
git submodule update --init --recursive
  1. Install CLI dependencies
brew update
brew install antidote starship zoxide fzf atuin mise navi thefuck fd fastfetch eza bat ripgrep lazygit
  1. Apply symlinks (so changes apply immediately)
cd /path/to/blut-setup

ln -sf "$(pwd)/zsh/.zshrc" ~/.zshrc
ln -sf "$(pwd)/zsh/.zshenv" ~/.zshenv
mkdir -p ~/.config
ln -sf "$(pwd)/zsh/config" ~/.config/zsh

mkdir -p ~/.config/mise
ln -sf "$(pwd)/mise/config.toml" ~/.config/mise/config.toml
mise trust "$(pwd)/mise/config.toml"   # mise resolves the symlink to its real path; trust it once

ln -sf "$(pwd)/yabai/.yabairc" ~/.yabairc

mkdir -p "$HOME/Library/Application Support/com.mitchellh.ghostty"
ln -sf "$(pwd)/ghostty/config" "$HOME/Library/Application Support/com.mitchellh.ghostty/config"
  1. Restart your shell
exec zsh -l

Verify

echo "=== Symlinks ===" && \
for link in ~/.zshrc ~/.zshenv ~/.config/zsh ~/.config/mise/config.toml ~/.yabairc; do
  [[ -L "$link" ]] && echo "$link -> $(readlink "$link")" || echo "$link (not a symlink)"
done && \
[[ -L "$HOME/Library/Application Support/com.mitchellh.ghostty/config" ]] && \
  echo "✓ Ghostty config -> $(readlink "$HOME/Library/Application Support/com.mitchellh.ghostty/config")" || \
  echo "✗ Ghostty config (not a symlink)"

Cursor / VS Code settings

This repo contains user settings at vscode/settings.json. Cursor supports the same format.

Install into Cursor (copy)

mkdir -p "$HOME/Library/Application Support/Cursor/User"

# optional backup
[ -f "$HOME/Library/Application Support/Cursor/User/settings.json" ] && \
  cp "$HOME/Library/Application Support/Cursor/User/settings.json" \
     "$HOME/Library/Application Support/Cursor/User/settings.json.bak.$(date +%Y%m%d-%H%M%S)"

cp "$(pwd)/vscode/settings.json" \
   "$HOME/Library/Application Support/Cursor/User/settings.json"

Required extensions/themes referenced by settings

  • Theme: Catppuccin Mocha
  • Formatter: esbenp.prettier-vscode

Install them via Cursor’s Extensions UI.

Notes / troubleshooting

Homebrew path (Apple Silicon vs Intel)

The Zsh config supports both Homebrew locations:

  • Apple Silicon: /opt/homebrew
  • Intel: /usr/local

If Zsh fails on first launch

Most failures are missing dependencies. Ensure these are installed:

brew install antidote starship zoxide fzf atuin mise navi thefuck fd fastfetch

Yabai

yabai scripting addition requires SIP changes and manual steps (see yabai docs). You can still symlink ~/.yabairc now and enable later.

Reference docs

Dependencies

  • zsh: Antidote, Starship, Zoxide, fzf, Atuin, Mise, Navi, TheFuck
  • yabai: Requires SIP parts disabled and yabai --load-sa for scripting addition
  • ghostty: Terminal emulator

About

My own personal configurations of various things

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages