Skip to content
zo-lyPublic

About

My application settings in sync (macOS) by Mackup

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

188 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My settings

My application settings in sync (macOS) by Mackup

⚠️ This repo is public. Never commit credentials — shell and git config are synced out of ~, so an exported token would be published. See Security.

Mackup uses copy mode (not symlinks). macOS Sonoma 14+ no longer supports symlinked preferences. mackup backup copies files into this repo; mackup restore copies them back to ~.

Restore on a new machine

1. Install Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Apple Silicon uses /opt/homebrew, Intel uses /usr/local. The $BREW_HOME variable in .zshenv handles this — update it if needed.

2. Install prerequisites

CLI tools are managed by mise, installed with its own script (not brew — on Intel, brew would compile it from source):

curl https://mise.run | sh
~/.local/bin/mise use -g uv pipx:mackup
brew install git-crypt

3. Clone and unlock this repo

Mackup now works in copy mode, so this repo does not need to live at ~/dotfiles.

git clone git@github.com:zo-ly/dotfiles.git
cd dotfiles

Unlock encrypted files (key stored in OneDrive):

git-crypt unlock ~/OneDrive/dotfile.key

4. Restore configs via Mackup

cp ./Mackup/.mackup.cfg ~/
cp -r ./Mackup/.mackup ~/
~/.local/bin/mise exec -- mackup restore

On an Intel Mac, also pin the tools whose upstream no longer ships x86_64 macOS binaries (see Mackup/.config/mise/config.intel.toml):

echo 'export MISE_ENV=intel' >> ~/.zshenv.local

5. Install fonts

Required before setting up the shell prompt and terminal:

6. Install CLI tools

Open a new terminal first, then:

mise install                 # everything in ~/.config/mise/config.toml, as prebuilt binaries
brew install btop            # no macOS release binary upstream

kitty, via its official installer (docs):

curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin

7. Install oh-my-zsh and plugins

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

8. Install Neovim plugins

LazyVim manages plugins automatically. On first launch just open Neovim and wait for the installation to complete:

nvim

9. Set up Claude Code status line

Mackup restores the ccstatusline widget config (~/.config/ccstatusline/settings.json), but not the statusLine entry in ~/.claude/settings.json. Run the TUI once and choose Install to Claude Code:

npx -y ccstatusline@latest

10. Manual imports

  • Raycast — import extensions from the raycast/ folder
  • Bob — translation/OCR app (paid build); import Bob/config.bobconfig from inside the app

Back up

mackup backup

Then commit and push the changes in this repo.


Day to day

mise use -g <tool>  # CLI tool with a macOS release binary; else brew install <tool>
brew install --cask <app>

mise upgrade        # upgrades and removes the replaced versions
brew upgrade        # on Intel, check `brew upgrade -n` first: anything without a bottle builds from source
mise self-update
mise prune -y       # occasionally: versions no config references any more

After mise use -g, run mackup backup and commit; on the other machine git pull && mackup restore && mise install.

Migrating an existing machine from brew to mise

cd ~/dotfiles && git pull
curl https://mise.run | sh
mackup restore                                   # still the brew one at this point
echo 'export MISE_ENV=intel' >> ~/.zshenv.local   # Intel only

Check ~/.config/mise/config.toml for a token or machine-only tools before mackup restore — it is overwritten. Then, in a new terminal:

mise install
for f in starship neovim zoxide fzf ripgrep fd git-delta gh glab lazygit lazydocker onefetch mackup mise eza tailspin; do
  brew list "$f" &>/dev/null && brew uninstall "$f"
done
brew autoremove && brew cleanup -s

Commonly used third-party applications

CLI

GUI

About

My application settings in sync (macOS) by Mackup

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages