184 lines
6.1 KiB
Markdown
184 lines
6.1 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this dotfiles project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [1.1.0] - 2025-12-16
|
|
|
|
### Added
|
|
|
|
#### Shell Startup Optimization
|
|
- **Deferred Loading** - Heavy plugins and functions load after first prompt displays
|
|
- **Cached Command Checks** - `_has_cmd()` function caches `command -v` results for faster lookups
|
|
- **Lazy kubectl** - kubectl completions only load when first used (saves ~200-500ms)
|
|
- **Background Tasks** - Dotfiles sync check runs fully async with `&!`
|
|
- **Compile Script** (`dotfiles-compile.sh`) - Pre-compile zsh files to `.zwc` bytecode for 20-50ms speedup
|
|
|
|
#### Smart Path Resolution
|
|
- **`_df_run()` Helper** - All aliases use full path with fallback to PATH
|
|
- Fixes "command not found" errors on fresh installs
|
|
- Scripts work even before symlinks are created or PATH is set
|
|
|
|
#### New Aliases
|
|
- `dfcompile` - Compile zsh files for faster startup
|
|
- `dfcd` - Navigate to dotfiles directory (replaces `df` to avoid disk utility conflict)
|
|
|
|
### Changed
|
|
|
|
#### Script Reorganization
|
|
- Renamed `bin/shell-stats.sh` → `bin/dotfiles-stats.sh`
|
|
- Renamed `bin/vault.sh` → `bin/dotfiles-vault.sh`
|
|
- Renamed `bin/update-dotfiles.sh` → `bin/dotfiles-update.sh`
|
|
- Moved `bin/setup-wizard.sh` → `setup/setup-wizard.sh`
|
|
- Moved `bin/setup-espanso.sh` → `setup/setup-espanso.sh`
|
|
- Removed deprecated `bin/deploy-zshtheme-systemwide.sh`
|
|
|
|
#### Alias System Overhaul
|
|
- All command aliases now use `_df_run()` function wrapper
|
|
- Uses full path `$_df_dir/bin/script.sh` with fallback to PATH lookup
|
|
- Better error messages when scripts not found
|
|
- Removed `df` alias (conflicts with disk free utility)
|
|
|
|
#### .zshrc Optimizations
|
|
- Reduced default plugins (removed `docker`, `docker-compose`, `kubectl` from immediate load)
|
|
- Disabled oh-my-zsh auto-update check on every load (`DISABLE_AUTO_UPDATE="true"`)
|
|
- Tool aliases (eza, bat) now set up in deferred loading
|
|
- FZF configuration deferred until after prompt
|
|
- Vault secrets loaded with full path to avoid command_not_found issues
|
|
- Background sync check uses full script path
|
|
|
|
### Fixed
|
|
|
|
- **Fresh Install Bug** - "Command not found: dotfiles-sync.sh" error on new user accounts
|
|
- **Path Resolution** - Scripts now work before `~/.local/bin` is in PATH
|
|
- **Smart Suggest Conflicts** - Background tasks no longer trigger `command_not_found_handler`
|
|
|
|
### Removed
|
|
|
|
- `df` alias (conflicted with `df` disk utility)
|
|
- Heavy plugins from default load (now lazy-loaded)
|
|
- `bin/deploy-zshtheme-systemwide.sh` (redundant with installer)
|
|
|
|
---
|
|
|
|
## [1.0.0] - 2025-12-15
|
|
|
|
### Added
|
|
|
|
#### Core Features
|
|
- **Interactive Setup Wizard** (`setup-wizard.sh`) - Beautiful TUI installer using `gum` with fallback to basic prompts
|
|
- **Dynamic MOTD** (`motd.zsh`) - Compact system info on shell start (uptime, CPU, memory, docker, git status)
|
|
- **Command Palette** (`command-palette.zsh`) - Raycast-style fuzzy launcher triggered by Ctrl+Space or Ctrl+P
|
|
- **Smart Suggestions** (`smart-suggest.zsh`) - Typo correction for 100+ common mistakes + alias recommendations
|
|
- **Shell Analytics** (`dotfiles-stats.sh`) - Dashboard showing command usage, suggestions, and activity heatmap
|
|
- **Secrets Vault** (`dotfiles-vault.sh`) - Encrypted storage for API keys using age/gpg
|
|
- **Password Manager Integration** (`password-manager.zsh`) - Unified CLI for 1Password, LastPass, Bitwarden
|
|
- **Dotfiles Sync** (`dotfiles-sync.sh`) - Multi-machine synchronization with watch mode
|
|
- **Dotfiles Doctor** (`dotfiles-doctor.sh`) - Health checker with auto-fix capability
|
|
- **Version Tracking** (`dotfiles-version.sh`) - Compare local vs remote versions
|
|
|
|
#### Password Manager Support
|
|
- 1Password CLI (`op`) installation and integration
|
|
- LastPass CLI (`lpass`) installation and integration
|
|
- Bitwarden CLI (`bw`) installation and integration
|
|
- Unified `pw` command with fuzzy search support
|
|
|
|
#### Configuration
|
|
- Centralized `dotfiles.conf` for all settings
|
|
- Git identity configuration (generated, not hardcoded)
|
|
- Feature toggles for all optional components
|
|
- Machine-specific config support via `.zshrc.local`
|
|
|
|
#### Installation
|
|
- `--wizard` flag for interactive TUI installation
|
|
- `--uninstall` flag to remove symlinks and restore backups
|
|
- `--purge` flag to completely remove dotfiles
|
|
- `--skip-deps` flag for faster re-runs
|
|
- Auto-detection of installed dependencies
|
|
- Automatic zsh plugin installation
|
|
|
|
#### Zsh Theme
|
|
- Two-line prompt with git integration
|
|
- Command timer for long-running commands
|
|
- Root detection (red prompt for root)
|
|
- Smart path truncation
|
|
|
|
#### Espanso
|
|
- 100+ text expansion snippets
|
|
- Personal snippet template
|
|
- Setup script for personalization
|
|
|
|
#### Snapper (Arch/CachyOS)
|
|
- Btrfs snapshot management functions
|
|
- limine-snapper-sync integration
|
|
- Boot menu validation
|
|
|
|
#### Documentation
|
|
- Comprehensive README with feature overview
|
|
- Detailed SETUP_GUIDE with troubleshooting
|
|
- ESPANSO reference with all snippets
|
|
- SNAPPER guide for btrfs users
|
|
|
|
### Changed
|
|
- Optimized `.zshrc` with lazy-loading for NVM and virtualenvwrapper
|
|
- Streamlined `adlee.zsh-theme` (removed unused functions)
|
|
- Git config now generated from `dotfiles.conf` instead of hardcoded
|
|
|
|
### Removed
|
|
- Hardcoded git credentials from `.gitconfig`
|
|
- Redundant code in theme file
|
|
- Duplicate `export ZSH=` statements
|
|
|
|
---
|
|
|
|
## Version History
|
|
|
|
### Versioning Scheme
|
|
|
|
- **Major** (1.x.x): Breaking changes, major feature additions
|
|
- **Minor** (x.1.x): New features, non-breaking changes
|
|
- **Patch** (x.x.1): Bug fixes, documentation updates
|
|
|
|
### Checking Your Version
|
|
|
|
```bash
|
|
dfv
|
|
# or
|
|
dotfiles-version.sh
|
|
```
|
|
|
|
### Updating
|
|
|
|
```bash
|
|
dfu
|
|
# or
|
|
dotfiles-update.sh
|
|
```
|
|
|
|
---
|
|
|
|
## Roadmap
|
|
|
|
### Planned for 1.2.0
|
|
- [ ] Multiple theme support with live preview
|
|
- [ ] Project scaffolding templates
|
|
- [ ] SSH key generation helper
|
|
- [ ] Machine profiles (work, personal, server)
|
|
|
|
### Planned for 1.3.0
|
|
- [ ] Remote machine bootstrap script
|
|
- [ ] Neovim configuration support
|
|
|
|
---
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch
|
|
3. Make your changes
|
|
4. Update CHANGELOG.md
|
|
5. Bump version in `dotfiles.conf`
|
|
6. Submit a pull request
|