In this guide, we'll be showing you how to spruce up the appearance of the Windows 11 Terminal. As a powerful operating system, Windows 11 offers many features, but the terminal may not always look as visually appealing. Specifically, the terminal may have a plain or outdated appearance. To improve this, we'll be utilizing a tool called oh-my-posh to customize the terminal's appearance and make it more visually appealing. By the end, your terminal will have a cool and pretty look that will surely impress your friends and colleagues.
Getting Started
Before delving into the customizing process, please ensure that you have downloaded the Windows Terminal from the Microsoft Store as well as PowerShell 7.x as it is more powerful and offers more features compared to PowerShell 3.x from here.
By default, your PowerShell Terminal may appear plain and generic. However, this will change as we progress through the customization process. The final result will be mesmerizing. To begin, we will need to alter the default terminal profile and application
To change the default terminal profile and application, you can access the settings by opening the Terminal Application, right-clicking on the terminal window, and selecting "Settings."
Now change the default profile to new PowerShell 7 that you have download from Microsoft Store and Set Default terminal as Windows Terminal as shown in image below.
Changing The Visual Appearance
Now moving onto the first step of customizing, which is crucial in giving the terminal a neat and polished appearance.
In Settings Menu, Goto "Defaults" in side menu and then click on "Appearance" .
Now set:
Leave everything else as it is and Save. You can make a few changes as per your preference like setting a background image or changing color schemes.
Now set:
- Color Scheme : "One Half Dark"
- Font Face : Nerd Fonts (Download Link) ( You can download any Nerd Font Face, I prefer FiraCode. Install it by Extracting the zip file and Select all fonts and then right-click and install. )
- Font Size : 10
- Background opacity : 85%
- Acrylic Material : On
Leave everything else as it is and Save. You can make a few changes as per your preference like setting a background image or changing color schemes.
After the following changes you terminal will look like this.
You should already notice an improvement in the appearance of the terminal compared to its original state. The best part is yet to come.
Tip : visit Windows Terminal Themes for different themes and visit the help section to get to know on how to apply new custom color schemes to your terminal.
Oh-My-Posh
Oh My Posh is a theme engine that allows you to enhance the appearance of your prompt string. To use it, your Terminal must have a Nerd Font installed.
Without Nerdfonts your terminal may look like this
Tip : visit Windows Terminal Themes for different themes and visit the help section to get to know on how to apply new custom color schemes to your terminal.
Oh-My-Posh
Oh My Posh is a theme engine that allows you to enhance the appearance of your prompt string. To use it, your Terminal must have a Nerd Font installed.
Without Nerdfonts your terminal may look like this
If you haven't already
Download Any Nerd Font Face from NerdFonts.com
Once you have downloaded the font, Install it and restart your Windows Terminal by closing and re-opening it.
Next, go to the settings of the Windows Powershell profile, under the "Appearance" tab, select the "Font face" option and choose the newly installed Nerd Font. This will change the font face of your Terminal and make it more visually pleasing.
To install Oh My Posh, you need to have "App Installer" from the Microsoft Store installed, it will install winget which is Windows Package Manager CLI.
It is important to note that Oh My Posh requires Windows 10 1809 (build 17763) or later. If you are on an earlier version, check out Oh My Posh's documentation for alternative installation options.
Once you have winget installed, restart your Windows Terminal and run winget to check if the package manager is correctly installed. Then In your Windows Terminal, run the command:
winget install JanDeDobbeleer.OhMyPosh
After the installation, Restart your Windows Terminal. Next, try running oh-my-posh in Powershell to see if it’s correctly installed.
To set the default theme, Run the following command to open your Powershell profile:
notepad $PROFILE
If notepad shows a prompt saying that “Microsoft.Powershell_profile.ps1” is not found and asks if you would like to create the file, press “Yes” to create the file.
Inside the file, paste in the following code and save the file. This will load Oh My Posh on start-up with the default theme.
oh-my-posh --init --shell pwsh --config ~/AppData/Local/Programs/oh-my-posh/themes/jandedobbeleer.omp.json | Invoke-Expression
Finally, Restart your Terminal. Your Powershell should now load Oh My Posh automatically on startup.
Download Any Nerd Font Face from NerdFonts.com
Once you have downloaded the font, Install it and restart your Windows Terminal by closing and re-opening it.
Next, go to the settings of the Windows Powershell profile, under the "Appearance" tab, select the "Font face" option and choose the newly installed Nerd Font. This will change the font face of your Terminal and make it more visually pleasing.
To install Oh My Posh, you need to have "App Installer" from the Microsoft Store installed, it will install winget which is Windows Package Manager CLI.
It is important to note that Oh My Posh requires Windows 10 1809 (build 17763) or later. If you are on an earlier version, check out Oh My Posh's documentation for alternative installation options.
Once you have winget installed, restart your Windows Terminal and run winget to check if the package manager is correctly installed. Then In your Windows Terminal, run the command:
winget install JanDeDobbeleer.OhMyPosh
After the installation, Restart your Windows Terminal. Next, try running oh-my-posh in Powershell to see if it’s correctly installed.
To set the default theme, Run the following command to open your Powershell profile:
notepad $PROFILE
If notepad shows a prompt saying that “Microsoft.Powershell_profile.ps1” is not found and asks if you would like to create the file, press “Yes” to create the file.
Inside the file, paste in the following code and save the file. This will load Oh My Posh on start-up with the default theme.
oh-my-posh --init --shell pwsh --config ~/AppData/Local/Programs/oh-my-posh/themes/jandedobbeleer.omp.json | Invoke-Expression
Finally, Restart your Terminal. Your Powershell should now load Oh My Posh automatically on startup.
Changing Theme
Once you have Oh My Posh installed, you can easily change the theme to one of the over 70 preinstalled themes that come with it. All of the themes are located in the folder ~\AppData\Local\Programs\oh-my-posh\themes
if you used winget to install Oh My Posh, alternatively you can check the documentation to find out where the themes are located based on the installation method you used.
For example, i used powerlevel10k_rainbow theme, so to do so open your Windows Terminal and run
notepad $PROFILE in Powershell, just like we did previously.
In the opened file, change the path after --config to use powerlevel10k_rainbow.omp.json.
Tip: Enter Command Get-PoshThemes in your terminal. You will get a list of all preinstalled posh themes and how does they look. Hover your mouse over the desired name and you will get the name and now edit the terminal profile and set the name to your desired theme as mentioned above.
Additionally, you can create your own custom themes by writing your own JSON files. Some helpful resources include the "Configuration → General" page of the Oh My Posh documentation, which can teach you how to create custom themes, as well as the Nerd Font's cheatsheet which lists different glyphs that you can use.
if you used winget to install Oh My Posh, alternatively you can check the documentation to find out where the themes are located based on the installation method you used.
For example, i used powerlevel10k_rainbow theme, so to do so open your Windows Terminal and run
notepad $PROFILE in Powershell, just like we did previously.
In the opened file, change the path after --config to use powerlevel10k_rainbow.omp.json.
Tip: Enter Command Get-PoshThemes in your terminal. You will get a list of all preinstalled posh themes and how does they look. Hover your mouse over the desired name and you will get the name and now edit the terminal profile and set the name to your desired theme as mentioned above.
Additionally, you can create your own custom themes by writing your own JSON files. Some helpful resources include the "Configuration → General" page of the Oh My Posh documentation, which can teach you how to create custom themes, as well as the Nerd Font's cheatsheet which lists different glyphs that you can use.
Final Touches
WinFetch
Winfetch is a command-line tool that displays system information. To install it, you can use the PSGallery method by running the command "Install-Script -Name pwshfetch-test-1" in an administrator Powershell.
Then, add the line "Set-Alias winfetch pwshfetch-test-1" to your Powershell profile, and restart your Terminal.
Enter command winfetch to check if it is installed correctly.
WinFetch
Winfetch is a command-line tool that displays system information. To install it, you can use the PSGallery method by running the command "Install-Script -Name pwshfetch-test-1" in an administrator Powershell.
Then, add the line "Set-Alias winfetch pwshfetch-test-1" to your Powershell profile, and restart your Terminal.
Enter command winfetch to check if it is installed correctly.
Some customizations for winfetch
1. Custom Image
One of the features of Winfetch is the ability to customize the image that is displayed on the left side of the terminal. This image can be changed to any low resolution image of your choice, such as a custom profile picture or logo.
To change the image, first save the desired image to your computer and place it in a location that is easy to access. In this example, the image is saved at the root folder with the name logo.png.
Next, open the file ~.config\winfetch\config.ps1 in Notepad. In this file, locate the first two variables, $image and $noimage, and change them to the following:
$image = "C:\Users\User\logo.png" # ABSOLUTE path
$noimage = $false
It is important to use the absolute path of the image in this case.
Now you can make certain changes as per your preference like by default, winfetch displays information only about the C drive.
However, you can configure it to show information about all available drives by opening the file ~.config\winfetch\config.ps1
and uncommenting the line "$ShowDisks = @("*")". Additionally, you can display the memory (RAM) and disk usage in bar charts by editing the variables $memorystyle and $diskstyle to 'bartext' in the same file. This will change the display format from text-only to text and a bar chart. I have also set a custom width for my image and using ascii character to display logo option in the config.
Save the file, and then run Winfetch in PowerShell to display the custom image in the terminal.
Final Result
1. Custom Image
One of the features of Winfetch is the ability to customize the image that is displayed on the left side of the terminal. This image can be changed to any low resolution image of your choice, such as a custom profile picture or logo.
To change the image, first save the desired image to your computer and place it in a location that is easy to access. In this example, the image is saved at the root folder with the name logo.png.
Next, open the file ~.config\winfetch\config.ps1 in Notepad. In this file, locate the first two variables, $image and $noimage, and change them to the following:
$image = "C:\Users\User\logo.png" # ABSOLUTE path
$noimage = $false
It is important to use the absolute path of the image in this case.
Now you can make certain changes as per your preference like by default, winfetch displays information only about the C drive.
However, you can configure it to show information about all available drives by opening the file ~.config\winfetch\config.ps1
and uncommenting the line "$ShowDisks = @("*")". Additionally, you can display the memory (RAM) and disk usage in bar charts by editing the variables $memorystyle and $diskstyle to 'bartext' in the same file. This will change the display format from text-only to text and a bar chart. I have also set a custom width for my image and using ascii character to display logo option in the config.
Save the file, and then run Winfetch in PowerShell to display the custom image in the terminal.
Final Result
In summary, we have provided instructions on how to improve the visual appeal of your Terminal using Oh My Posh and winfetch. Now you can showcase your personalized Terminal to those around you. We hope this guide was of assistance to you. Additionally, if you are experiencing issues with Windows 10 updates on unsupported devices, we have included links for additional resources on how to install Windows 11 on unsupported PCs and how to unenroll from the Windows Insider program. Don't forget to give this post a like and share if you found it useful. Thank you for reading.
Author
-Anurag