[{"data":1,"prerenderedAt":387},["ShallowReactive",2],{"\u002Fblogs\u002Fcustomise-windows-terminal":3},{"id":4,"title":5,"body":6,"coverImage":374,"description":377,"extension":378,"meta":379,"navigation":380,"path":381,"publishedOn":382,"seo":383,"sitemap":384,"stem":385,"__hash__":386},"content\u002Fblogs\u002Fcustomise-windows-terminal.md","Customising the New Windows Terminal: A Minimalist Approach",{"type":7,"value":8,"toc":364},"minimark",[9,13,16,21,24,27,31,39,42,45,48,52,55,60,72,79,82,85,88,94,97,100,103,106,109,120,131,144,165,176,189,192,198,201,204,207,213,222,225,232,239,246,253,260,267,274,281,284,288,291,306,315,318,324,327,342,345],[10,11,12],"p",{},"Who needs Linux when you got a fully customized Windows Terminal!",[10,14,15],{},"Heard of the new Windows Terminal (WT), Microsoft has been actively working on\nrecently? You might’ve if you’ve been following my updates on Twitter. I was\nadvocating Microsoft’s effort to make Windows a more developer-friendly platform\nfor quite a while now. And ever since I moved from Ubuntu to Windows for my\ncoding needs, I’ve come to realise how things have changed on Windows-land for\nthe better.",[17,18,20],"h3",{"id":19},"what-is-this-new-windows-terminal","What is This New Windows Terminal?",[10,22,23],{},"With that said, WT is a console developed & distributed by Microsoft. It\nsupports a wide variety of shells, the full list of which I’m not aware of. But\nI’m assured it supports most of the popular ones. Hence, by popularity, Bash\u002Fzsh\nis supported through Windows Subsystem for Linux (WSL) & PowerShell 5.1 which\nships pre-packaged with Windows 10.",[10,25,26],{},"On that note, I’ve been using PowerShell 5.1 mainly because it’s there by\ndefault & is a much easier scripting language over Bash. So, without further\nado, let’s dive into how I’ve made some very minimalist customization to WT.",[17,28,30],{"id":29},"why-maintain-a-minimalist-look","Why Maintain a Minimalist Look?",[10,32,33,34,38],{},"Windows Terminal is ",[35,36,37],"strong",{},"VERY"," customizable, as you’ll see soon enough. You can\nset a background image (or a GIF) of your choice. You can add multiple panes to\na tab with each running a different shell instance, the possibilities are\ninfinite. But customizing to such an extent comes with a caveat, spending way\nmore time on customizing the Terminal to look “perfect” is time-consuming. The\ntime which I could spend on projects & work instead.",[10,40,41],{},"Besides, there’s also the problem of cognitive overload I’ve trouble dealing\nwith. Thus, I follow the principles of minimalism wherever possible. Put simply,\nhaving just enough & specific information for a task is all I need. If a need\narises, customizing the Terminal to fit those needs is still an open option.",[10,43,44],{},"Anyway, enough of my justifications & let’s cut the chase. This is the\nconfiguration I use, feel free to copy & use them.",[10,46,47],{},"Need an explanation of what each section of the configuration does? Then\ncontinue reading until the next section.",[17,49,51],{"id":50},"my-customization-description-of-the-configfile","My Customization & Description of the Config File",[10,53,54],{},"The Windows Terminal configurations are divided into 4 distinct sections each\ncustomizing a specific aspect of the software.",[56,57,59],"h4",{"id":58},"global-or-defaultsettings","Global (or Default) Settings",[10,61,62,63,67,68,71],{},"The config file begins with the Global (or “",[64,65,66],"em",{},"default","”) settings. Followed by\nthe Profile, Colour Schemes & lastly, the key Bindings (or “",[64,69,70],{},"Actions","”).",[10,73,74,75,78],{},"Right at the start of the file, the Global settings apply customization to the\nwhole software, as in how Windows Terminal behaves. In context to that, my\nconfiguration starts Windows Terminal with PowerShell as the default profile\n(more on profiles a bit later), indicated with the “",[64,76,77],{},"defaultProfile","” settings.",[10,80,81],{},"Right below it & till line 12, I’ve set Windows Terminal to not copy a body of\ntext when selected & not even the formatting. Azure Shell & WSL profiles are\nalso disabled since I’ve yet to find any relevant use for them. And at last, to\nensure my eyes don’t burn & are protected, a dark theme, tab width & startup\nwindow maximized is enabled.",[10,83,84],{},"Those were the Global settings which apply to the whole of Windows Terminal as a\nsoftware. They don’t do much but help with the startup time, my eyes &\nproductivity.",[10,86,87],{},"But here’s where things get visually interesting, customizing individual\nProfiles.",[56,89,91],{"id":90},"profiles",[35,92,93],{},"Profiles",[10,95,96],{},"Profiles are Windows Terminal’s way of creating & manipulating shells & other\nterminal emulators. In other words, you can have a PowerShell session running\nside-by-side on a tab with Bash (running on an Ubuntu-WSL).",[10,98,99],{},"If it isn’t obvious from the GIF on the featured image already, I’ve set up four\nprofiles — PowerShell, Python Repl, Git Bash & Neovim. But the configuration\nlists 6, how & what’s going on?",[10,101,102],{},"Be patient, soon enough you’ll figure that out as well.",[10,104,105],{},"The Profile section accepts some default settings as well. And they’ll be\napplied to each of the profiles stated inside the array. The default settings\nspecify, the starting directory when the profile is initiated, the font size,\nbold fonts (so you don’t have to squint to read the texts), padding (makes the\ntext look nicer & works like CSS padding), the shape & colour of the cursor (to\nadd some oomph…). The acrylic background is enabled, making the Terminal look\ntransparent. And not to forget, at last, the name of the colour scheme.",[10,107,108],{},"These default settings ensure uniformity across whichever shell emulator is in\nuse. These settings also ensure good minimalist aesthetics without being too\ndistracting and\u002For hard on the eyes.",[10,110,111,112,119],{},"Line 25–64 lists the profiles, the crest of Windows Terminal we’ve been\ndiscussing till now. There’s a lot more you could do here, so I suggest checking\nout the\n",[113,114,118],"a",{"href":115,"rel":116},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fwindows\u002Fterminal\u002Fcustomize-settings\u002Fprofile-settings",[117],"nofollow","official docs","\nfirst. You can build upon my configurations & yes, don’t forget to share your\ncreations with me (tweet them to me 😉).",[10,121,122,123,126,127,130],{},"Anyway, keeping in mind a minimalist approach, Command Prompt & Azure profiles\nare hidden using the “",[64,124,125],{},"hidden",": ",[64,128,129],{},"true”",". Since Windows Terminal comes with them\nby default & removing them makes the software act weird, I felt it’s best to\nhide them altogether. Besides Azure Shell & Command Prompt, PowerShell is also\nconfigured to load by default right after installation.",[10,132,133,134,126,136,139,140,143],{},"And, I’ve been using PowerShell a lot lately & I assure you, it’s pretty darn\ngood! It’s a good scripting language which has the simplicity of Python & file\nsystem management capabilities of Bash. So, I feel you should give it a try,\nmore so right now, since it’s cross-platform. Hence, PowerShell is set to\n“",[64,135,125],{},[64,137,138],{},"false","”, to ",[35,141,142],{},"NOT"," hide it from the UI.",[10,145,146,147,150,151,154,155,158,159,126,162,164],{},"Additionally, the “",[64,148,149],{},"guid”"," is set to a unique alphanumeric value, generated\nusing “",[64,152,153],{},"New-Guid”"," in PowerShell which acts as a unique identifier for that\nspecific profile. “",[64,156,157],{},"name”"," is set to the name of the profile which should show\nup on the UI tab. Often you might’ve to use “",[64,160,161],{},"suppressApplicationTitle",[64,163,129],{},"\nto not load the application default name. For example, Git Bash loads the file\npath as the tab name on the UI.",[10,166,167,168,171,172,175],{},"The “",[64,169,170],{},"commandline”"," & icons setting accepts the path to the binaries & the\nicons, respectively. If the file path is added to PATH, then there’s no need to\nspecify the absolute file path. I did something similar with “",[64,173,174],{},"nvim”",".",[10,177,178,179,184,185,188],{},"A great feature of Windows 10 is the concept of\n",[113,180,183],{"href":181,"rel":182},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fwindows\u002Fuwp\u002Fget-started\u002Funiversal-application-platform-guide",[117],"Universal Windows Platform","\n(UWP) app which enables devs to create apps for any Windows platform. Windows\nTerminal accesses those UWPs with the “",[64,186,187],{},"source","” setting. Hence, Azure Shell &\nWSL are loaded as UWPs on the Terminal.",[10,190,191],{},"Now with most of the theory done & dusted, it’s time to figure out how to\ncustomize the colour scheme & the key bindings. So let’s move on to the next\nsection.",[56,193,195],{"id":194},"colour-schemes",[35,196,197],{},"Colour Schemes",[10,199,200],{},"Lines 65–87 lists the settings for the colour schemes. There’s not much to\ndiscuss here except perhaps the `name` settings. It serves as an identifier\nfor specific colour schemes & hence, you can have a list of multiple other\ncolour schemes, all customized to fit your needs.",[10,202,203],{},"Do note though, it’s important to name your colour schemes, as that’s what each\nprofile will refer to for customizing its font colours. But in my case, I’ve set\none single colour scheme for all the profiles. This way I can maintain\nconsistency across all the Shells.",[10,205,206],{},"You can of course have more than one scheme, each referenced by specific\nprofiles.",[56,208,210],{"id":209},"key-bindings",[35,211,212],{},"Key Bindings",[10,214,215,216,221],{},"As for customized key bindings, I’ve kept them to the minimal, since the default\nones serve my needs most of the time. Feel free to refer to the\n",[113,217,220],{"href":218,"rel":219},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fwindows\u002Fterminal\u002Fcustomize-settings\u002Factions",[117],"docs on customizing key bindings","\nto check & change them according to your needs.",[10,223,224],{},"With that said, here’s the list of key bindings that I use:",[10,226,227,228,231],{},"1. “",[64,229,230],{},"ctrl+c","” for copying a selected piece of text.",[10,233,234,235,238],{},"2. “",[64,236,237],{},"ctrl+v","” for pasting a piece of text from the clipboard.",[10,240,241,242,245],{},"3. “",[64,243,244],{},"ctrl+shift+f”"," to find texts\u002Fwords on the Terminal.",[10,247,248,249,252],{},"4. “",[64,250,251],{},"alt+shift+d","” to split the pane automatically with the most available\nspace & duplicating the active shell.",[10,254,255,256,259],{},"5. “",[64,257,258],{},"shift+alt+2”"," to activate the Neovim pane & size it automatically.",[10,261,262,263,266],{},"6. “",[64,264,265],{},"ctrl+w","” to close a tab.",[10,268,269,270,273],{},"7. “",[64,271,272],{},"ctrl+t”"," to close all the other tabs except the current one.",[10,275,276,277,280],{},"8. “",[64,278,279],{},"ctrl+shift+w”"," closes the active pane.",[10,282,283],{},"And that marks the end of my Windows Terminal customization configuration. That\nwas a lot to read for a supposed minimalist configuration.",[17,285,287],{"id":286},"how-can-you-give-your-windows-terminal-a-personaltouch","How Can You Give Your Windows Terminal a Personal Touch?",[10,289,290],{},"My customization was meant to be minimal, pleasant on the eyes & most important,\nnot distracting. It’s fine if you find my customization not “good enough” for\nyou & thus, would like to add some more personal touches.",[10,292,293,294,299,300,305],{},"To do that, I suggest, looking at the colour scheme customization first. There\nare a ton of schemes available for free at\n",[113,295,298],{"href":296,"rel":297},"https:\u002F\u002Fwindowsterminalthemes.dev\u002F",[117],"Windows Terminal Themes"," &\n",[113,301,304],{"href":302,"rel":303},"https:\u002F\u002Fterminalsplash.com\u002F",[117],"Terminal Splash",". Just ensure there’s enough\ncontrast between the foreground & the font colours. Additionally, you might’ve\nto experiment with the acrylic opacity as well & or the background image (or\na .gif) size, its relative position, etc, if you do add one.",[10,307,308,309,314],{},"Besides the colour customizations, you could try customizing the shell prompts.\nThe GIF image above, showcases my custom PowerShell prompt powered by\n",[113,310,313],{"href":311,"rel":312},"https:\u002F\u002Fohmyposh.dev\u002F",[117],"oh-my-posh v3",". You could customize Neovim even further\nto fit your needs.",[10,316,317],{},"Regardless, customizing the PowerShell prompt & setting up Neovim is a project\non its own, hence they deserve a separate blog post of their own.",[17,319,321],{"id":320},"whatre-you-waiting-for-start-customizing-yourstoo",[35,322,323],{},"What’re You Waiting For, Start Customizing Yours Too?",[10,325,326],{},"That said, I can’t recommend using Windows Terminal enough. Heck, I would even\ngo as far as asking you to switch to using Windows as your everyday development\nplatform. The team behind the development of Windows Terminal at Microsoft are\nvery proactive. And their contributions are only improving the product each day.\nSo if you’re on Window, & haven’t used Windows Terminal yet, then do it ASAP!",[10,328,329,330,335,336,341],{},"You can download the preview version to test experimental features. They’re\navailable both from the\n",[113,331,334],{"href":332,"rel":333},"https:\u002F\u002Fwww.microsoft.com\u002Fen-in\u002Fp\u002Fwindows-terminal-preview\u002F9n8g5rfz9xk3?activetab=pivot:overviewtab",[117],"Microsoft Store","\nor from their ",[113,337,340],{"href":338,"rel":339},"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fterminal\u002Freleases",[117],"GitHub Releases","\npage. Or the non-preview version which serves your purpose.",[10,343,344],{},"Once downloaded edit the config file by following the steps mentioned above. And\nyou’re good to go! Do let me know how you’ve customized your Terminal. Drop me a\ntweet & don’t forget to share the config file for others to take inspiration\nfrom.",[10,346,347,348,355,356,363],{},"And now, if you found this article helpful, do note there’s a work-in-progress\nblog post on customizing PowerShell prompt. I’ll share details on how I set it\nup along with Neovim on Windows. If you want to read that as well then\n",[113,349,352],{"href":350,"rel":351},"https:\u002F\u002Fjarmos.ck.page\u002Fnewsletter",[117],[35,353,354],{},"subscribe to my newsletter"," or follow me\non ",[113,357,360],{"href":358,"rel":359},"https:\u002F\u002Ftwitter.com\u002FJarmosan",[117],[35,361,362],{},"Twitter"," whichever feels more convenient.",{"title":365,"searchDepth":366,"depth":366,"links":367},"",2,[368,370,371,372,373],{"id":19,"depth":369,"text":20},3,{"id":29,"depth":369,"text":30},{"id":50,"depth":369,"text":51},{"id":286,"depth":369,"text":287},{"id":320,"depth":369,"text":323},{"url":375,"alt":376},"https:\u002F\u002Fik.imagekit.io\u002Fjarmos\u002Fcustomising-windows-terminal.png?updatedAt=1702974989364","Customising Windows Terminal with a Minimalist Approach","Discover the power of Windows Terminal customization for a developer-friendly experience. Learn about minimalist tweaks, profile configurations, color schemes, and key bindings. Elevate your productivity and aesthetics on Windows. Dive into effortless customization now.","md",{},true,"\u002Fblogs\u002Fcustomise-windows-terminal","2020-12-31",{"title":5,"description":377},{"loc":381},"blogs\u002Fcustomise-windows-terminal","i-OgmYAgzrvLvOSA6jM2jI0sE3u3x0mryTpHukvfG5Y",1788604450230]