My Personal dotfiles for macOS, featuring a highly customized development environment with Neovim, Tmux, Zsh, Fish shell, and Cursor IDE.
- Zsh with Oh My Zsh and powerlevel10k theme
- Fish with Oh My Fish and Tide v6 theme (Powerlevel10k equivalent)
- Tmux with clean Dracula theme and enhanced keybindings
- Kitty terminal emulator configuration
- Btop system monitoring with custom themes
- Cursor IDE configuration with sound disabled and optimized settings
- Neovim (NVIM) with Lazy.nvim plugin manager
- LSP support with auto-completion and diagnostics
- Tree-sitter for syntax highlighting
- Telescope for fuzzy finding
- Linting with nvim-lint
- Formatting with conform.nvim
- Git integration with gitsigns and lazygit
- Markdown support with preserved ASCII diagrams
- Clean status bar with essential info only (hostname, path, date)
- Dracula color theme with subtle separators
- Enhanced keybindings for pane/window/session management
- Multiple cheat sheet options:
- Quick reference (
prefix + ?
) - Popup style (
prefix + C-?
) - disappears on Escape - Floating window (
prefix + C-h
) - persistent reference
- Quick reference (
- TPM plugins: tmux-yank, tmux-open, tmux-copycat, tmux-resurrect, tmux-continuum
- Shell integration for proper powerlevel10k prompt
- Git configuration with aliases and hooks
- LazyGit for Git operations
- Rust toolchain setup
- Node.js and pnpm configuration
- Python environment management
.config/
├── nvim/ # Neovim configuration
│ ├── lua/bryan/ # Custom Neovim modules
│ │ ├── core/ # Core settings and options
│ │ ├── plugins/ # Plugin configurations
│ │ └── templates/ # File templates
│ ├── after/ # Filetype-specific settings
│ └── init.lua # Neovim entry point
├── cursor/ # Cursor IDE configuration
│ ├── config.json # Main Cursor settings
│ ├── argv.jsonc # Cursor launch arguments
│ └── mcp.json.template # MCP configuration template
├── fish/ # Fish shell configuration
│ ├── config.fish # Main Fish configuration
│ ├── conf.d/ # Fish configuration snippets
│ ├── functions/ # Custom Fish functions
│ └── themes/ # Fish theme configurations
├── tmux/ # Tmux configuration
│ ├── tmux.conf # Main tmux config
│ └── plugins/ # TPM plugins (managed by TPM)
├── zsh/ # Zsh configuration
│ ├── .zshrc # Main zsh config
│ └── oh-my-zsh/ # Oh My Zsh installation
├── kitty/ # Kitty terminal config
├── btop/ # Btop system monitor config
├── scripts/ # macOS customization scripts
└── README.md # This file
- macOS (tested on M2 Max)
- Homebrew installed
- Git installed
# Clone the repository
git clone https://github.com/bryanwills/dotfiles.git ~/.config
# Run the installation script
cd ~/.config
./scripts/install.sh
# Clone to your preferred location
git clone https://github.com/bryanwills/dotfiles.git
# Create symlinks (adjust paths as needed)
ln -s ~/path/to/dotfiles/nvim ~/.config/nvim
ln -s ~/path/to/dotfiles/tmux ~/.config/tmux
ln -s ~/path/to/dotfiles/zsh/.zshrc ~/.zshrc
ln -s ~/path/to/dotfiles/kitty ~/.config/kitty
ln -s ~/path/to/dotfiles/btop ~/.config/btop
prefix + r
- Reload tmux configurationprefix + ?
- Show quick cheat sheetprefix + C-?
- Show popup cheat sheet (Escape to close)prefix + C-h
- Toggle floating cheat sheet windowprefix + v
- Vertical splitprefix + s
- Horizontal splitprefix + h/j/k/l
- Navigate panesprefix + c
- New windowprefix + n/p
- Next/previous windowprefix + d
- Detach session
<leader>e
- Toggle file explorer<leader>ff
- Find files<leader>fg
- Live grep<leader>fb
- Find buffers<leader>gd
- Go to definition<leader>gr
- Go to references<leader>ca
- Code actions<leader>rn
- Rename symbol
-
Install TPM (if not already installed):
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm
-
Install plugins:
- Start tmux
- Press
prefix + I
(Ctrl+a, then Shift+i)
-
Reload configuration:
- Press
prefix + r
(Ctrl+a, then r)
- Press
-
Install dependencies:
# Install language servers npm install -g typescript typescript-language-server npm install -g @tailwindcss/language-server npm install -g prettier
-
First launch:
- Neovim will automatically install plugins on first run
- Wait for installation to complete
-
Install Oh My Zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
-
Install powerlevel10k:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
-
Install Fish shell:
brew install fish
-
Install Oh My Fish:
curl -L https://get.oh-my.fish | fish
-
Install Tide theme:
omf install tide@v6
-
Set Fish as default shell (optional):
echo /opt/homebrew/bin/fish | sudo tee -a /etc/shells chsh -s /opt/homebrew/bin/fish
- Configuration location:
~/.config/cursor/
- Sound settings: All audio cues and notifications are disabled by default
- Launch arguments: Optimized for performance and stability
- MCP integration: Template provided for Model Context Protocol setup
scripts/install.sh
- Complete installation scriptscripts/uninstall.sh
- Uninstallation and cleanupscripts/macos-customizations.sh
- macOS system preferencesscripts/dependencies.sh
- Dependency checkerscripts/clean-ds-store.sh
- Clean up .DS_Store files
- Screenshot settings (PNG format, custom save location)
- Dock preferences (auto-hide, fast animations)
- File system settings (show extensions, iCloud preferences)
- .DS_Store prevention on network and USB drives
- Tmux:
prefix + I
to install/update plugins - Neovim: Plugins update automatically via Lazy.nvim
- Zsh:
omz update
to update Oh My Zsh - Fish:
omf update
to update Oh My Fish
- Tmux:
prefix + r
- Neovim: Restart or
:Lazy sync
- Zsh:
source ~/.zshrc
- Fish:
source ~/.config/fish/config.fish
- Cursor: Restart application for config changes
- Install script creates backups automatically
- Uninstall script restores original configurations
- Git history tracks all configuration changes
- Dracula theme for tmux
- Custom Neovim color scheme
- powerlevel10k for Zsh prompt
- Tide v6 for Fish shell (Powerlevel10k equivalent)
- Dark mode optimized for development
- JetBrains Mono recommended for Neovim
- SF Mono for macOS terminal
- Nerd Fonts for icons and symbols
- Tmux plugins not working: Run
prefix + I
to install - Neovim slow startup: Check plugin installation with
:Lazy
- Zsh prompt issues: Verify powerlevel10k installation
- Permission errors: Check file ownership and symlinks
- Check the generated log files from install scripts
- Review the cheat sheets (
prefix + ?
in tmux) - Check Neovim health with
:checkhealth
This is a personal dotfiles repository, but suggestions and improvements are welcome:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Neovim community for the excellent editor
- Tmux developers and plugin authors
- Oh My Zsh and powerlevel10k teams
- Homebrew maintainers for package management
Note: These dotfiles are configured for macOS and may need adjustments for other operating systems. Todo: Need to create Windows dotfiles from MacOS dotfiles and remove apps that aren't on Windows