Windows 11 krijgt mogelijkheid om standaardterminal aan te passen

Windows 11 heeft een nieuwe feature gekregen waarmee het mogelijk is om de standaardterminal aan te passen van Windows Console Host naar een alternatief. Komend jaar wordt Windows Terminal de nieuwe standaardterminal op Windows 11-apparaten.

Windows Terminal wordt in 2022 de nieuwe standaardterminal in Windows 11, en vervangt daarmee Windows Console Host. Ook wordt het mogelijk om zelf de standaardterminal aan te passen. Dat is te lezen in een developer-blogpost van program manager Kayla Cinnamon van Microsoft.

Daarin schrijft ze hoe het in Windows 11 mogelijk is om de standaardterminal aan te passen. Voorheen kon dat alleen met software van derden. Nu kan dat op drie plekken in Windows 11: in de developer settings op de Instellingen-pagina onder Privacy & Security, in de Windows Terminal-instellingen op de startup-pagina en binnen de Windows Console Host-property sheet.

In de loop van 2022 moet Windows Terminal de standaardterminal worden in Windows 11. Dat zal in eerste instantie gebeuren via het Windows Insider Program en uiteindelijk naar iedereen toe moeten komen. Microsoft roept gebruikers op om bugs te melden in Terminal via Github.

Windows Terminal default

Door Stephan Vegelien

Redacteur

15-12-2021 • 10:50

80 Linkedin

Reacties (80)

80
79
42
4
0
24
Wijzig sortering
Erg fijne terminal idd en dat zegt wat, voor mij persoonlijk, gezien ik shells en terminal op Windows vaak echt zo onduidelijk en "all over the place" vind (voor alles is een andere shell). Heerlijk om nu ook wat linux commando's te kunnen gebruiken.
Voor de geïntresseerde Tweakers, hierbij twee erg leuke achtergrondartikelen om te weten hoe zeer de Windows Console afgelopen jaren enorme sprongen vooruit heeft gemaakt, maar ook hoe het allemaal is ontstaan.De Windows XP console, zogezegd, is mijlenver verwijderd van de huidige versie in Win10/Win11. Daarin is bijvoorbeeld ook te lezen dat de komst van Windows Subsystem for Linux (WSL) een enorme positieve driver is geweest.

Ik denk dat voor mij een van de meest in het oog springende voorbeelden te vinden is in het feit hoe tegenwoordig omgegaan wordt met copy & paste, formatting en de ondersteuning van multi-platformcommando's. Ik ben altijd al veel actief geweest op de console maar zie de laatste jaren echt stappen gemaakt worden, die voor de komende generatie waarschijnlijk al gemeengoed zullen worden weggezet :).

[Reactie gewijzigd door Eagle Creek op 15 december 2021 11:23]

Linux commando's in Windows? Vertel mij meer! Ik zat niet zo lang nog verschrikkelijk moeilijk te doen in Windows (wat we helaas van IT moeten gebruiken, want alles moet op laptops met een dichtgetimmerde BIOS, zelfs wanneer Windows voor het doel onbruikbaar is). Iets met een file search die op een manier moest worden uitgevoerd waarvoor ik in Linux het commando uit mijn hoofd weet. Op Windows gewoon onmogelijk. Besturingssystemen zonder een fatsoenlijke terminal wil ik niet eens als bruikbaar zien. Altijd iets dat weer niet kan, terwijl hetzelfde op Linux triviaal is.

[Reactie gewijzigd door Amanoo op 15 december 2021 11:14]

Je haalt hier de Terminal en de Shell door elkaar. Een " terminal" is een klein programmatje om keyboard input and text output in een GUI in te passen. De shell is een interpreter die jouw ingetypte commando's interpreteert.

Windows heeft met PowerShell een shell die significant beter ontworpen is dan Linux, waar je niet veel beters hebt dan bash. Bash heeft moelijke escape regels nodig, bijvoorbeeld voor spaties in file names. Power Shell heeft native support voor file names.
ZSH is toch wel een bak fijner dan zowel bash als powershell en tegenwoordig de standaard shell in vele linux releases. Spaties zijn al heel lang geen issue meer in shells
Powershell was dusdanig veel later dan een shell die een beetje wat kon, en is (voor mij als ex-Linux/UNIX gebruiker) net weer niet helemaal intuïtief, dat ik powershell alleen maar gebruik als het niet anders kan. En omdat inmiddels CMD ook wat meer kon, is de noodzaak niet zo heel groot.

Praktisch, als het op Windows & *NIX moet draaien, wordt dan nog veel liever Perl gebruikt. Ben je (grotendeels) af van platform specifieke meuk. Anderen zullen Python of zo gebruiken.

En spaties in file namen is m.i. wel de grootste miskleun geweest in Windows land. Ik denk dat die optie vele vele miljoenen development kosten met zich mee heeft gebracht. Het is toch wel bizar dat je bijna 20 jaar na introductie van paden met spaties nog steeds dit probleem niet de wereld uit is. Je zult hoe dan ook programma argumenten moeten kunnen onderscheiden van het programma path en is dus altijd iets speciaals nodig (quotes, escapen van de spatie of whatever) om dat onderscheid aan te geven.
Windows heeft met PowerShell een shell die significant beter ontworpen is dan Linux, waar je niet veel beters hebt dan bash. Bash heeft moelijke escape regels nodig, bijvoorbeeld voor spaties in file names. Power Shell heeft native support voor file names.
Tja, wat moet ik hier nu op zeggen. U bent duidelijk niet bekend met de shells die er bestaan voor Linux. Naast de tientallen verschillende shells is ook uw geliefde PowerShell te installeren binnen Linux.

Net zo min je een Linux gebruiker niet warm zal zien lopen om dagelijks met de PowerShell te gaan werken, zal een Microsoft gebruiker ook niet snel warm lopen door die Linux shells. Mijn voorkeur, voor zo ver dat er toe doet, gaat (en dan druk ik me zwak uit) zeer sterk uit naar de Linux/UNIX commandline experience.

Dat escapen van characters is niet heel moeilijk te begrijpen en daarbij houden de meeste shells hier gewoon rekening mee bij completion en dergelijken. Het moeilijk vinden duidt alleen maar op het niet begrijpen waarom het zo is :-).
Moeilijke escapes voor Bash?
abc="$1"

./myscript.sh "/foo/bar/a b c.txt"

Done. Je kan ook a\ b\ c doen inderdaad, maar dat doe je dan toch echt zelf. Die quotes worden niet voor niks ondersteund, als ik het me goed herinner is dat in PowerShell zelfs exact hetzelfde dus hoezo dan "native support voor file names"?
Op Windows gewoon onmogelijk. Besturingssystemen zonder een fatsoenlijke terminal wil ik niet eens als bruikbaar zien.
PowerShell is meer dan een prima terminal. En je kan er prima een file search in doen.
https://devblogs.microsof...hell-to-search-for-files/

En zelfs onder de ouderwetse commandprompt kan het:
https://stackoverflow.com...simple-file-search-in-cmd
Powershell is een shell en geen terminal.
Maar WSL gebruikt tegenwoordig virtualisatie. Die had ik er wel op gezet, maar daarmee kan ik niet mijn C: schijf afscannen.
MinGW-64 is dan mogelijk wat je zoekt.
MinGW-w64 is geen Shell. Strict genomen is dat enkel de OS Runtime en link libraries die GCC of Clang dan kan gebruiken om Windows exécutables te maken.

Cygwin, en de afgeleide MSYS2, is wat je bedoelt. Deze biedt naast een handige package manager voor prebuilt MinGW-w64 packages ook een POSIX Shell gebaseerd op Cygwin, maar met wat extraatjes zoals standaard path translation die bij Cygwin altijd via een omzettingsprogrammaatje loopt. Git for Windows draait trouwens in een gestripte MSYS2 omgeving.

Je verwarring stamt al uit de tijd van het oude MinGW.org, waar een MSYS bijhoorde, maar die zijn beiden hopeloos achter geraakt (MinGW.org ondersteunt nog steeds geen 64-bit of ARM, en hun oude MSYS is nog gebaseerd op een historisch oude Cygwin fork die enkel met GCC 2.95 kan worden gecompliceerd last I checked).

[Reactie gewijzigd door rubenvb op 15 december 2021 12:40]

Je hebt ook nog win-bash. Heb ik ook nog een tijdje gebruikt. Echter ik ben meestal toch aan het ontwikkelen dus alles binnen WSL houden is dan niet zo lastig.
of iets wat daar veel op lijkt: MSYS2
Dat kan wel in WSLv2

C-schijf staat gewoon onder /mnt/c
Oh, goed om te weten. Dat kan dan nog eens heel nuttig zijn.
Was al zo in WSL1
Ik draai hier wsl2, en ik kan perfect `cd /mnt/c` doen voor naar mijn c schijf te gaan. Let op, in wsl2 is dit niet al te snel :)
Goed om te weten. Daar ga ik wel wat aan hebben.
Windows heeft in de vorm van Powershell anders een prima shell. Moet je natuurlijk wel een beetje moeite doen om uit te vinden hoe Powershell werkt.
Linux commando's in Windows? Vertel mij meer!
Installeer gewoon MSYS2 in Windows. Dan heb je zo ongeveer het complete Linux command-line userland tot je beschikking inclusief compilers. De package manager is pacman, van Arch.
Kijk eens naar cmder, een native windows tool (geen wsl of vage net niet linux instances) die een hoop dingen linux commandline tools ondersteund
Ach, zelfs in CMD kun je een hoop. Ook op Windows is er een find commando ;-). Of dir /s. Maar goed, de Linux find (die doorgaans niets met het type shell heeft te maken, omdat het geen shell built-in is) kan meer.
Je gebruikt niet echt Linux commando's, powershell heeft wat aliassen naar bekende Linux commando's zoals 'ls' :) Maar het blijft gewoon een alias naar "Get-ChildObject".

Tenzij je WSL gebruikt natuurlijk. Maar dan zit je niet echt meer in Windows.

[Reactie gewijzigd door GekkePrutser op 15 december 2021 11:37]

Ja, dat snap ik, maar maakt voor mij in de praktijk niet zoveel uit. :) Goed te weten, dat wel.
Je zit dan nog wel in Windows, tik maar eens "notepad.exe" in ( zonder die dubbele quotes )
Veranderd dit ook de optie om een terminal te openen in een map als je er met rechts op klikt?

Wel mooi dat je ook een profiel kan selecteren zie ik. Ik wissel regemaltig tussen CMD, Powershell and Ubuntu (WSL2).
Veranderd dit ook de optie om een terminal te openen in een map als je er met rechts op klikt?
Rechts erop klikken en een command prompt openen is volgens mij gelijk aan cmd.exe starten in de betreffende directory. Je zal dan gewoon de ingestelde terminal krijgen.

[edit]
Zie @LOTG voor 'Open in Windows Terminal'.

[Reactie gewijzigd door The Zep Man op 15 december 2021 11:33]

Als ik nu rechtsklik en open in windows terminal doe, pakt hij de default profile. Dus als ik ubuntu pak als default, dan opent hij een ubuntu terminal op die locatie.
Het is inderdaad al het geval dat dat zo is; de ingestelde terminal is degene die verschijnt in de lijst, screenshotje van mijn W11 bakkie:

https://tweakers.net/i/o9...VHpQfIyK.png?f=user_large

Als je Windows Terminal selecteert, en daar vervolgens bash, of een andere PowerShell versie als default selecteerd, dan is je folder open in Windows Terminal op die betreffende locatie (heb het met cmd, PWsh7 en PWsh 6 getest)
Windows moet sowieso meer afhankelijkheid van de terminal krijgen. Na bijna een decennium op Linux te hebben gezeten, is een besturingssysteem zonder uitmuntende terminal integratie voor mij bijna onbruikbaar. Er is altijd wel iets nodig dat net niet kan, terwijl ik het Linux commando uit mijn hoofd kan oplezen.
Is dat niet ook een stukje gewenning?

Met de Windows CMD terminal geef ik je gelijk maar met Powershell heb je een behoorlijk krachtige terminal in handen.
Het probleem is dat Windows de vreemde eend in de bijt is in OS-land. Als je Bash kent, dan kun je je redden op zowat elk OS dat op dit moment actief in gebruik is, behalve op Windows. De gemakkelijkste oplossing is gewoon MSYS2 installeren. Powershell etc. is dan alleen nog nodig als je Microsoft-specifieke dingen wil doen.
bash werkt op bijna elk OS behalve Windows, maar PowerShell werkt op elk OS inclusief Windows. Dat specifiek is dus een nadeel van bash, geen voordeel.
Wat is dat nou voor commentaar? Als je MSYS2 of (zo je wil, Cygwin) installeert dan heb je gewoon Bash op Windows. Het verschil is: Bash (of iets vergelijkbaars) is de standaard op elk OS, behalve Windows. Als je Bash kent, dan kun je op de meeste OS-en zo aan de slag op de command-line zonder iets aparts te hoeven installeren... behalve op Windows.

Het verschil is:
- Bash installeren op Windows.
- Of Powershell installeren op alle andere OS-en.

Laten we het maar niet eens hebben over de enorme breedsprakigheid van PowerShell (en C#, wat dat betreft). Ik snap wel waarom veel mensen per se af willen van de 80 of 100 karakters per regel. Met PowerShell of C# wordt je programma of script makkelijk zat 150+ tekens breed.

Kan ik programmeren in C#? Ja; redelijk.
Kan ik PowerShell gebruiken? Ja; redelijk.
Doe ik dat met plezier? Nee; allebei niet. Ik heb niet voor niks al bijna 20 jaar lang Cygwin, MinGW of (tegenwoordig) MSYS2 geïnstalleerd staan.

Als MS een fatsoenlijke command-line had willen hebben en die _niet_ Bash / Unix was, dan hadden ze die van OS/2 uit de jaren 90 moeten behouden. REXX was een briljante script / shell-taal. Iedereen die ook maar enigszins Engels kon lezen en basiskennis had van Pascal kon hierin scripts schrijven. (De script-taal van Bash is, toegegeven, niet geweldig gebruiksvriendelijk.)

Soms vraag ik me af waarom Microsoft altijd alles anders moet doen dan de hele wereld. Zo ongeveer elk computer(achtig) apparaat in de hele wereld draait Linux, Unix, of een Unix-like OS, behalve desktops en laptops.

En ja, ik ben blij dat ik in 2021 eindelijk het laatste stukje Windows-afhankelijkheid heb kunnen wegwerken en nu full-time al mijn persoonlijke spul op Linux kan draaien. Windows is enkel nog geïnstalleerd omdat ik het toch al heb, en voor het geval ik _echt_ niet zonder kan. (De enige overblijvende use-case is het upgraden van firmware van apparaten, wat vaak alleen met een Windows-exe kan.)
Natuurlijk is dat gewenning, en CMD is krachtiger dan menigeen denkt (hoewel stukken minder elegant dan een Bash oid op Linux). PowerShell kan echt wel naast Linux staan qua terminal mogelijkheden. Alleen PowerShell heeft een hele andere filosofie dan de gemiddelde Linux Terminal. Belangrijkste verschil is Object georiënteerd (PowerShell) vs strings georienteerd (Bash). Dat kan verwarrend zijn voor mensen die overstappen maar als je het door hebt is het superkrachtig.
Maar eigenlijk met jouw onderbouwing is het dus inderdaad gewenning. Mensen willen een terminal die gelijk is aan wat ze kennen, maar dan in een OS wat fundamenteel anders werkt.
Gewenning ja, maar dan nog werkt veel toch net even gestroomlijnder in een Unix/Linux omgeving vind ik. Ook qua development vind ik het verschil frapant. IntelliJ op Linux en ik kan alles doen met de ingebouwde shell. IntelliJ op Windows en ik moet voor bepaalde dingen weer een aparte shell starten en als je een andere taal/omgeving dan .net en VS gebruikt dan is het ook al nogal wat geconfigureer. Op Linux werkt veel gewoon out of the box bijna.
Je zegt het net even beter dan ik. De Linux terminal is echt doorgewinterd en heel erg geïntegreerd op een manier zoals zelfs PowerShell dat niet is. Al zal ik niet ontkennen dat ik niet erg bekend ben met PowerShell. Linux is gewoon terminal. Die integratie is erg volledig.
Ik denk dat je verwoording wat ongelukkig is. Afhankelijkheid van de terminal is namelijk juist wat je niet wilt, je wilt mogelijkheden maar juist dingen die enkel via de terminal kunnen maakt een OS irritant en ingewikkeld. Ik ga er even vanuit dat je bedoelde dat er meer mogelijkheden moeten zijn, als je echt wilt dat er dingen in Windows afhankelijk worden van de terminal dan moeten we even praten ;)
Het is wat lastig te verwoorden inderdaad. Het komt ook nog wel eens voor dat je met de terminal meer mogelijkheden hebt, dat je een behoorlijk complexe GUI nodig hebt als je het allemaal wil implementeren. Al helemaal als je piping meeneemt. Er zijn dingen die gewoon sneller of makkelijker zijn, soms dingen die met een GUI echt niet willen lukken. In die zin is een goede terminal altijd een krachtig hulpmiddel.

Maar ja, afhankelijkheid is niet het juiste woord misschien. Wanneer het met een GUI kan wil je wel een GUI (al zijn er daarin zeker tekortkomingen in Windows, heb ik gemerkt).
sorry, maar los van de terminal kan je al jaren met Powershell best veel op Windows.
Maar... dit kon toch al gewoon? Open Windows Terminal, type Ctrl+, (om de settings te openen) en je krijgt een json bestand waar je een paar dingen aan kan passen. Op ongeveer de tiende regel kun je een "defaultProfile" instellen. Die wil een guid hebben; halverwege de file staat een lijstje van beschikbare profiles (en hun guids) waar je uit kunt kiezen.

Is het gebruiksvriendelijker als de gui je een dropdown geeft om het aan te passen? Ja, dat wel. Maar "Voorheen kon dat alleen met software van derden." vind ik geen correct statement.
Kon volgensmij inderdaad al, het lijkt er hier om te gaan dat Windows Terminal de default word ipv cmd.
Titel lijkt in deze context niet helemaal te kloppen.
Het gaat niet om het profiel in Windows Terminal, het gaat om de default terminal applicatie. Die kun je momenteel niet instellen in Windows 10 (op een normale manier iig, je kunt vast een registry setting aanpassen, zoals een 3rd party app dat waarschijnlijk voor je doet), dat is standaard Windows Console Host, en dat is dus de oude terminal, niet Windows Terminal. In de Windows 10 preview en in Windows 11 kan het overigens wel al.

Het editen van een json hoeft trouwens al een tijdje niet meer, hoor. Misschien moet je 'm eens updaten ;)

[Reactie gewijzigd door .oisyn op 15 december 2021 22:39]

Het gaat niet om het profiel in Windows Terminal, het gaat om de default terminal applicatie.
Ah okee, dan had ik het verkeerd begrepen. Bedankt voor de correctie!
Het editen van een json hoeft trouwens al een tijdje niet meer, hoor. Misschien moet je 'm eens updaten ;)
Het is het soort instelling wat je één keer goed zet en daarna niet meer aankomt. Vlak na installatie ben ik er, na wat gepruts, achter gekomen dat deze methode werkt. Toen ik mijn vorige reactie typte is het niet in me opgekomen om te kijken of er tegenwoordig een handiger manier is. Had ik misschien moeten doen, maar ik verbaasde me vooral over de stelling dat er third-party tools voor nodig zouden zijn, niet dat de ingebouwde methode onhandig is.
Interessant dat daarmee een Open Source applicatie eigenlijk een core onderdeel van Windows wordt. Samen met PowerShell Core en .Net 5 een hele vooruitgang.

Wellicht is Windows als OS ook niet zo commercieel interessant voor Microsoft, dus wie weet wat er nog meer door Open Source implementaties vervangen wordt.
Ik denk dat je beter kunt stellen dat Microsoft meer moeite doet om professionals tevreden te houden. De toekomst is hybride: Cloud en in-house, vast en mobiel, Windows en Linux, proprietary en open source, etc. Microsoft kan niet meer doen alsof ze alleen in de wereld zijn want dan dwingen ze beheerders en developers naar andere platformen die wel snappen dat de wereld niet uniform is.
Stukje uit het genoemde artikel voor mensen die misschien, net als ik, nog niet weten wat met 'terminal' wordt bedoeld:
A default terminal is the terminal emulator that launches by default when opening a command line application. Starting from the dawn of Windows, the default terminal emulator has always been the Windows Console Host, conhost.exe.
Hier heb ik die optie al enkele weken, zit nochtans niet op één of andere preview versie.
Lekker belangrijk, bijna niemand kan dit OS draaien. Laat ze het maar in Windows 10 inbouwen, dat is immers nog niet EOL. Ik kan altijd nog bij de genade van Microsoft downgraden naar Windows 11 als ik een keer een nieuw pc kan kopen.
Nou ja, na een maandje al ongeveer 10% wil ik niet bijna niemand noemen...
10% voor een Windows release is belachelijk weinig. Herinner je de release van Windows 95 nog? Of recenter, die van Windows 7?

De installbase van Windows 11 is een lachertje vergeleken met een upgrade die voor bijna iedereen installeerbaar is.
Het zit al een tijdje in Windows 10 preview.
Dat zegt niks. Genoeg features die het niet tot een mainstream-release geschopt hebben. Ook een paar dingen die wél in 11 terechtkwamen.
Het zegt meer dan dat het nog helemaal niet beschikbaar was.
Ok, het zegt iets meer dan niks :)
Maar feit is wel dat het onbruikbaar is voor serieus werk, waar je natuurlijk geen previews draait. En dat lijken me veruit de meeste installaties.
Ik ben het eens hoor. Ik ging gisteren eens googlen hoe je dat dan aanpast (volgens het artikel kan dat dus met 3rd party apps), maar nu kom ik allemaal artikelen tegen die verwijzen naar de win 10 preview. Ja, daar zit ik net niet op te wachten 8)7. Nu hoop ik maar dat ze het pushen voor 22H1.

[Reactie gewijzigd door .oisyn op 16 december 2021 12:02]

Als die alternative net zo snel starten als CMD, prima. Maar bv powershel is mij te traag in even snel wat doen.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee