I’ve always been addicted to staring at a screen all day, writing — whether it’s code or a story. But this passion comes with a cost, at least for me. I struggle with eye strain and painful migraines, and it genuinely hurts to use these devices, no matter how many “protective layers” I add. By that, I mean things like enabling dark mode, blocking blue light from screens, and wearing anti-reflective glasses. They help, sure — but not enough. A fraction of the discomfort always remains.
And it gets even worse WHEN WORKING IN THE TERMINAL.
All that plain white output gets me dizzy. It forces me to take frequent breaks throughout the day. I just can’t stand looking at walls of unstyled, uncolored text. Ironically, it ends up being distracting.
Of course, I’ve tried to fix this. I added an Oh My Zsh syntax-highlighting plugin, switched to most as a pager for man pages, and installed tools like bat, eza, and grc.
And yes — it helped.
My terminal looks better now, and spending time in it has become easier.
But still… some commands remain stubbornly plain.
Maybe this sounds like overreacting — and maybe you’re right — but I just want a fully colored terminal experience. You can’t blame me for that, right?
That’s why I built this function, colored-help, which automatically colorizes help output to improve readability via bat. At first, I implemented it with a Zsh preexec hook, but I ran into strange issues: commands wouldn’t exit cleanly with q or Ctrl+C, and — help outputs would linger on the screen. So, I turned to my beloved ChatGPT, which introduced me to ZLE widgets — and that changed everything.
Terms explained
bat — A modern replacement for cat with syntax highlighting, Git integration, and prettier output formatting.
eza — A modern alternative to ls with colors, icons, tree views, and improved file metadata display.
most — A terminal pager similar to less, but with syntax highlighting and support for multiple windows.
grc — A tool that adds color and formatting to the output of many common command-line programs.
ZLE (Zsh Line Editor) — The interactive command-line editor built into Zsh. It allows you to create custom widgets, keybindings, and shell behaviors.
preexec hook — A Zsh hook function that runs automatically right before a command executes.
Why am I sharing this?
Because I’d really appreciate your feedback. What do you think of my approach? Is there a better way to implement this? I’m also thinking of extending it. Are there other tools or “10x hacks” I might be missing?
Please don’t hesitate to share your thoughts — I’d genuinely love to hear them.


Top comments (1)
I'm going to check out those programs. Never heard of them before - except for most. I set my pager to most as soon as I install a new system. Been using it for years. The horizontal scroll is a great feature I haven't seen elsewhere.
I use bash and my regular .bashrc adds color to a bunch of GNU tools by default. Color really does make reading things easier.
I use kate for my normal text editor and it has custom color schemas and language syntax highlighting.
I mostly work in a GUI desktop environment and frequently add yad dialogs to my bash scripts so things literally pop out at me and it makes some of the scripts work great when called from the GUI directly where there's no stdin or stdout by default.
FYI: It's probably a dated reference, but in the USA, "colored help" used to refer to black or brown people hired for menial tasks and the term wasn't appreciated. I'm sure you had nothing of the sort in mind when choosing that name.