Personal macOS development environment managed with GNU Stow and Homebrew.
This repository contains the configuration I use for my shell, terminal, editor, and daily development tools. The setup is intentionally simple: Homebrew installs the required packages, GNU Stow symlinks the dotfiles into $HOME, and the bootstrap script installs the external shell and tmux plugins used by the configs.
- Zsh configuration for the interactive shell, prompt, plugins, aliases, and environment setup.
- Neovim configuration for editor behavior, language tooling, navigation, completion, and UI.
- tmux configuration for terminal multiplexing, pane/window workflows, plugin management, and session behavior.
- Ghostty terminal configuration.
- Homebrew
Brewfilefor command-line tools, applications, and development dependencies.
.
|-- Brewfile # Homebrew packages, casks, and taps
|-- bootstrap.sh # One-command setup script
|-- .stow-local-ignore # Files Stow should not symlink into $HOME
|-- .zshrc # Main Zsh configuration
|-- .tmux.conf # tmux configuration
|-- .ideavimrc # IdeaVim configuration
`-- .config/
|-- ghostty/ # Ghostty configuration
|-- nvim/ # Neovim configuration
`-- zsh/ # Additional Zsh scripts and aliases
Clone the repository into ~/dotfiles:
git clone git@github.com:bilaloumehdi/dotfiles.git ~/dotfiles
cd ~/dotfilesRun the bootstrap script from the repository root:
./bootstrap.shThe script will:
- Install Homebrew if it is missing.
- Install packages and applications from
Brewfile. - Install
gitif the system does not already provide it. - Install Oh My Zsh and the Zsh plugins referenced by
.zshrc. - Symlink the dotfiles into
$HOMEwith GNU Stow. - Install TPM and the tmux plugins referenced by
.tmux.conf. - Set the default shell to Zsh.
If this is a new machine, make sure Apple's command line tools are available:
xcode-select --installIf you already have dotfiles in $HOME, run a Stow dry-run first to check for conflicts:
cd ~/dotfiles
stow -nv .If Stow reports conflicts, back up or remove the existing files before running ./bootstrap.sh.
Install or update Homebrew dependencies:
brew bundle --file=BrewfileCheck whether Brewfile dependencies are installed without requiring upgrades:
brew bundle check --no-upgrade --file=BrewfilePreview Stow changes:
stow -nv .Apply Stow links manually:
stow .bootstrap.shis expected to be run from the repository root.- Powerlevel10k is installed by Homebrew and sourced directly from
/opt/homebrew/share/powerlevel10k. .stow-local-ignorekeeps repository-only files such asREADME.md,Brewfile, andbootstrap.shout of$HOME.- tmux plugins are installed through TPM after
.tmux.confhas been stowed.