Mar 24, 2026
4 min read
How I ZSH
(#1 of 6)
I rebuilt my Zsh configuration into a clean, modular system after struggling with my old messy, brittle setup that slowed down my workflow. By organising configs, replacing heavy weigth frameworks with lightweight functions, and treating my shell like a structured project, I made it easier to maintain, extend, and debug.
Mar 26, 2026
3 min read
How I ZSH
(#2 of 6)
The ZDOTDIR environment variable in Zsh defines the configuration location, used as a bootstrap to redirect the rest of the shell startup process and align it with the XDG standards
Mar 29, 2026
4 min read
How I ZSH
(#3 of 6)
As I continue refining my Zsh environment, I discovered that understanding the startup lifecycle is far more valuable than blindly tweaking configuration files. This article explores how Zsh loads its configuration, the purpose of each startup file, and the design principles that now guide every change I make to my shell.
Apr 1, 2026
5 min read
How I ZSH
(#4 of 6)
As I continued refining my Zsh environment, I realised that performance wasn’t my biggest challenge, organisation was. This article follows my journey to a modular, XDG-compliant configuration, where separating responsibilities and building a clear architecture laid the foundation for a faster, more maintainable shell.
May 24, 2026
7 min read
How I ZSH
(#5 of 6)
This article describes how I navigate and edit in the Zsh command line using my custom Vi-mode configuration. This setup transforms the Zsh prompt into a mini-Vim editor, complete with mode-specific cursors and custom productivity macros.
Jul 1, 2026
7 min read
How I ZSH
(#6 of 6)
Continuing my journey to build a clean and efficient Zsh environment, I shifted from organising to improving. This article is about how I applied progamming principles and native Zsh features for a simpler, more maintainable configuration by changing the way I think about writing shell scripts.