Learning Log — Terminal & Plugin Setup Journey
8/24/2025
Summary of Terminal & Plugin Setup Journey
1. Powerlevel10k Installation & Setup
- Installed Powerlevel10k (
brew install powerlevel10k) and added the source line to.zshrc. - Learned how it integrates as the theme for Zsh.
- Ran the
p10k configurewizard (choosing separators, heads, height, icons, instant prompt mode). - Confirmed prompt was customised and working.
2. fzf Installation & Configuration
- Installed
fzfwith Homebrew, enabled fuzzy auto-completion and key bindings. - Added recommended config to
~/.zshrc:FZF_DEFAULT_COMMANDwith ripgrep for fast search.FZF_DEFAULT_OPTSwith layout, preview, border.
- Faced error
Command failed: rg --files ...→ realisedripgrep(rg) must be installed. - Lesson: plugin configs often assume extra tools; always check dependencies.
3. zsh-autosuggestions
- Installed via Homebrew (
brew install zsh-autosuggestions). - Mistakenly added it to
plugins=(...)at first, which failed. - Learned difference:
- OMZ plugin method vs manual source method.
- Settled on Homebrew + manual sourcing in
.zshrc, plus custom keybindings and subtle grey highlight. - Verified it works by typing
git sta→ suggestions appeared.
4. zsh-z (Directory Jumper)
- Installed
zsh-zfor fast directory jumping with frecency. - Tuned settings (
ZSHZ_CASE=smart,ZSHZ_TILDE=1,ZSHZ_TRAILING_SLASH=1,ZSHZ_DATA=~/.local/share/zsh-z/z). - Added to
plugins=(git zsh-z). - Initially empty DB (
z -l), but understood it builds history after navigating withcd. - Key takeaway:
zlearns over time, and becomes more powerful the more I use it.
5. Key Challenges & Fixes
zsh-autosuggestionsnot found → solved with manual sourcing.fzfpreview failed → fixed by installingripgrep.zdidn’t work at first → realised it needs history to build up.- Verified all plugins were properly installed and loaded.
6. Final Result
Now my terminal feels fast, modern, and efficient:
- Powerlevel10k → polished, informative prompt.
- fzf → fuzzy search across files and history.
- zsh-autosuggestions → smart inline suggestions.
- zsh-z → instant jumps between frequently used dirs.
My .zshrc is clean, with logical grouping:
- Config exports at the top (fzf, autosuggestions, zsh-z).
plugins=(git zsh-z).source $ZSH/oh-my-zsh.sh.- Manual
sourcefor autosuggestions. - Powerlevel10k at the bottom.
📚 Lessons Learned
- Don’t just copy-paste configs; understand what each plugin depends on.
- Small misplacements in
.zshrccan break things. - Zsh customisation is iterative — errors are signals, not dead ends.
- Each plugin feels minor alone, but combined they create a smooth workflow.
👉 Overall: I started with a plain terminal, and now I’ve built a personal productivity engine.