My personal dotfiles for setting up a development environment on macOS
- Terminal
- Shell
- Fish
- Zsh (default shell for macOS, check zsh branch)
- Neovim (with LazyVim) and vim
- Sketchybar
| Sketchybar | WezTerm, Warp | Neovim, LazyGit | Tmux |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Install Homebrew if you haven't already
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"All required packages are managed through Homebrew Bundle. To install all dependencies:
cd devenv-macos
brew bundle installTo create a new Brewfile with your current packages:
brew bundle dump --forceMake sure to use your username in .config/fish/config.fish and ~/.config/fish/fish_variables.
After brew bundle install, just execute fish and confirm the settings for the first time.
Make sure to check the configuration in ~/.config/fish/config.fish and ~/.config/starship.toml,
then you're good to go.
In order to set fish as a login shell
sudo sh -c 'echo /opt/homebrew/bin/fish >> /etc/shells'
chsh -s /opt/homebrew/bin/fish
Then restart your terminal.
The Neovim configuration uses LazyVim as the base with additional customizations:
- Package manager: lazy.nvim
- Theme: tokyonight-moon
- LSP support for multiple languages
- Various coding and UI enhancements
Follow the instruction from LazyVim for Ambitious Developers.
Customize your MacOS's menu bar.
mkdir -p ~/.config/sketchybar/plugins
cp $(brew --prefix)/share/sketchybar/examples/sketchybarrc ~/.config/sketchybar/sketchybarrc
cp -r $(brew --prefix)/share/sketchybar/examples/plugins/ ~/.config/sketchybar/plugins/The configurations builds upon these amazing projects:
- Neovim - Hyperextensible Vim-based text editor
- LazyVim - Neovim config for the lazy
- WezTerm and Ghostty - GPU-accelerated cross-platform terminal emulators
- Sketchybar - A highly customizable macOS status bar replacement
- Oh My Zsh - A delightful community-driven framework for Zsh
- Powerlevel10k - A fast and feature-rich Zsh theme
- Starship - A minimal, blazing-fast, and infinitely customizable prompt for any shell
Special thanks to these individuals for sharing the config files and writing.
- KevinSilvester: wezterm-config
- Michael Bao: tcmmichaelb139/.dotfiles
- Dusty Phillips: LazyVim for Ambitious Developers
This project is licensed under the MIT.







