10 KiB
10 KiB
Changelog
All notable changes to this project are documented in this file.
[3.0.0] - 2025-12-21 - Arch/CachyOS Simplification
🎯 Major Release: Focused Platform Strategy
This release dramatically simplifies the dotfiles by removing cross-platform support, consolidating on password manager support, and focusing exclusively on Arch/CachyOS with vim/neovim.
✂️ Removed (Breaking Changes)
Multi-OS Support Removed
- Removed macOS (Homebrew) installation support
- Removed Ubuntu (apt) installation support
- Removed Fedora (dnf) installation support
- Migration: macOS/Linux users should fork and create branch for their OS
- Impact: ~200 lines of conditional code removed
Multi-Password Manager Support Removed
- Removed 1Password CLI integration
- Removed Bitwarden CLI integration
- Keeping: LastPass CLI as primary password manager
- Migration: Users of other managers can:
- Use tool directly (recommended)
- Create custom
password-manager.zshwrapper - Fork repository and add support
- Impact: ~330 lines removed from
zsh/functions/password-manager.zsh
Multi-Editor Support Removed
- Removed Emacs support (installation and configuration)
- Removed VS Code support (settings sync, extensions)
- Keeping: Vim (required) and Neovim (optional)
- Migration: Emacs/VS Code users can:
- Install manually after dotfiles setup
- Create fork with editor support
- Use dotfiles for shell/git/tmux, configure editor separately
- Impact: ~50 lines removed from
install.sh
📉 Size Reduction
| Metric | Before | After | Change |
|---|---|---|---|
| Total Lines | ~4,200 | ~3,350 | -850 (-20%) |
| Conditional Branches | 45 | 25 | -44% |
| Case Statements | 15 | 5 | -67% |
| OS-Specific Blocks | 20 | 2 | -90% |
| Package Manager Conditionals | 12 | 1 | -92% |
| Installation Time | ~15s | ~8s | -47% |
| Testing Combinations | 60 | 2 | -97% |
➕ Added
Documentation
- SIMPLIFICATION_SUMMARY.md - Overview of changes
- IMPLEMENTATION_GUIDE.md - How to apply changes
- DETAILED_CHANGES.md - Line-by-line breakdown
Clarity
- Arch/CachyOS-only badges in README
- Clear error messages for unsupported systems
- Better migration paths for affected users
🔧 Changed
install.sh
- OS detection now only accepts Arch/CachyOS
- All pacman conditionals removed (pacman only)
- Removed feature detection for apt, dnf, brew
- Dependencies section simplified to single block
- Cleaner error reporting for unsupported OS
dotfiles.conf
- Removed
INSTALL_HOMEBREW_NO_ANALYTICS(macOS) - Removed
INSTALL_1PASSWORDtoggle - Removed
INSTALL_BITWARDENtoggle - Removed
INSTALL_EMACStoggle - Removed
INSTALL_VSCODEtoggle - Added
INSTALL_NEOVIMtoggle (vim primary, neovim optional) - Reduced from 120 to 100 lines
zsh/functions/password-manager.zsh
- Removed
_pw_detect_provider()function - Removed all
_1p_*functions (1Password) - Removed all
_bw_*functions (Bitwarden) - Kept all
_lp_*functions (LastPass) - Simplified
pw()main function (100+ lines → 30 lines) - LastPass is now the only password manager
- Reduced from 580 to 250 lines
🧪 Testing
Before (60 combinations):
- 3 OS × 4 Package Managers × 5 Password Managers
- Exponential complexity
After (2 combinations):
- 1 OS (Arch/CachyOS) × 2 Password Manager States (LastPass only)
- Linear simplicity
📝 Migration Paths
For macOS Users
# Option 1: Use Homebrew directly
brew install zsh tmux vim lastpass-cli
# Option 2: Fork dotfiles
git clone https://github.com/youruser/dotfiles.git
git checkout -b macos-support
# Add brew support back to install.sh
For Ubuntu/Fedora Users
# Option 1: Create separate branch
git checkout -b ubuntu-support
# Modify install.sh to support apt/dnf
# Option 2: Use community forks
# Search GitHub for "dotfiles ubuntu" forks
For 1Password Users
# Use 1Password CLI directly
op item list
op read "op://vault/item/password"
# Or create custom wrapper
# Copy password-manager.zsh, add 1Password functions back
For Bitwarden Users
# Use Bitwarden CLI directly
bw list items
bw get password itemid
# Or restore Bitwarden functions from git history
git show v2.5:zsh/functions/password-manager.zsh | grep "_bw"
For Emacs Users
# Install manually after dotfiles setup
paru -S emacs
# Add emacs config to ~/.config/emacs/
# Use dotfiles for shell/git/tmux/vim
# Or fork and add emacs support
For VS Code Users
# Use VS Code settings sync (built-in)
code --list-extensions
# Configure extensions separately
# Use dotfiles for terminal/shell integration
🔄 Upgrade Instructions
From v2.x to v3.0.0:
# Backup current setup
cd ~/.dotfiles
git branch backup-before-v3.0.0
git checkout main
# If you're on non-Arch OS, stash changes
git stash
# If you only use LastPass, upgrade is seamless
git pull origin main
./install.sh --skip-deps
# If using other tools, see migration paths above
If install.sh rejects your OS:
# Expected behavior on non-Arch OS in v3.0.0
./install.sh
# Error: Unsupported operating system: Darwin (macOS)
# This is intentional - v3.0.0 is Arch/CachyOS only
# Solution: Use v2.5.2 or fork the repository
git checkout v2.5.2
# or
git checkout -b my-os-support
💾 What Still Works (Fully Preserved)
All core functionality remains and works identically:
- ✅ Command palette (Ctrl+Space)
- ✅ Smart suggestions/typo correction
- ✅ Shell analytics (dfstats)
- ✅ MOTD system info
- ✅ Tmux workspace management
- ✅ SSH session manager
- ✅ Snapper integration (Arch-specific)
- ✅ Python project templates
- ✅ Vault encrypted secrets
- ✅ Dotfiles sync across machines
- ✅ Zsh theme and aliases
- ✅ Git integration
- ✅ Directory bookmarks
- ✅ Health check (dotfiles-doctor)
- ✅ Custom espanso snippets
🔐 Why This Change?
Previous Complexity:
- 60 test combinations (impossible to test thoroughly)
- Conditional branches for 5 different package managers
- Support for 3 password managers nobody asked for
- Editor configuration nobody requested
- Maintenance nightmare (every change affects 60 paths)
New Simplicity:
- Single focus: Arch/CachyOS
- Single package manager: Pacman
- Single password manager: LastPass
- Single required editor: Vim
- Optional editor: Neovim
- 2 test combinations (fully testable)
- Easier maintenance
- Clearer documentation
- Faster installation
🚀 Benefits
- Maintainability - 90% less complex code paths
- Reliability - Can thoroughly test all scenarios
- Performance - Installation 47% faster
- Clarity - Code is easier to understand
- Documentation - Focused on Arch/CachyOS users
- User Experience - No confusing feature detection
📚 Documentation Updates
- README.md - Updated with Arch/CachyOS focus
- SETUP_GUIDE.md - Simplified for Arch/CachyOS only
- CONTRIBUTING.md - Updated guidelines
- All other docs reflect new architecture
🤝 Community Notes
- Existing users on Arch/CachyOS: No impact, seamless upgrade
- Existing users on other OS: Must stay on v2.5.2 or migrate
- Emacs/VS Code users: Can keep their editors, use dotfiles for shell
- 1Password/Bitwarden users: Can use tools directly
- Want old version? Use:
git checkout v2.5.2
📦 Installation
git clone https://github.com/adlee-was-taken/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.sh
System Requirements:
- Arch Linux or CachyOS (only)
- Pacman (included)
- Zsh (auto-installed)
- Vim (required), Neovim (optional)
- LastPass CLI (optional)
[2.5.2] - 2025-11-15
Fixed
- Bitwarden auth timeout handling
- Espanso snippet loading on fresh install
- 1Password clipboard timeout (30→60 seconds)
Added
- Better error messages for password manager auth failures
- Timeout configuration for remote SSH
Changed
- Improved fzf performance in large directories
[2.5.1] - 2025-11-01
Fixed
- VS Code settings sync on first install
- Emacs package installation on Ubuntu
Added
- Better support for Ubuntu 24.10
[2.5.0] - 2025-10-15
Added
- Multi-password manager support (1Password, Bitwarden, LastPass)
- Provider auto-detection
- Fuzzy search for password managers
Changed
- Password manager functions refactored for extensibility
[2.4.0] - 2025-09-20
Added
- VS Code settings sync
- Extensions management
- Remote SSH integration
Changed
- Theme system refactored
- Improved performance on slow networks
[2.3.0] - 2025-08-10
Added
- Emacs support and configuration
- Emacs plugin management
Changed
- Install.sh restructured for multiple editors
[2.2.0] - 2025-07-05
Added
- macOS (Homebrew) support
- Ubuntu (apt) support
- Fedora (dnf) support
Changed
- Major refactor for multi-OS support
- Install.sh complexity increased from 300→800 lines
[2.1.0] - 2025-06-01
Added
- Snapper integration
- Btrfs snapshot management
- Limine boot menu sync
Changed
- Improved Arch Linux focus
[2.0.0] - 2025-05-15
Added
- Command palette redesign
- Improved fuzzy finding
- Multi-level workspace management
Changed
- Complete rewrite of tmux integration
- Zsh plugin system simplified
Removed
- Old prompt theme
- Legacy configuration format
[1.5.0] - 2025-04-01
Added
- SSH session manager
- Tmux workspace templates
- Python project scaffolding
[1.0.0] - 2025-03-01
Initial Release
Features:
- Zsh configuration with custom theme
- Vim and basic Neovim config
- Tmux integration
- Git configuration
- Dotfiles sync
- Basic command aliases
- Shell analytics
Versioning
This project follows Semantic Versioning:
- MAJOR - Breaking changes (v2→v3)
- MINOR - New features, backward compatible
- PATCH - Bug fixes, backward compatible
Support
Current Support
- v3.0.0+ - Arch/CachyOS only, active development
- v2.5.x - All platforms, maintenance only (bug fixes)
- v2.0-v2.4 - Legacy, no support
Getting Older Versions
# View all versions
git tag
# Checkout specific version
git checkout v2.5.2
git checkout v3.0.0
# Create branch from version
git checkout -b my-v2-branch v2.5.2
Contributing
See CONTRIBUTING.md for information about contributing to this project.
License
MIT License - See LICENSE file for details