diff --git a/content/post/make-powershell-fancier-with-windows-terminal.md b/content/post/make-powershell-fancier-with-windows-terminal.md new file mode 100644 index 0000000..bcfcfca --- /dev/null +++ b/content/post/make-powershell-fancier-with-windows-terminal.md @@ -0,0 +1,153 @@ +--- +title: "Make Powershell Fancier With Windows Terminal" +date: 2020-03-22T11:33:38+05:30 +lastmod: 2022-03-11T11:33:38+05:30 +draft: false +keywords: [powershell, windows-terminal] +description: "" +tags: ["powershell", "windows terminal"] +categories: ["windows"] +author: "" + +# You can also close(false) or open(true) something for this content. +# P.S. comment can only be closed +comment: false +toc: true +autoCollapseToc: true +postMetaInFooter: true +hiddenFromHomePage: false +# You can also define another contentCopyright. e.g. contentCopyright: "This is another copyright." +contentCopyright: false +reward: false +mathjax: false +mathjaxEnableSingleDollar: false +mathjaxEnableAutoNumber: false + +# You unlisted posts you might want not want the header or footer to show +hideHeaderAndFooter: false + +# You can enable or disable out-of-date content warning for individual post. +# Comment this out to use the global config. +#enableOutdatedInfoWarning: false + +flowchartDiagrams: + enable: false + options: "" + +sequenceDiagrams: + enable: false + options: "" + +--- + + +*because why not* + +# Install PowerShell Core +Or you can continue using PowerShell 5.1 if you wish. + +## From GitHub +Grab the installer from their [releases](https://github.com/PowerShell/PowerShell/releases) page. Once downloaded, double-click the installer and follow the instructions. + +## Using Scoop +Enter the line in PowerShell: + +``` +scoop install pwsh +``` + +Instructions to install Scoop can be found at [scoop.sh](https://scoop.sh/). + +## Using Chocolatey +Enter the line in elevated PowerShell: + +``` +choco install pwsh +``` + +Instructions to install Chocolatey can be found at [chocolatey.org](https://chocolatey.org/install). + +# Install Windows Terminal +Get it from [Store](https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701) or from [GitHub releases](https://github.com/Microsoft/Terminal/releases). I recommend getting it from Store as it can be updated automatically. + +Or you can install via Chocolatey by entering +``` +choco install microsoft-windows-terminal +``` +Again, in elevated PowerShell. + +If you are using Scoop then it would be +``` +scoop install windows-terminal +``` + +# The interesting part begins. +Next, open Windows Terminal. Once there, use the drop down arrow to open PowerShell Core. + +{{% center %}} +{{% figure src="/img/powershell/tab-menu.png" title="The shells listed depend on the shells installed on your computer." alt="A drop down list of shells, settings, feedback and about" %}} +{{% /center %}} + +As per the instructions [here](https://github.com/JanDeDobbeleer/oh-my-posh), install `posh-git` and `oh-my-posh`. It is assumed that you have [git](https://git-scm.com/downloads) installed (you can use Chocolatey or Scoop if you wish). + +``` +Install-Module posh-git -Scope CurrentUser +Install-Module oh-my-posh -Scope CurrentUser +``` + +Next, get [PSReadline](https://docs.microsoft.com/en-us/powershell/module/psreadline/?view=powershell-7) + +``` +Install-Module -Name PSReadLine -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck +``` + +Now, add the folllowing lines to your `$PROFILE` by running `vim $PROFILE`. Please note that Notepad also works. + +```powershell +Import-Module posh-git +Import-Module oh-my-posh +Set-PoshPrompt ys + +# Show navigable manu of all options on hitting Tab +Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete + +# Autocompletion for arrow kets +Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward +Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySeachForward +``` + +Line 3 sets theme. You can get a list of themes [here](https://github.com/JanDeDobbeleer/oh-my-posh). + +# Time to get a better font +Those boxes don't look quite nice. + +[Cascadia Code](https://github.com/microsoft/cascadia-code/releases) is my personal favourite. Download the fonts and change the font face to "Cascadia Code PL" in `settings.json` (it can be opened by pressing `Ctrl+,`, if you hadn't noticed already). +```json +"fontFace": "Cascadia Code PL"; +``` +Or you can install other fonts that support PowerLine Glyphs from [Nerd Fonts](https://nerdfonts.com/) + +# Add a background +One of the fun things about Windows Terminal is that you can set backgrounds and opacity or apply acrylic blur, which will be covered in the next section. + +Open `settings.json` and add the following lines + +```json +"backgrounfImage": "path/to/image", +"backgroundOpacity": 0.5, +"backgroundImageStretchMode": "fill", +``` + +# Use acrylic +Remove the lines used to set the background and add the following lines + +```json +"useAcryllic": true, +"acryllicOpacity": 0.8, +``` + +# Next Step +Enjoy. +{{% center %}} +{{% figure src="/img/powershell/final.png" title="Final result" alt="Screenshot of Windows Terminal after applying the previous steps" %}} +{{% /center %}} \ No newline at end of file diff --git a/images/powershell/final.png b/images/powershell/final.png new file mode 100644 index 0000000..fe054a9 Binary files /dev/null and b/images/powershell/final.png differ diff --git a/images/powershell/tab-menu.png b/images/powershell/tab-menu.png new file mode 100644 index 0000000..7496d4a Binary files /dev/null and b/images/powershell/tab-menu.png differ diff --git a/static/img/powershell/final.png b/static/img/powershell/final.png new file mode 100644 index 0000000..fe054a9 Binary files /dev/null and b/static/img/powershell/final.png differ diff --git a/static/img/powershell/tab-menu.png b/static/img/powershell/tab-menu.png new file mode 100644 index 0000000..7496d4a Binary files /dev/null and b/static/img/powershell/tab-menu.png differ