Major shell migration replacing Zsh/Oh-My-Zsh with Fish shell: - Remove all Zsh configurations (dot_zshrc.tmpl, dot_p10k.zsh) - Remove Oh-My-Zsh external dependencies from .chezmoiexternal.toml - Add complete Fish shell setup with config.fish.tmpl and abbr.fish.tmpl - Implement Fish-native functions for lazy-loading tools (mise, pyenv, zoxide, etc.) - Create commonrc.fish.tmpl for cross-shell compatibility - Add Fish plugin management via Fisher (tide prompt, fzf.fish) - Update documentation (CLAUDE.md, TODO.md, ONBOARDING.md) to reflect Fish - Add .fish.tmpl file association to VS Code settings - Enhance PowerShell profile with lsd aliases - Configure git delta pager and zdiff3 merge conflict style - Update WSL keychain integration for Fish shell This migration maintains all existing tool integrations while improving startup performance through lazy-loading and Fish's native features.
dotfiles
A chezmoi-activated dotfiles repository containing all settings related to any number of activities for me: Xevion.
This repository is not intended for others, but is kept public in the spirit of Open Source, as well as a test of my ability to build an encrypted config in the open.
Note
If you're not used to Chezmoi, it's a dotfile manager for multiple machines, with special abilities like templating, encryption, secret management, scripting, and more.
Warning
While Chezmoi is a powerful tool with mass configurability, it is not a fully featured declarative configuration manager. This warning is more for myself than others: if you want a fully declarative OS, go install NixOS dumbass.
Links
Documentation, references, etc.
Important Commands
Commands that are of chief importance for managing the repository, scripts, etc.
Installation/Bootstrap
# Install only
sh -c "$(curl -fsLS get.chezmoi.io)" -- init Xevion -b $HOME/.local/bin
# Bootstrap immediately (apply configurations, potentially overwriting existing files)
sh -c "$(curl -fsLS get.chezmoi.io)" -- init Xevion -b $HOME/.local/bin --apply
Basic
# Change to the dotfiles 'source' directory
chezmoi cd
# With a specific directory
chezmoi cd ~/.ssh/
Status
# Print all unmanaged files in the home directory (tree style, absolute path)
chezmoi unmanaged ~/ -t -p absolute
- Not yet developed
- List all changed config files (source vs )
- Show diffing, search via
fzfor something. - Show diffing, fuzzy matching
Intended Goals
- Lock rbw automatically
- 8 hour session by default
- Lock when computer sleeps, idle, screen saver
- Encrypted configurations for private details
- Bootstrapping for any Ubuntu-based system
- WSL-support
- Windows integration?
- Device-specific configuration
- WSL-support
- Automatic package/script install/setup
- Neovim
- VS Code
- Terminal startup for when configs changed, out of date, etc.
- Ideally, this would run on a timer and only fetch the latest status upon terminal startup, keeping startup times low.
- GitHub Language Attributes Script
- Automatically update the language attributes for GitHub repositories
- Prehook for commits, updates .gitattributes
- Reference