Making Windows Terminal Less Painful
I spend more time in the terminal than I'd like to admit. SSH sessions, git commands, Python scripts, file management — it all happens in a terminal window. And for years, the Windows terminal experience was genuinely bad. Command Prompt was primitive, PowerShell was a different kind of primitive, and third-party options ranged from "slightly better" to "why does this exist."
That changed a few years ago, and today the Windows command line story is actually good. Here's how I've set mine up, and what I'd recommend.
Windows Terminal: The Foundation
If you're still using Command Prompt as your main terminal, the first thing you should do is install Windows Terminal from the Microsoft Store. It's free, it's actively developed by Microsoft, and it's dramatically better than anything Windows shipped with before.
Windows Terminal supports multiple tabs, split panes, GPU-accelerated text rendering, and extensive customization. It can host Command Prompt, PowerShell, WSL (Windows Subsystem for Linux), Azure Cloud Shell, and any other command-line shell you have installed. Everything in one window.
The settings are configured through a JSON file, which sounds intimidating but is actually quite readable. The GUI settings editor has improved significantly, and for most customizations, you don't need to edit JSON directly. The new "Settings" tab in Windows 11 opens a clean GUI that covers most common customizations.
I set my default profile to PowerShell, with WSL as a secondary tab option. Terminal opens with a PowerShell tab, and I can click the dropdown to open WSL or CMD whenever I need them.
Oh My Posh: Making Your Prompt Actually Useful
PowerShell's default prompt shows you your current directory. That's it. Oh My Posh lets you add context: current git branch and status, Python virtual environment, kubectl context, execution time of the last command, and much more.
This sounds cosmetic, but it's surprisingly practical. I can immediately see if I'm in the right git branch before I commit. I can see if I have the right Python environment activated. I know at a glance if I'm in a production directory or a development one.
Installation is straightforward: install Oh My Posh via winget, choose a theme, and add a line to your PowerShell profile. There are dozens of themes available, from minimal to information-dense. I use a custom theme that shows the current directory, git branch/status, and nothing else. Clean but informative.
The one caveat: Oh My Posh requires a Nerd Font for the icons to display correctly. I use Cascadia Code (which Microsoft makes specifically for this purpose) with the Nerd Fonts patches applied. The setup takes about ten minutes and it's a one-time thing.
PowerShell 7: The Shell Worth Using
Windows ships with PowerShell 5.1, which is fine but dated. PowerShell 7 is the cross-platform, open-source successor, and it's significantly faster, has better error messages, and includes useful new features like the ternary operator and pipeline chain operators (&& and ||).
Install it via winget: winget install Microsoft.PowerShell. It installs alongside PowerShell 5.1, so nothing breaks. Set it as your default profile in Windows Terminal and you're good to go.
The pipeline chain operators alone are worth the upgrade. command1 && command2 runs command2 only if command1 succeeds; command1 || command2 runs command2 only if command1 fails. These make ad-hoc scripting from the command line much more natural.
Winget: Package Management That Finally Works
Installing software from the command line on Windows used to be a joke. Chocolatey and Scoop exist and work, but they're third-party solutions. Winget is Microsoft's official package manager, and it's built into Windows 10 and 11.
winget install Microsoft.PowerToys — that's the entire install process for PowerToys. No clicking "Next" through installer dialogs, no declining bundled toolbars, no wondering if you accidentally agreed to something. It just installs.
Winget's catalog isn't as comprehensive as Chocolatey's yet, but it covers most popular software and it's growing. I now install everything through winget when possible, and it's made setting up new machines dramatically faster — a full development environment setup that used to take an afternoon now takes about 20 minutes.
What I Tried and Didn't Keep
Cmder/ConEmu. These were popular third-party terminal emulators before Windows Terminal existed. They're still decent, but they don't offer enough advantage over Windows Terminal to justify using them. If you're on Cmder, switch to Windows Terminal.
Starship. A cross-platform prompt customizer similar to Oh My Posh. It's fast and works everywhere, but I found Oh My Posh's PowerShell integration more seamless. If you work across multiple shells and want a consistent prompt, Starship is the better choice. For PowerShell-only setups, Oh My Posh is more configurable.
Windows Subsystem for Linux (WSL). This is a category of its own rather than a simple enhancement, but I'd be remiss not to mention it. If you need Linux tools on Windows — development environments, Linux-specific utilities, or just a better shell — WSL 2 runs a real Linux kernel in a lightweight VM. It's not an emulator; it's actual Linux.
I keep WSL installed for occasions when I need Linux tools, but my main workflow is PowerShell. If you're a developer who targets Linux servers, WSL is essential.
The Setup in Summary
If you want a better terminal experience on Windows, here's the minimum effective setup:
- Install Windows Terminal from the Microsoft Store
- Install PowerShell 7 and set it as your default profile
- Install Oh My Posh and a Nerd Font for an informative prompt
- Install winget for command-line software installation
Total setup time: about 20 minutes. The improvement in daily command-line quality of life is enormous. Tabs alone — having multiple shell sessions in one window — are worth the switch from Command Prompt.
The terminal is one of those tools where a small investment in setup pays dividends every single day. If you use the command line regularly, these tools will make that experience faster, prettier, and less frustrating. And unlike most Windows customization, none of this involves editing the registry or disabling system services.
Customizing Your Windows Terminal Like a Pro
Beyond the basics, here are advanced customizations. Custom color schemes: popular themes like Dracula, One Nord, and Solarized give your terminal a distinctive, optimized look. You can install them through the Windows Terminal JSON settings. Background images and effects: Windows Terminal supports background images with adjustable opacity. A subtle background at five to ten percent opacity adds visual interest without making text hard to read. Custom key bindings: remap key combinations to your most frequent actions. I have bound Ctrl+Shift plus T to open a new tab in my most-used directory. Panes and split views: Windows Terminal supports split panes for running multiple shells side by side in the same window. Persistent profiles across machines: sync your settings through OneDrive or a Git repository so your terminal setup is portable across machines. These customizations transform the terminal from a basic command prompt into a personalized development environment.
Complete Setup
Windows Terminal as host with Oh My Posh for prompt styling. Terminal Icons for file visualization and PSReadLine for editing. Start with prompts then layer in other tools one at a time.
Daily Productivity
Create command aliases reducing typing and preventing typos in repeated operations. Set up SSH profiles for quick server connections. Ctrl-R searches through previous command history instantly.
Oh My Zsh Configuration Tips
After installing Oh My Zsh, customize your .zshrc for maximum productivity. Try the powerlevel10k theme for a modern, informative prompt. Essential plugins include git, docker, kubectl, npm, node, zsh-autosuggestions, and zsh-syntax-highlighting.
Windows Terminal Settings
In your settings.json, set opacity to 95 for subtle transparency, enable useAcrylic for a modern look, configure a proper color scheme like One Half Dark or Dracula, and set fontFace to Cascadia Code or Fira Code with ligatures enabled.
Productivity Workflows
Combine these terminal enhancements with VS Code integrated terminal for a seamless development experience.
Productivity Workflows
Combine terminal enhancements with VS Code integrated terminal for seamless development. Use Ctrl+` to toggle terminal, Ctrl+Shift+5 to split panes, and Ctrl+arrow keys to navigate between panels. These shortcuts dramatically reduce context switching between editor and terminal.
Oh My Zsh Plugins
After installing Oh My Zsh, add these essential plugins to your .zshrc: git (git aliases and status), docker (Docker Compose completions), kubectl (Kubernetes command completion), npm (npm completion), node (node version info), extract (extract any archive), z (frequent directory navigation based on history), and zsh-autosuggestions for auto-completion based on history patterns.