DEV Community

Timothy McGrath
Timothy McGrath

Posted on

That's Not A Moon, It's My Terminal!

First, let's take a look at my beautiful new terminal.

alt text

Sweet, right?

Now, if you're still here and want to learn a little about the new Windows Terminal and how to setup your own background image, keep going...

What is Windows Terminal?

The Windows Terminal is the brand-new, awesome Terminal built by Microsoft. It is open-source, it can run all your Shells (PowerShell, bash, etc.) in multiple tabs. I love it!

If you don't already have the Windows Terminal, install it now. It's free from the Microsoft Store app (that Store you probably never open...)

alt text

The Terminal is still in Beta (at the time of this post) but it is very stable and I've been using it as a replacement for my usual Terminal.

Configure Windows Terminal

Launch the Terminal, click the Arrow at the end of the tabs, and choose Settings. This will open a .JSON file with all the Terminal settings in it. The format is pretty simple to work with.

The settings should look something like this:

// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

    "profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}

The profiles are what we are interested in today. Each profile represents a specific Shell to connect to. I have three that were discovered on installation, Powershell, CMD, and Azure Cloud Shell. The default Shell is set with the defaultProfile value above the Profiles.

NOTE: The Guids are random and have no inherent meaning. They just need to be unique and one of them needs to be used by defaultProfile.

To change the Terminal's background you can set the following values for each Profile.

background changes the color of the Terminal's background. Use an RGB value in the #111111 format.

backgroundImage changes the image that is displayed in the background of the Terminal.

backgroundImageOpacity changes the transparency on the image, allowing some of the background color to come through. This is useful to make the image more subtle.

backgroundImageStretchMode controls how the image is displayed. Use "uniformToFill" to have the image fill the Terminal.

For my Death Star Terminal, I found a sweet picture of a Death Star (technically the Death Star 2...). I stored that image in my OneDrive, so that I could easily reference it from Terminals on all my PCs. Use the %OneDriveConsumer% environment variable to reference your OneDrive folder path.

I used a dark gray background color (#303030) with a backgroundImageOpacity of 50% (0.5) to fade the image out some.

Here are my final settings:

"background": "#303030",
"backgroundImage": "%OneDriveConsumer%/Terminal/deathstar.jpg",
"backgroundImageOpacity": 0.5,
"backgroundImageStretchMode": "uniformToFill",
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
"hidden": false

The Terminal will auto-update immediately without reopening, which is awesome. It now looks like this:

alt text

What About The Sweet Fonts?

Right. I agree, my fonts and Terminal UI look super sweet. I can't take credit for that, though, I used posh-git, oh-my-gosh, and a font named Delugia Nerd Font. To learn how to do this, check out Scott Hanselman's excellent post.

After applying Scott Hanselman's instructions I end up with this beauty:

alt text

Wrapup

So, it's that easy to create your own beautiful Windows Terminal. Try it out, if you use the Terminal all day, you might as well make it feel cozy.

Let me know what you think of my Terminal and show me what your Terminal looks like!

Top comments (3)

Collapse
 
moopet profile image
Ben Sinclair

I use a subtle pattern on black for my terminal, and have for years now. I think it gives some kind of grounding for the screen rather than using a black window hanging in space. It's easy to go too far though, and to use something too prominent.

Collapse
 
pavelloz profile image
Paweł Kowalski

Wow, windows is catching up to linux from 1999 :) good for windows users ;)

Collapse
 
daviddesloovere profile image
Deef