Personalize Command Line: Shell Customization for Enhanced Experience

Learn how i personalized and enhanced my command line experience through shell customization for both of my machines, Windows and MacOS.

SHELLCUSTOMIZATION

As a developer, I use shell every day on my both machines. Earlier, I used a Catppuccin theme for my shell. After complete redesigning of my portfolio page, I also decided to redesign my terminal experience after I had bought a MacBook for development.

Terminal Apps

For Windows terminal app I use Windows Terminal, that's a really amazing app, I love tabs feature and design overhaul. Shell for Windows — Powershell, that's a classic.

My Windows Prompt

My Windows Terminal Setup

For MacOS I had been using iTerm for 2 months, before I heard about Warp. Warp is really the future for terminals, it has a lot of build-in features, AI for quick answers and it's written in Rust (yeah, White House approved). My favorite one is a GIT manipulation.

Prompt Engine

Prompt engine for my both machines is Oh My Posh, thanks for Devaslife video (worth watching, if you want to understand how to install). It's really amazing, it has a lot of build-in themes, a lot of segments and its cross-platform is unlike Oh My Zsh, that means I can easily use my custom theme on my both machines without modifying anything. Easy to install for both platforms, it makes the best solution for cross-platform shell experience, especially if you also use Windows for the development.

My Prompt Engine Shell Theme

My Prompt Engine Shell Theme

That defines a beautiful colored theme, the is used as prompt initial enter point, like in Vercel CEO shell (nice idea tho).

Font

For shell font I used a Cascadia Code, but after Vercel had released Geist Mono font, I changed it to this one, and of course, with custom symbols and icons, thanks for Nerd Fonts. Geist Mono looks amazing with medium size font weight, it's easy to read and looks nice to me.

Shell Font Difference

Difference between Caskaydia Cove and Geist Mono

Configs

To make my life easier, I use a lot of aliases and functions.

For example, pnpm is quite hard to write, so pn is a great choice to simplify it.

Or function d, often used in web development and pnpm, cause writing pnpm run dev every time when I need to start/restart (yeah, I restart dev server like 200 times per day) development server is not so time-efficient, that's why I use d function for this.

As Windows in not UNIX-based system, I wrote functions similar to UNIX one. Great example is ChrisTitusTech pwsh profile.

Conclusion

I achieved all the goals, now I have an elegant theme that perfectly fits my new portfolio website, also I got cross-platform shell experience for my working machines.

© 2019 — 2024 Jeffrey Turns. All rights reserved.