07/2025
- Identify candidates for
misemanagement: DONE
- Review
executable_install-my-packages.tmplto find tools installed viabrewandapt. - Review
home/private_dot_config/git/config.tmplto find tools used in git aliases and configurations. - Cross-reference the findings with
available-mise-tools.txt. - Create a list of tools to migrate to
miseintools-to-move.txt.
- Refactor git configuration: DONE
- Replace
icdiffwithdifftasticinhome/private_dot_config/git/config.tmpl. - Add
difftastictotools-to-move.txt. - Update
home/private_dot_config/git/config.tmplto use SSH keys instead of GPG for signing. - Undo migration to SSH, it sucks, continue using GPG for signing.
- Future/pending actions: DONE
- Investigate
git-whoand consider managing it withchezmoiexternals. - Move the remaining tools from
tools-to-move.txtto be installed viamise.
- End-to-End Installation Test: DONE
- Create a test script (
test-installation.sh). - The script will spin up a fresh Ubuntu Docker container to run the test.
- It will execute the main
install.shscript inside the container. - The Docker host will be configurable via a
DOCKER_HOSTenvironment variable. - The test will verify that key tools are installed and available on the
PATH. - The test will run
chezmoi verifyto ensure the dotfiles are correctly applied.
- Support all shells DONE
-
Switch from
~/.zshrc.dto XDG standard~/.config/zsh. -
Prepare new shell init dotfiles:
~/.zshenv,~/.config/zsh/.zprofile,~/.config/zsh/.zshrc -
Define modular init scripts for above new zsh dotfiles:
env.zsh.tmpl,login.zsh,options.zsh.tmpl,plugins.zsh.tmpl,prompt.zsh.tmpl -
Heavily document init lifecycle touchpoints and purpose of the above dotfiles / modular init scripts.
-
Audit the monolithic
~/.config/zsh/init.zsh, and split it into the above boundaries.-
The audit of
init.zshhas defined the following boundaries for splitting the file:-
env.zsh.tmpl: Responsible for sourcing environment-specific variables and configurations. The audit identified that~/.aliasesshould be sourced here too. -
login.zsh.tmpl: To handle logic that should only run during a login shell, such as thetmuxsession resumption. -
options.zsh.tmpl: This file will contain all shellsetoptconfigurations. The audit has identified that history settings and thePROFILE_STARTUPdebugging options belong here. -
plugins.zsh.tmpl: Will be responsible for managing allzplugplugins and their configurations. This includes initializingzplug, declaring all plugins, loading them, and setting upcompinitfor completions. -
prompt.zsh.tmpl: This file's responsibility is to configure the shell's interactive appearance. The audit has identified that terminal reset, clearing the screen, and the welcome messages belong here.
-
-
-
Split the
~/.config/zsh/init.zsh. -
Test to ensure all init modules are loaded correctly, for all shells; login/non-login, interactive/non-interactive
- Ensure install.sh works on fresh systems TODO
- [] The curl install.sh | bash method should work e.g. fix BASH_SOURCE[0] error
- [] Fix the readme (contains a typo for the curl example e.g. "^" instead of "_")
-
Create bin stubs for MCP stdio tools TODO
-
Prompt Migration: Pure to Starship TODO
- [] Replace the
pureprompt withstarship. - [] Install
starshipviamise. - [] Configure
starshipto match the existingpureprompt's look and feel. - [] Remove
purefrom.chezmoiexternals/zsh.toml.tmpl.
- Terminal History Improvement: Atuin TODO
- [] Replace the default shell history with
atuin. - [] Install
atuinviamise. - [] Configure the shell to integrate with
atuin. - [] Ensure history is synced across sessions.