My personal macOS setup and configuration, managed with chezmoi and Homebrew.
This repository contains all my development environment settings — shell, editor, tools, and package configuration — so I can reproduce my setup on any new machine in minutes.
First, fork this repository and update the following files to include your name and email:
dot_gitconfig-personal.inc- Update the name and email to your personal name and email in GitHub.dot_gitconfig-work.inc- Update the name and email to your work name and email in GitHub.
Run this command on a new Mac to install everything automatically (change <your_username> to your username):
GITHUB_USERNAME=<your_username> /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/$GITHUB_USERNAME/dotfiles/refs/heads/main/install.sh)" && rm -rf ~/.local/share/chezmoi/.gitGenerate two SSH-keys for your GitHub accounts (one for personal, one for work):
ssh-keygen -t rsa -f ~/.ssh/id_personal_rsa_github
ssh-keygen -t rsa -f ~/.ssh/id_work_rsa_githubMake sure to use the generated key for configurating your GitHub accounts.
From now on, anything you clone under the path:
~/Projects/Personal- will use your personal key.~/Projects/Work- will use your work key.- Anywhere else won't work with any of them.
- Cursor - Comes predefined with a lot of out-of-the-box extensions.
- VS Code - Comes predefined with a lot of out-of-the-box extensions.
- Neovim + LazyVim
Raycast is an application launcher and productivity tool for macOS that acts as a powerful, extendable alternative to the built-in Spotlight search. I highly recommended to configure your own keybindings and downloading your own extensions.
I highly recommend also to replace the original spotlight shortcut (⌘ + Space) with Raycast:
- Go to System Settings > Keyboard > Keyboard Shortcuts.
- Click on Spotlight.
- Turn off the toggle or clear the shortcut for "Show spotlight search".
- Open Raycast.
- Go to Settings > General.
- Replace the Raycast Hotkey to be ⌘ + Space.
Here are the extensions that I use:
- Visual Studio Code - I mostly use it for searching all recent repositories.
- Jira - For managing and listing issues.
- Base64 - For base64 easy encode/decode from clipboard.
- Spotify Player - For controlling Spotify via Raycast.
- Font Awesome - Search Font Awesome Icons.
- UUID Generator - For generating UUIDs.
Also, here are some of the built-in features you should use and configure them a keybinding:
- Clipboard History - View clipboard history.
- Window Management - Manage window resizing and moving to other monitors.
- ZSH shell with zinit as a plugin manager and PowerLevel10k as the theme (configured in
~/.p10k.zsh) - Warp - a modern, AI-powered terminal emulator.
- iTerm2 - terminal emulator.
- Docker & docker-compose
- Notion - Knowledge base.
- Notion Calendar - calendar application for managing personal and work schedules.
- lnav - log file viewer for the terminal.
- pgAdmin4 - management tool for PostgreSQL.
- Slack
- kubectl - Kubernetes CLI.
- k9s - Terminal UI for Kubernetes.
- kubectx - Context and namespace switcher.
- krew - kubectl plugin manager.
- helm - Kubernetes package manager.
- Lens - Kubernetes IDE.
- AWS CLI
- Jira CLI - A Jira CLI.
- psql - the official postgres client.
- pgcli - postgres cli that does auto-completion and syntax highlighting.
- rg - a.k.a ripgrep - super-fast, recursive, command-line search tool that finds patterns in files, similar to grep with performance and features that make it a modern alternative.
- fd - a simple, fast and user-friendly alternative to find.
- fzf - Command-line fuzzy finder.
- eza - Modern replacement for
ls. - gh - GitHub CLI.
- lazygit - Terminal UI for git.
- gitui - Terminal UI for git.
- sops - Secrets management.
- OpenTofu - Open-source Terraform alternative.
- act - Run GitHub Actions locally.
- uv - Fast Python package manager.
- 1Password - Password Manager
- UnnaturalScrollWheels - Invert scroll direction for physical scroll wheels while maintaining "Natural" scrolling for trackpads on MacOS.