Role-based Shells

Avoid white boarders by exporting a real 32-bit PNG with transparency.



You Gotta Keep 'em Separated

Terminal fatigue is real. PowerShell, Bash, Cisco IOS, RouterOS.  After a while they all blend together. Windows Terminal puts them all under one roof.  One clone after another gets old fast. I wanted each environment to reflect its own role.

Role-based shells to the rescue!  Windows Terminal owns the look. PowerShell and Bash each own their own environment. SSH launches directly into remote device. The secret sauce is the division of labor.

PowerShell


Show something useful instead of a blank prompt. Winfetch does that:

Install-Module -Name Winfetch -Scope CurrentUser

Then the profile is two lines. Find it with $PROFILE, create the file if it doesn’t exist, and add this:

Clear-Host
winfetch

New tab, screen clears, system info appears. Windows Terminal never has to know about it. Just remember that Windows PowerShell 5.1 and PowerShell 7 keep separate profiles, so run $PROFILE from the one you actually use.

Ubuntu WSL2


Same idea for Linux. Install the tools:

sudo apt update
sudo apt install neofetch figlet

Then at the bottom of ~/.bashrc:

clear
figlet "Ubuntu WSL2"
neofetch

Source it or open a fresh tab. You get the big banner, the Ubuntu art, and the stats.  🤯

Other nodes

The last piece was including a small transparent logo in the bottom-right of each profile.  I can tell at a glance which system I’m on. Each system gets its own PNG. Store them where Terminal can see them (e.g., RoamingState folder) and point at them like this:

"backgroundImage": "ms-appdata:///Roaming/ubuntu.png",
"backgroundImageAlignment": "bottomRight",
"backgroundImageStretchMode": "none",
"backgroundImageOpacity": 0.20

The shared defaults handle the common stuff: Cascadia Code, acrylic at 85% opacity, and a filled-box gold cursor. Individual profiles override color and logo. Cisco ended up dark royal green (#1B4D3E) with the gold cursor. MikroTik is deep navy with steel-blue text (#A0C4FF). Both stay readable and neither looks like a Christmas tree.

My Cisco and MikroTik profiles launch straight to SSH sessions. The remote device owns the CLI. Terminal only owns the window it appears in. Don’t bake credentials into settings.json.

Repeatable

I dedicate a folder for settings.json, the PowerShell profile, a copy of .bashrc, and the four images. If I break something or move to a new machine -no big deal.  I drop those files back in place, reinstall the two tools, and I’m done. The gold cursor was an experiment that stuck. Everything else was just making sure the right layer owned the right job.

That's It!

0 Comments:

Post a Comment

My Instagram