Dotfiles update 2025-12-23 19:24
This commit is contained in:
449
CHANGELOG.md
449
CHANGELOG.md
@@ -1,449 +0,0 @@
|
|||||||
# 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.zsh` wrapper
|
|
||||||
- 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](docs/SIMPLIFICATION_SUMMARY.md) - Overview of changes
|
|
||||||
- [IMPLEMENTATION_GUIDE.md](docs/IMPLEMENTATION_GUIDE.md) - How to apply changes
|
|
||||||
- [DETAILED_CHANGES.md](docs/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_1PASSWORD` toggle
|
|
||||||
- Removed `INSTALL_BITWARDEN` toggle
|
|
||||||
- Removed `INSTALL_EMACS` toggle
|
|
||||||
- Removed `INSTALL_VSCODE` toggle
|
|
||||||
- Added `INSTALL_NEOVIM` toggle (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
|
|
||||||
```bash
|
|
||||||
# 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
|
|
||||||
```bash
|
|
||||||
# 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
|
|
||||||
```bash
|
|
||||||
# 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
|
|
||||||
```bash
|
|
||||||
# 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
|
|
||||||
```bash
|
|
||||||
# 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
|
|
||||||
```bash
|
|
||||||
# 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:**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 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:**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 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
|
|
||||||
|
|
||||||
1. **Maintainability** - 90% less complex code paths
|
|
||||||
2. **Reliability** - Can thoroughly test all scenarios
|
|
||||||
3. **Performance** - Installation 47% faster
|
|
||||||
4. **Clarity** - Code is easier to understand
|
|
||||||
5. **Documentation** - Focused on Arch/CachyOS users
|
|
||||||
6. **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
|
|
||||||
|
|
||||||
```bash
|
|
||||||
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](https://semver.org/):
|
|
||||||
|
|
||||||
- **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
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 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](CONTRIBUTING.md) for information about contributing to this project.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
MIT License - See LICENSE file for details
|
|
||||||
Reference in New Issue
Block a user