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/btopprefix + 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 + Ito install/update plugins - Neovim: Plugins update automatically via Lazy.nvim
- Zsh:
omz updateto update Oh My Zsh - Fish:
omf updateto 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 + Ito 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