My daily configuration files for a modern, productive, and minimal shell on macOS (Apple Silicon), built around my .zshrc:
- ⚡ Zsh with custom plugins, managed by Antidote
- ✨ Starship prompt, Atuin shell history, zoxide and fzf for navigation
- 📝 Neovim (and Zed) as editors
- 🪞 Ghostty as terminal emulator
- 🛠️ Other CLI tools (mise, yazi, btop, etc.)
- 🍺 Homebrew package management via
Brewfile(Homebrew Bundle, brew bundle and Brewfile)
dotfiles/
├── Configs/ # Dotfiles; each Configs/<name>/ subdirectory is one tuckr group
├── Hooks/ # Setup scripts (auto-run on `tuckr set`): brew-backup, environment, proton-pass
└── Brewfile # Homebrew packagesMake sure you have installed:
- Git
- Zsh
- Homebrew (on macOS)
- Tuckr for dotfiles management
-
Clone your dotfiles repository into a folder in your home directory (the
brew-backuphook expects~/dotfiles):git clone https://github.com/fraluc06/dotfiles.git ~/dotfiles && cd ~/dotfiles
or via gh CLI:
gh repo clone fraluc06/dotfiles ~/dotfiles && cd ~/dotfiles
-
Use Tuckr to symlink your configs automatically:
tuckr add zsh tuckr add nvim tuckr add ghostty # ...or all with one command (escape the
*so the shell passes it to tuckr):tuckr add \*For the SSH + launchd setup (SSH client config, Proton Pass CLI SSH agent daemon, and
XDG_CONFIG_HOMEfor GUI apps), run:tuckr set ssh proton-pass environmentThis symlinks the configs and runs the posthooks, which auto-bootstrap the launchd agents (
com.proton.pass-cli.ssh-agentandmy.startup.shell_agnostic.environment). No manuallaunchctlcommands needed.To also keep your
Brewfileup to date automatically, runtuckr set brew-backup. It installs a launchd agent that runsbrew bundle dumponce a day (default 03:00, if the Mac is asleep it runs at wake-up) and commits/pushes changes. Schedule, remote and push behavior are set inHooks/brew-backup/config.sh. -
Install all Homebrew packages and casks from your
Brewfile:brew bundle
To refresh the
Brewfilemanually instead of waiting for the daily backup:brew bundle dump --file=./Brewfile --force
- Managed with
Antidotefor optimal plugin loading zsh-autosuggestions: Dynamic suggestions while typingfzf-tab: Replace zsh's default completion selection menu with fzffast-syntax-highlighting: Syntax highlighting for commandsforgit: A utility tool powered by fzf for using git interactively.
- Nushell configs live in the
nushellgroup, but the main shell is Zsh. TheXDG_CONFIG_HOMElaunchd setup (environmentgroup) is shell-agnostic and is covered in the setup steps above.
- Ghostty with custom themes and fonts:
- Catppuccin: Ghostty is configured for automatic theme switching (
theme = light:Catppuccin Latte,dark:Catppuccin Mocha), but macOS is kept in dark mode, so Catppuccin Mocha is effectively always active. Wherever a tool supports themes, Catppuccin Mocha is used. - Maple Mono Normal NF: A rounded monospaced font with Nerd Font glyphs and cursive italics for an enhanced coding experience
- Catppuccin: Ghostty is configured for automatic theme switching (
MIT – Free to use, modify, and distribute with attribution.
