Personal dotfiles for a modern development environment with automated installation.
- Neovim with LazyVim framework, LSPs, and plugins
- Vim with iceberg theme and essential plugins
- Zsh with Prezto framework and PowerLevel10k theme
- Tmux with plugin manager and custom configuration
- Yazi file manager with plugins and image previews
- Ghostty terminal configuration (macOS)
- Git configuration with helpful aliases
- Automated SSH key setup from GitHub
Prerequisites: Ensure you have zsh
installed and are running the script in zsh.
# Clone the repository
mkdir -p ~/git && cd ~/git
git clone <your-repo-url> dotfiles
cd dotfiles
# Run the installation script
./install.sh
The installation script will:
- Set up SSH authorized keys from your GitHub account
- Check for required dependencies
- Install and configure all applications
- Create proper symlinks
- Set up plugins for vim, tmux, and neovim
git
curl
vim
tmux
zsh
nvim
(version 0.11+) - For the full Neovim experiencefzf
fd
- Required for Neovim fuzzy findingglow
- For markdown previews in yazichafa
- For image previews in yazivivid
- Enhanced terminal colorskeychain
- SSH key management (Linux)
Ubuntu/Debian:
sudo apt update && sudo apt install curl vim tmux git zsh keychain vivid
# For desktop environments
sudo apt install fonts-powerline && sudo fc-cache -fv
macOS:
brew install nvim fzf fd glow chafa vivid
- Uses LazyVim framework with Lazy plugin manager
- Leader key:
,
- Automatic LSP installation via Mason
- Custom plugins for enhanced development
- Custom theme: flexoki-dark
- Plugins: glow, jump-to-char, mount, piper
- Image previews with chafa (works in tmux)
- Markdown previews with glow
- Plugin manager (TPM) with sensible defaults
- Theme: tmux-power (gold theme)
- Session resurrection support
- Optimized for image previews in yazi
- Prezto framework with PowerLevel10k theme
- Custom aliases and functions
- Enhanced history search
- Automatic editor variable setup (prefers nvim over vim)
If you prefer manual installation or need to troubleshoot:
Manual Neovim Setup
# Clean existing config
rm -rf ~/.config/nvim ~/.local/{state,share,cache}/nvim
# Link configuration
ln -fs ~/git/dotfiles/nvim ~/.config/nvim
# Install plugins
nvim --headless -c "Lazy! sync" -c "qa"
nvim --headless -c "MasonInstallAll" -c "qa"
Manual Vim Setup
git clone https://github.com/cocopon/iceberg.vim.git ~/git/iceberg.vim
mkdir -p ~/.vim/colors
ln -fs ~/git/iceberg.vim/colors/iceberg.vim ~/.vim/colors/iceberg.vim
ln -fs ~/git/dotfiles/.vimrc ~/.vimrc
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
vim +'PlugInstall --sync' +qa
Manual Tmux Setup
ln -fs ~/git/dotfiles/.tmux.conf ~/.tmux.conf
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
tmux start-server
tmux new-session -d
tmux source ~/.tmux.conf
~/.tmux/plugins/tpm/scripts/install_plugins.sh
tmux kill-server
dotfiles/
├── install.sh # Automated installation script
├── nvim/ # Neovim configuration (LazyVim)
├── yazi/ # Yazi file manager configuration
├── ghostty/ # Ghostty terminal configuration
├── .vimrc # Vim configuration
├── .tmux.conf # Tmux configuration
├── .zshrc # Zsh configuration
├── .gitconfig # Git configuration
├── .aliases # Shell aliases
├── .p10k.zsh # PowerLevel10k theme
└── .zprezto/ # Prezto framework customizations
- Yazi plugins:
ya pkg upgrade
- Neovim plugins:
:Lazy sync
in nvim - Tmux plugins:
<prefix>U
in tmux - Vim plugins:
:PlugUpdate
in vim