https://github.com/prashantkoirala465/dotfiles
A carefully curated collection of configuration files for a productive macOS development environment
https://github.com/prashantkoirala465/dotfiles
aerospace borders dotfiles dotfiles-macos gnu-stow htop neovim plugins productivity
Last synced: 3 months ago
JSON representation
A carefully curated collection of configuration files for a productive macOS development environment
- Host: GitHub
- URL: https://github.com/prashantkoirala465/dotfiles
- Owner: prashantkoirala465
- License: mit
- Created: 2025-10-05T03:09:36.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-10-05T03:34:41.000Z (3 months ago)
- Last Synced: 2025-10-05T05:32:55.309Z (3 months ago)
- Topics: aerospace, borders, dotfiles, dotfiles-macos, gnu-stow, htop, neovim, plugins, productivity
- Language: Lua
- Homepage:
- Size: 13.3 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🏠 My Dotfiles





*A carefully curated collection of configuration files for a productive macOS development environment*
[Installation](#-installation) •
[Features](#-features) •
[Applications](#-applications) •
[Customization](#-customization) •
[Troubleshooting](#-troubleshooting)
## 📖 Overview
Welcome to my personal dotfiles repository! This collection represents years of refinement and optimization for a macOS development environment. These configurations are designed to provide a seamless, productive, and aesthetically pleasing computing experience.
### 🎯 Philosophy
- **Minimalism**: Clean, focused configurations without unnecessary bloat
- **Productivity**: Optimized workflows and keyboard-driven interfaces
- **Consistency**: Unified color schemes and interaction patterns
- **Modularity**: Easy to maintain and customize individual components
## 🚀 Quick Start
```bash
# Clone the repository
git clone https://github.com/prashantkoirala465/dotfiles.git ~/dotfiles
# Navigate to the directory
cd ~/dotfiles
# Install with GNU Stow (install stow first if needed: brew install stow)
stow .
```
## 📋 Prerequisites
Before installing these dotfiles, ensure you have the following installed:
### Essential Tools
- **Homebrew**: Package manager for macOS
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
- **GNU Stow**: Symlink farm manager
```bash
brew install stow
```
- **Git**: Version control (usually pre-installed)
```bash
xcode-select --install
```
### Recommended Applications
Install these applications for the full experience:
```bash
# Terminal & Shell
brew install --cask alacritty
brew install zsh zsh-completions
# Development Tools
brew install --cask neovide
brew install neovim
# System Utilities
brew install --cask aerospace
brew install borders
brew install btop htop
brew install yazi
# Optional: Sketchybar (macOS menu bar)
brew install --cask sf-symbols
brew install sketchybar
```
## 🔧 Installation
### Method 1: Automated Installation (Recommended)
```bash
# Clone the repository
git clone https://github.com/prashantkoirala465/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Backup existing configurations (optional but recommended)
mkdir -p ~/.config-backup
[ -f ~/.zshrc ] && cp ~/.zshrc ~/.config-backup/
[ -d ~/.config ] && cp -r ~/.config ~/.config-backup/
# Use GNU Stow to create symlinks
stow .
# Restart your terminal or source the new configuration
source ~/.zshrc
```
### Method 2: Manual Installation
If you prefer to cherry-pick specific configurations:
```bash
# Clone the repository
git clone https://github.com/prashantkoirala465/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Create symlinks manually for specific applications
stow --target=$HOME .config/nvim
stow --target=$HOME .config/alacritty
stow --target=$HOME .zshrc
# ... add other configurations as needed
```
### Method 3: Selective Installation
```bash
cd ~/dotfiles
# Install only specific configurations
stow --target=$HOME/.config .config/nvim # Neovim only
stow --target=$HOME/.config .config/alacritty # Alacritty only
```
## ✨ Features
### 🎨 Unified Theme
- **Dark theme** optimized for extended coding sessions
- **Consistent color palette** across all applications
- **Custom coolnight theme** for Alacritty terminal
### ⚡ Performance Optimizations
- **Lazy loading** for shell plugins and functions
- **Optimized startup times** for all configured applications
- **Resource-efficient** configurations
### 🔒 Security & Privacy
- **Secure defaults** for all applications
- **Privacy-focused** settings where applicable
- **Safe credential handling**
## 📱 Applications
🖥️ Terminal & Shell
### Alacritty
- **Fast GPU-accelerated terminal**
- Custom themes including the exclusive `coolnight` theme
- Optimized font rendering and performance settings
- Keybinding configurations for productivity
**Configuration highlights:**
- Font: Optimized for code readability
- Opacity and background settings
- Comprehensive keybinding setup
- Multiple theme options
### Zsh
- **Highly customized shell experience**
- Aliases for common development tasks
- Performance optimizations
- Git integration and prompt customization
**Key features:**
- Fast directory navigation
- Enhanced command completion
- Git status in prompt
- Productivity aliases
📝 Development Environment
### Neovim
- **Modern, extensible text editor**
- LSP (Language Server Protocol) support
- Plugin management with lazy loading
- Custom keybindings and workflow optimizations
**Features:**
- Syntax highlighting for 100+ languages
- Auto-completion and IntelliSense
- Git integration
- File explorer and fuzzy finder
- Debugging support
### Neovide
- **GPU-accelerated Neovim GUI**
- Enhanced visual experience
- Smooth scrolling and animations
- Font ligature support
🎮 Window Management & System
### AeroSpace
- **Tiling window manager for macOS**
- Keyboard-driven window management
- Multiple workspace support
- Custom layouts and rules
### Borders
- **Window border enhancement**
- Visual feedback for active windows
- Customizable border styles and colors
### Sketchybar
- **Custom macOS menu bar**
- System information display
- Customizable widgets and indicators
- Integration with system events
🔧 System Utilities
### btop/htop
- **Advanced system monitors**
- Real-time resource usage
- Process management
- Custom themes and layouts
### Yazi
- **Terminal file manager**
- Fast file navigation
- Preview support for various file types
- Vim-like keybindings
## 🗂️ Repository Structure
```
~/dotfiles/
├── .config/ # XDG configuration directory
│ ├── aerospace/ # AeroSpace window manager
│ │ └── aerospace.toml
│ ├── alacritty/ # Alacritty terminal
│ │ ├── alacritty.toml
│ │ └── themes/ # Custom themes (git submodule)
│ ├── borders/ # Window borders
│ │ └── bordersrc
│ ├── btop/ # System monitor
│ │ └── btop.conf
│ ├── htop/ # System monitor
│ │ └── htoprc
│ ├── neovide/ # Neovim GUI
│ │ └── config.toml
│ ├── nvim/ # Neovim configuration
│ │ ├── init.lua
│ │ ├── lazy-lock.json
│ │ ├── lazyvim.json
│ │ ├── stylua.toml
│ │ └── lua/ # Lua configuration modules
│ ├── sketchybar/ # Menu bar customization
│ │ ├── sketchybarrc
│ │ └── colors.sh
│ └── yazi/ # File manager
│ ├── yazi.toml
│ ├── keymap.toml
│ ├── theme.toml
│ └── package.toml
├── .zshrc # Zsh shell configuration
└── README.md # This file
```
## 🎨 Customization
### Modifying Configurations
1. **Edit configurations directly:**
```bash
cd ~/dotfiles
# Edit any configuration file
vim .config/alacritty/alacritty.toml
```
2. **Apply changes:**
```bash
# If using stow, changes are automatically symlinked
# For some applications, you might need to restart them
```
3. **Commit your changes:**
```bash
git add .
git commit -m "Update configuration"
git push
```
### Adding New Applications
1. **Create configuration directory:**
```bash
mkdir -p .config/new-app
```
2. **Add your configuration files:**
```bash
cp ~/.config/new-app/config.conf .config/new-app/
```
3. **Update this README** to document the new application
### Theme Customization
The repository includes a custom `coolnight` theme for Alacritty. To modify themes:
1. **Edit existing themes:**
```bash
vim .config/alacritty/themes/themes/coolnight.toml
```
2. **Add new themes:**
```bash
cp .config/alacritty/themes/themes/coolnight.toml .config/alacritty/themes/themes/mynewtheme.toml
```
## 🛠️ Troubleshooting
### Common Issues
Stow conflicts with existing files
**Problem:** GNU Stow reports conflicts when trying to create symlinks.
**Solution:**
```bash
# Remove or backup existing configurations
mv ~/.config/conflicting-app ~/.config/conflicting-app.bak
stow --restow .
```
Terminal doesn't reflect new changes
**Problem:** Changes to shell configuration don't appear.
**Solution:**
```bash
# Reload shell configuration
source ~/.zshrc
# Or restart terminal application
```
Application doesn't recognize new configuration
**Problem:** Application still uses old settings.
**Solution:**
1. Restart the application
2. Check if application has a reload command
3. Verify symlinks are created correctly:
```bash
ls -la ~/.config/app-name
```
Fonts not displaying correctly
**Problem:** Terminal or applications show missing glyphs.
**Solution:**
```bash
# Install a Nerd Font
brew install --cask font-jetbrains-mono-nerd-font
# Update terminal font settings
```
### Debugging Steps
1. **Check symlinks:**
```bash
stow --dry-run . # See what would be done
ls -la ~/.config # Verify symlinks exist
```
2. **Validate configurations:**
```bash
# Most apps have config validation
nvim --headless +checkhealth +qa # Neovim
alacritty --print-events # Alacritty
```
3. **Check logs:**
```bash
# Application-specific log locations
tail -f ~/.config/app/logs/app.log
```
## 🔄 Maintenance
### Updating Configurations
```bash
cd ~/dotfiles
git pull origin main
stow --restow .
```
### Backing Up Current State
```bash
# Create a backup before major changes
cp -r ~/.config ~/.config-backup-$(date +%Y%m%d)
```
### Cleaning Up
```bash
# Remove broken symlinks
find ~ -type l ! -exec test -e {} \; -delete 2>/dev/null
```
## 🤝 Contributing
While these are personal dotfiles, suggestions and improvements are welcome!
1. **Fork the repository**
2. **Create a feature branch**: `git checkout -b feature/amazing-improvement`
3. **Commit changes**: `git commit -m 'Add amazing improvement'`
4. **Push to branch**: `git push origin feature/amazing-improvement`
5. **Create Pull Request**
### Guidelines
- Test configurations on a clean macOS installation when possible
- Document any new dependencies or installation steps
- Follow existing code style and organization
- Update this README for any significant changes
## 📄 License
This project is open source and available under the [MIT License](LICENSE).
## 🙏 Acknowledgments
- **GNU Stow** - For elegant dotfile management
- **Homebrew** - For macOS package management
- **The open source community** - For the amazing tools and inspiration
---
**Made with ❤️ for productivity and aesthetics**
*If you found these dotfiles helpful, consider giving the repository a ⭐!*
## 📞 Support
If you encounter issues or have questions:
1. **Check the [Issues](https://github.com/prashantkoirala465/dotfiles/issues)** for existing solutions
2. **Create a new issue** with detailed information about your problem
3. **Include system information**: macOS version, shell version, etc.
---
*Last updated: October 2025*