A modern, automated dotfiles system that maintains itself with minimal manual intervention.
Originally based on caarlos0/dotfiles, now enhanced with:
- 🤖 Complete Automation: Self-updating tools and configurations
- 🔄 Smart Sync: Automatic repository updates and conflict resolution
- 🐚 Intelligent Shell Setup: Fish preferred with Bash fallback
- 🌍 Cross-Platform: macOS, Linux, WSL compatibility
- 💾 Auto-Backup: Automatic backups before any changes
- 🏥 Health Monitoring: Self-diagnosis and healing
| Guide | Description |
|---|---|
| Quick Start | Get up and running in 2 minutes |
| Automation Guide | Complete automation features |
| System Architecture | How everything works |
| System Setup | System installation details |
| Shell Guide | Shell configuration details |
# Clone and install with full automation
git clone https://github.com/arjaygg/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./scripts/install-system.sh
# Setup automated maintenance
dotfiles schedule daily
# Verify everything works
dotfiles status# Check status and health
dotfiles status
# Manual sync (runs automatically weekly)
dotfiles sync
# Manual updates (runs automatically daily)
dotfiles update
# Get help
dotfiles help- Modern CLI:
bat,eza,fd,ripgrep,fzf,starship - Development:
git,gh,lazygit,nvim,tmux - Languages: Go, Rust, Node.js, Python with toolchains
- Cloud/DevOps:
kubectl,docker,curl,jq
- Daily Updates: All tools stay current automatically
- Weekly Sync: Repository and configurations sync
- Auto-Backup: Before every change, keeps last 5
- Health Checks: Detects and fixes issues automatically
- Smart Conflicts: Auto-resolves with fallbacks
- Single Command:
dotfiles <action>for everything - Automatic Symlinks: All configs linked and maintained
- Cross-Platform: Same commands work everywhere
- Comprehensive Logging: Track all changes and updates
dotfiles status # Show comprehensive system status
dotfiles sync # Sync latest configurations
dotfiles update # Update all tools and packages
dotfiles health # Run health checks and diagnostics
dotfiles help # Show all available commandsdotfiles schedule # Setup automated maintenance
dotfiles backup # Manage configuration backups
dotfiles clean # Clean old files and caches
dotfiles doctor # Diagnose and fix issues
dotfiles install # Fresh install on new system./scripts/install-system.sh # Auto-detect and install everything
dotfiles schedule daily # Enable daily automation./scripts/install-system.sh --apt # Ubuntu/Debian
./scripts/install-system.sh --brew # macOS
./scripts/install-system.sh --pacman # Arch Linux
./scripts/install-system.sh --generic # Fallback method./scripts/install-system.sh --skip-tools # Install configs only
dotfiles sync --no-backup # Skip backups
dotfiles update --skip-system # Skip system packagesAfter installation, check your system:
$ dotfiles status
📊 Dotfiles Status
📁 Repository:
Path: /home/user/.dotfiles
Branch: main
Status: 0 uncommitted changes
Last update: 2 hours ago
🛠️ Tools:
✅ git (2.40.1)
✅ fish (3.6.1)
✅ nvim (0.9.1)
✅ bat (0.23.0)
✅ eza (0.10.5)
✅ fd (8.7.0)
✅ rg (13.0.0)
✅ fzf (0.42.0)
✅ gh (2.32.1)
✅ lazygit (0.40.2)
💾 Backups: 3 available, latest: 20240630_120000
🏥 Health: All checks passedYour dotfiles will automatically:
✅ Update tools daily (Rust, Node.js, Go, Python, CLI tools)
✅ Sync configurations weekly (pull latest, update symlinks)
✅ Create backups before any changes
✅ Monitor health and fix issues
✅ Clean up old files and caches
✅ Log everything for transparency
dotfiles schedule daily # Recommended: daily tool updates
dotfiles schedule weekly # Weekly updates only
dotfiles schedule monthly # Monthly full maintenanceThe system automatically configures:
- Fish shell with modern features and functions
- Bash fallback with same aliases and exports
- Starship prompt for consistent experience
- Tool integrations (fzf, zoxide, etc.)
Auto-managed configurations for:
- Git: Aliases, delta integration, global ignore
- Neovim: Modern setup with plugins (if configured)
- Tmux: Productivity-focused configuration
- Alacritty: Modern terminal with themes
- i3: Tiling window manager setup (Linux)
# Fix common issues
dotfiles doctor
# Force sync everything
dotfiles sync --force
# Reinstall missing tools
dotfiles install
# Check logs
tail -20 ~/.dotfiles-update.log- Command not found: Restart shell or run
source ~/.bashrc - Symlink issues: Run
dotfiles sync --force - Update failures: Check
dotfiles doctoroutput - Permission errors: Ensure scripts are executable
~/.dotfiles/
├── 📁 config/ # Core configurations
│ ├── bash/ # Bash shell setup
│ ├── fish/ # Fish shell setup
│ ├── git/ # Git configuration
│ ├── nvim/ # Neovim setup
│ ├── shell/ # Shared shell configs
│ └── tmux/ # Tmux configuration
├── 📁 scripts/ # Automation scripts
│ ├── dotfiles.sh # Main CLI interface
│ ├── dotfiles-sync.sh # Sync automation
│ ├── auto-update.sh # Update automation
│ └── install-system.sh
├── 📁 system/ # Platform-specific configs
│ ├── alacritty/ # Terminal emulator
│ ├── i3/ # Window manager
│ └── system/ # System tools
└── 📄 docs/ # Documentation
├── AUTOMATION.md # Automation guide
├── ARCHITECTURE.md # System architecture
└── TRADITIONAL-SETUP.md
- Zero maintenance: Focuses on coding, not config management
- Always current: Latest tools and security updates
- Consistent environment: Same setup across all machines
- Fast onboarding: New machine ready in 2 minutes
- Standardized tooling: Everyone uses same modern tools
- Easy sharing: Clone and run, everything works
- Documentation: Comprehensive guides and help
- Flexible: Supports different platforms and preferences
- Infrastructure as Code: Dotfiles managed like infrastructure
- Automated maintenance: No manual intervention required
- Monitoring: Health checks and logging built-in
- Recovery: Automatic backups and rollback capability
Ready to automate your development environment?
-
Install:
git clone https://github.com/arjaygg/dotfiles.git ~/.dotfiles && cd ~/.dotfiles && ./scripts/install-system.sh -
Automate:
dotfiles schedule daily -
Enjoy: Your dotfiles now maintain themselves!
For questions or issues, check the documentation or run dotfiles doctor.
Originally based on caarlos0/dotfiles • Enhanced with modern automation