A comprehensive dotfiles repository for setting up a modern development environment on Ubuntu/Debian systems using GNU Stow for configuration management.
This repository includes configurations for:
- Neovim - Three configurations available, with
nvim-rust/as the recommended setup - Nushell - Modern shell with custom themes and modules
- WezTerm - GPU-accelerated terminal emulator with Nushell integration
- Zed - High-performance code editor with custom themes
- Starship - Cross-shell prompt with bracketed segments style
- Shell - Modular bash configuration with
.bashrc.d/and.profile.d/
- Ubuntu/Debian-based Linux distribution
- Git
- GNU Stow (
sudo apt install stow)
-
Clone the repository:
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles cd ~/dotfiles
-
Set up local bin directory:
./scripts/setup-local-bin.sh source ~/.bashrc
-
Install desired tools:
# Core tools ./scripts/neovim.sh # Installs Neovim (unstable) ./scripts/starship.sh # Installs Starship prompt ./scripts/wezterm.sh # Installs WezTerm terminal # Optional tools ./scripts/claude.sh # Installs Claude CLI ./scripts/get-nerdfont.sh # Downloads Nerd Fonts
-
Deploy configurations using Stow:
# Deploy individual configurations stow nvim-rust/ # Neovim configuration stow nushell/ # Nushell shell stow wezterm/ # WezTerm terminal stow zed/ # Zed editor stow starship/ # Starship prompt stow shell/ # Bash configuration # Or deploy multiple at once stow nvim-rust/ nushell/ wezterm/ starship/ shell/
-
Restart your terminal or source configurations:
source ~/.bashrc
dotfiles/
├── nvim-rust/ # Recommended Neovim config (Kickstart-based)
├── nvim/ # Alternative Neovim config
├── nvim-mod/ # Another Neovim variant
├── nushell/ # Nushell configuration
├── wezterm/ # WezTerm terminal config
├── zed/ # Zed editor settings
├── starship/ # Starship prompt configs
├── shell/ # Bash/shell configurations
├── scripts/ # Installation scripts
└── prps/ # Project documentation
- Based on Kickstart.nvim with modular plugin organization
- LSP support for multiple languages (Rust, Python, TypeScript, etc.)
- Telescope fuzzy finder, Treesitter syntax highlighting
- Rust development tools via rustaceanvim
- Oil.nvim file explorer, Flash.nvim navigation
- Custom dark/light themes
- Conda integration
- Vi-style keybindings
- Custom completions and aliases
- JetBrains Mono Nerd Font
- Catppuccin color scheme
- Nushell as default shell
- Custom key bindings and tab bar configuration
- Multiple configuration options available
- Bracketed segments style
- Git-aware prompt with language version display
# Deploy a configuration
stow <package>/
# Remove a configuration
stow -D <package>/
# Restow (update symlinks)
stow -R <package>/
# Simulate (dry run)
stow -n <package>/
# Verbose output
stow -v <package>/prps/project.md- Detailed project structure and philosophyprps/tasks.md- Current development tasks and TODO itemsCLAUDE.md- AI assistant guidelines for repository development
If you encounter conflicts when stowing:
# Check what would be stowed
stow -n -v <package>/
# Force restow (careful with existing files)
stow -R <package>/Ensure all required tools are installed:
# Check if tool is installed
which neovim
which starship
which weztermMake sure ~/.local/bin is in your PATH:
echo $PATH | grep -q "$HOME/.local/bin" && echo "Path is set" || echo "Path not set"This is a personal dotfiles repository, but suggestions and improvements are welcome. Please ensure any changes follow the existing structure and work with GNU Stow.
This repository is provided as-is for personal use. Feel free to fork and modify for your own needs.