You Should Use Windows Terminal.

You Should Use Windows Terminal.

At Microsoft Build 2019 last May, Microsoft announced Windows Terminal; A tabbed-based terminal application that can be used to access Powershell, Command Prompt and WSL (Windows Subsystem for Linux).

Why should you use it? Because it is incredibly customisable. You can change text colour, add shortcuts, add backgrounds, use tabs and more; all customisable from a .json file.

Nice, Right?
Windows Terminal Ad by Microsoft

How do you do it?

  1. Download Windows Terminal; Either from the Microsoft Store or from the Github repository.
  2. Open the Application and press Control (CTRL) and Comma (,) keys at the same time (CTRL+,) to open settings.
  3. The settings file should open in a notepad window; If not, you should check windows settings (scroll to "Choose Default applications by file type") to find which application is defaulted to open .JSON files and change to a text editor.

You can then edit the json file to edit how the terminal looks and works using this guide by Microsoft.

Here's my .json file, I have broken the SSH function to prevent anyone connecting to my home server!

// This file was initially generated by Windows Terminal 1.3.2651.0
// It should still be usable in newer versions, but newer versions might have additional
// settings, help text, or changes that you will not see unless you clear this file
// and let us generate a new one for you.

// 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": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",

    // You can add more global application settings here.
    // To learn more about global settings, visit https://aka.ms/terminal-global-settings

    // If enabled, selections are automatically copied to your clipboard.
    "copyOnSelect": false,

    // If enabled, formatted data is also copied to your clipboard
    "copyFormatting": false,

    // A profile specifies a command to execute paired with information about how it should look and feel.
    // Each one of them will appear in the 'New Tab' dropdown,
    //   and can be invoked from the commandline with `wt.exe -p xxx`
    // To learn more about profiles, visit https://aka.ms/terminal-profile-settings
    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
        },
        "list":
        [
	    {
                // CMD
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "Command Prompt",
                "commandline": "cmd.exe",
                "hidden": false
            },
	    {
                // CMD CLASSIC
                "guid": "{fc760f90-d3d3-4b03-bdff-e543a15ce1ce}",
                "name": "Command Prompt Classic",
                "commandline": "cmd.exe",
                "closeOnExit" : true,
                "colorScheme" : "Retro",
                "cursorColor" : "#FFFFFF",
                "cursorShape": "filledBox",
                "fontSize" : 16,
                "padding" : "5, 5, 5, 5",
                "tabTitle" : "Command Prompt",
                "fontFace": "PxPlus IBM VGA8",
                "experimental.retroTerminalEffect": true,
		"icon":"https://win98icons.alexmeub.com/icons/png/console_prompt-0.png"
            },
            {
                // POWERSHELL
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
		"colorScheme": "Campbell Powershell",
                "hidden": false
            },
	    {
                // PYTHON
                "guid": "{d0d661c9-7c78-46a8-a095-d26100fe8778}",
                "name": "Python",
                "commandline": "python",
		"colorScheme": "Campbell",
		"icon":"https://cdn3.iconfinder.com/data/icons/logos-and-brands-adobe/512/267_Python-512.png",
                "hidden": false
            },
	    {
                // SSH TO SERVER
                "guid": "{d557d380-4ae6-45a8-be9e-70a7239617a4}",
                "name": "SSH to Server",
                "commandline": "ssh user@example.com",
		"icon" : "https://research.reading.ac.uk/act/wp-content/uploads/sites/2/Unorganized/ssh.png",
                "hidden": false,
		"backgroundImage": "https://149366088.v2.pressablecdn.com/wp-content/uploads/2019/09/19.10-ermine-wallpaper.jpg",
		"backgroundImageStretchMode" : "fill",
		"backgroundImageOpacity": 0.4,
                "colorScheme" : "Raspberry",
                "cursorColor" : "#FFFFFF",
                "fontFace" : "Cascadia Code",
                "padding" : "5, 5, 5, 5",
                "suppressApplicationTitle": true,
                "tabTitle": "Ubuntu"
            },

            {
		// Azure Cloud Shell
               	"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
        	"hidden": true,
             	"name": "Azure Cloud Shell",
              	"source": "Windows.Terminal.Azure"
            }
        ]
    },

    // Add custom color schemes to this array.
    // To learn more about color schemes, visit https://aka.ms/terminal-color-schemes
    "schemes": [
		{
                	"name": "Retro",
                	"background": "#000000",
                	"black": "#00ff00",
                	"blue": "#00ff00",
                	"brightBlack": "#00ff00",
                	"brightBlue": "#00ff00",
                	"brightCyan": "#00ff00",
                	"brightGreen": "#00ff00",
               		"brightPurple": "#00ff00",
                	"brightRed": "#00ff00",
                	"brightWhite": "#00ff00",
                	"brightYellow": "#00ff00",
                	"cyan": "#00ff00",
                	"foreground": "#00ff00",
                	"green": "#00ff00",
                	"purple": "#00ff00",
                	"red": "#00ff00",
                	"white": "#00ff00",
                	"yellow": "#00ff00"
            	},
		{
                	"name" : "Raspberry",
                	"background" : "#3C0315",
                	"black" : "#282A2E",
                	"blue" : "#0170C5",
                	"brightBlack" : "#676E7A",
                	"brightBlue" : "#80c8ff",
                	"brightCyan" : "#8ABEB7",
                	"brightGreen" : "#B5D680",
                	"brightPurple" : "#AC79BB",
                	"brightRed" : "#BD6D85",
                	"brightWhite" : "#FFFFFD",
                	"brightYellow" : "#FFFD76",
                	"cyan" : "#3F8D83",
                	"foreground" : "#FFFFFD",
                	"green" : "#76AB23",
                	"purple" : "#7D498F",
                	"red" : "#BD0940",
                	"white" : "#FFFFFD",
                	"yellow" : "#E0DE48"
           	}

		],

    // Add custom actions and keybindings to this array.
    // To unbind a key combination from your defaults.json, set the command to "unbound".
    // To learn more about actions and keybindings, visit https://aka.ms/terminal-keybindings
    "actions":
    [
        // Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json.
        // These two lines additionally bind them to Ctrl+C and Ctrl+V.
        // To learn more about selection, visit https://aka.ms/terminal-selection
        { "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" },
        { "command": "paste", "keys": "ctrl+v" },

        // Press Ctrl+Shift+F to open the search box
        { "command": "find", "keys": "ctrl+shift+f" },

        // Press Alt+Shift+D to open a new pane.
        // - "split": "auto" makes this pane open in the direction that provides the most surface area.
        // - "splitMode": "duplicate" makes the new pane use the focused pane's profile.
        // To learn more about panes, visit https://aka.ms/terminal-panes
        { "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" }
    ]
}