From 8871b3a9c31c77163e40593edf1a83ce0fcff2f7 Mon Sep 17 00:00:00 2001 From: Shubham Gogna <36936863+shgogna@users.noreply.github.com> Date: Mon, 13 Dec 2021 09:40:24 -0800 Subject: [PATCH 01/63] Update dynamic-profiles.md (#438) * Update dynamic-profiles.md Create section for dynamic profile for `Developer Powershell for VS 2019` * Update dynamic-profiles.md Update name and remove `startingDirectory` * Update dynamic-profiles.md Explain a little better --- TerminalDocs/dynamic-profiles.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/TerminalDocs/dynamic-profiles.md b/TerminalDocs/dynamic-profiles.md index a7be5723..da63ed1a 100644 --- a/TerminalDocs/dynamic-profiles.md +++ b/TerminalDocs/dynamic-profiles.md @@ -138,7 +138,7 @@ Assuming that you've installed MSYS2 into `C:\\msys64`: For more details, see the Terminals section of the [MSYS2 documentation](https://www.msys2.org/docs/terminals/#windows-terminal). -### Developer Command Prompt for Visual Studio +### Developer Command Prompt for Visual Studio 2019 Assuming that you've installed [Visual Studio 2019 Professional](https://visualstudio.microsoft.com/downloads/): @@ -149,3 +149,22 @@ Assuming that you've installed [Visual Studio 2019 Professional](https://visuals "startingDirectory": "%USERPROFILE%" } ``` + +### Developer Powershell for Visual Studio 2019 + +Assuming that you've installed [Visual Studio 2019 Enterprise](https://visualstudio.microsoft.com/downloads/): + +```json +{ + "name": "Developer Powershell for VS 2019", + "commandline": "powershell.exe -noe -c \"&{Import-Module \"\"\"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"\"\"; Enter-VsDevShell 994a9d58}\"" +} +``` + +An easy way to figure out the `commandline` to use for your Visual Studio instance is: +1. Find the shortcut to `Developer Powershell for VS 2019` in the start menu +2. Right-click and select `Open File Location` +3. Right-click and select `Properties` on the shortcut +4. Inspect the `Target` field. It will be some value like `C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noe -c "&{Import-Module """C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell 994a9d58}"` +5. Use `Target` field value to update the file path for `Import-Module` in the profile `commandline` +6. Use `Target` field value to update the unique instance ID used with the `Enter-VsDevShell` command in the profile `commandline` From 8527dba7d5bbbc27ba33f2a2cd1a9f05ac6a6567 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Mon, 13 Dec 2021 14:18:02 -0800 Subject: [PATCH 02/63] Update VS version info in 3rd party (#462) --- TerminalDocs/dynamic-profiles.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/TerminalDocs/dynamic-profiles.md b/TerminalDocs/dynamic-profiles.md index da63ed1a..93f26070 100644 --- a/TerminalDocs/dynamic-profiles.md +++ b/TerminalDocs/dynamic-profiles.md @@ -138,33 +138,40 @@ Assuming that you've installed MSYS2 into `C:\\msys64`: For more details, see the Terminals section of the [MSYS2 documentation](https://www.msys2.org/docs/terminals/#windows-terminal). -### Developer Command Prompt for Visual Studio 2019 +### Developer Command Prompt for Visual Studio -Assuming that you've installed [Visual Studio 2019 Professional](https://visualstudio.microsoft.com/downloads/): +Assuming that you've installed [Visual Studio](/visualstudio/install/install-visual-studio): ```json { - "name": "Developer Command Prompt for VS 2019", + "name": "Developer Command Prompt", "commandline": "cmd.exe /k \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/Tools/VsDevCmd.bat\"", "startingDirectory": "%USERPROFILE%" } ``` -### Developer Powershell for Visual Studio 2019 +> [!NOTE] +> Visual Studio’s “Developer Powershell” and “Developer Command Prompt” include shell environment variables and tools settings that would not be available in the default Command Prompt or Powershell instance. -Assuming that you've installed [Visual Studio 2019 Enterprise](https://visualstudio.microsoft.com/downloads/): +### Developer Powershell for Visual Studio + +Assuming that you've installed [Visual Studio](/visualstudio/install/install-visual-studio): ```json { - "name": "Developer Powershell for VS 2019", + "name": "Developer Powershell", "commandline": "powershell.exe -noe -c \"&{Import-Module \"\"\"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"\"\"; Enter-VsDevShell 994a9d58}\"" } ``` -An easy way to figure out the `commandline` to use for your Visual Studio instance is: +To find the `commandline` path to use in the Windows Terminal settings for your Visual Studio instance: + 1. Find the shortcut to `Developer Powershell for VS 2019` in the start menu 2. Right-click and select `Open File Location` 3. Right-click and select `Properties` on the shortcut 4. Inspect the `Target` field. It will be some value like `C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noe -c "&{Import-Module """C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell 994a9d58}"` 5. Use `Target` field value to update the file path for `Import-Module` in the profile `commandline` 6. Use `Target` field value to update the unique instance ID used with the `Enter-VsDevShell` command in the profile `commandline` + +> [!NOTE] +> Visual Studio’s “Developer Powershell” and “Developer Command Prompt” include shell environment variables and tools settings that would not be available in the default Command Prompt or Powershell instance. From e5ac3e19729fdd7bbabfce1a98b4dec1adc59f9b Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Wed, 22 Dec 2021 10:10:23 -0800 Subject: [PATCH 03/63] Update custom prompt tutorial w latest OMP steps (#467) --- .../images/ohmyposh-terminal-prompt.png | Bin 0 -> 31468 bytes TerminalDocs/tutorials/custom-prompt-setup.md | 158 ++++++++---------- 2 files changed, 74 insertions(+), 84 deletions(-) create mode 100644 TerminalDocs/images/ohmyposh-terminal-prompt.png diff --git a/TerminalDocs/images/ohmyposh-terminal-prompt.png b/TerminalDocs/images/ohmyposh-terminal-prompt.png new file mode 100644 index 0000000000000000000000000000000000000000..d72ba6825702ff3ad47186623091e623f1786777 GIT binary patch literal 31468 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 N-!r&dapzgc{{sB2sS5xA literal 0 HcmV?d00001 diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index 553a7ac5..318c121d 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -3,148 +3,138 @@ title: Windows Terminal Custom Prompt Setup description: In this tutorial, you learn how to set up Oh My Posh and Terminal-Icons in Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/08/2021 +ms.date: 12/20/2021 ms.topic: tutorial #Customer intent: As a developer or IT admin, I want to set up a customized command line experience using Oh My Posh, Terminal-Icons, and posh-git in my Windows Terminal. --- -# Tutorial: Set up a custom prompt in Windows Terminal using Oh My Posh, Terminal-Icons, and Posh Git +# Tutorial: Set up a custom prompt for PowerShell or WSL with Oh My Posh -[Oh My Posh](https://ohmyposh.dev) provides theme capabilities for a customized command prompt experience providing Git status color-coding and prompts. [Terminal-Icons](https://github.com/devblackops/Terminal-Icons) adds file and folder icons when displaying items in the terminal. - -![Windows Terminal Custom Prompt](./../images/custom-prompt.png) +This tutorial provides some resources and direction to help you customize your command prompt for PowerShell or Windows Subsystem for Linux (WSL) using [Oh My Posh](https://ohmyposh.dev). Oh My Posh provides theme capabilities for a fully customized command prompt experience providing Git status color-coding and prompts. In this tutorial, you learn how to: > [!div class="checklist"] > -> * Set up Oh My Posh in PowerShell -> * Set up Oh My Posh in Ubuntu/WSL -> * Set up Terminal-Icons in PowerShell -> * Add missing glyphs +> * [Install a Nerd Font](#install-a-nerd-font) +> * [Customize your PowerShell prompt with Oh My Posh](#customize-your-powershell-prompt-with-oh-my-posh) +> * [Customize your WSL prompt with Oh My Posh](#customize-your-wsl-prompt-with-oh-my-posh) +> * [Use Terminal-Icons to add missing folder or file icons](#use-terminal-icons-to-add-missing-folder-or-file-icons) + +![Windows Terminal Custom Prompt](./../images/custom-prompt.png) ## Install a Nerd Font -Oh My Posh and Terminal-Icons use glyphs in order to style the prompt. If your font does not include the appropriate glyphs, you may see several Unicode replacement characters '▯' throughout your prompt. In order to see all of the glyphs in your terminal, you should install a [Nerd Font](https://nerdfonts.com). (If you'd like a font that looks like Cascadia Code, the Caskaydia Cove Nerd Font was built from the Cascadia Code repository by a community member.) +Customized command prompts often use glyphs (a graphic symbol) in order to style the prompt. If your font does not include the appropriate glyphs, you may see several Unicode replacement characters '▯' throughout your prompt. In order to see all of the glyphs in your terminal, we recommend installing a [Nerd Font](https://www.nerdfonts.com/font-downloads). + +If you'd like a font that looks like Cascadia Code, the Caskaydia Cove Nerd Font was built from the Cascadia Code repository by a community member.) After downloading, you will need to unzip and install the font on your system. ([How to add a new font to Windows](https://support.microsoft.com/en-us/office/add-a-font-b7c5f17c-4426-4b53-967f-455339c564c1)). -### Install Oh My Posh +To set a Nerd Font for use with Oh My Posh and Terminal Icons, open the Windows Terminal settings UI by selecting **Settings** (Ctrl+,) from your Windows Terminal dropdown menu. Select the profile where you wish to apply the font, PowerShell for example, and then the **Appearance** tab. In the **Font face** drop-down menu, select *CaskaydiaCove Nerd Font* or whichever Nerd font you would like to use with your customized prompt. -Oh My Posh enables you to use a full color set to define and render your terminal prompt, including the ability to use built-in themes or create your own custom theme. +> [!NOTE] +> If you want to use a terminal font that does not support glyph icons, such as [Cascadia Code PL](https://github.com/microsoft/cascadia-code/releases), you may consider using an Oh My Posh theme that contains the `minimal` function, indicating that additional icons aren't required. -### Install for PowerShell only +## Customize your PowerShell prompt with Oh My Posh -If you are only interested in using Oh My Posh with PowerShell, you can follow these installation instructions. If you want to use Oh My Posh for adding themes to both PowerShell and WSL command lines, skip down to the winget installation instructions below. +Oh My Posh enables you to use a full color set to define and render your terminal prompt, including the ability to use built-in themes or create your own custom theme. -1. Using PowerShell, install Oh My Posh with the command: +If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](/package-manager/winget/), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). - ```powershell - Install-Module oh-my-posh -Scope CurrentUser - ``` +### Install Oh My Posh for PowerShell -2. Browse the prompt themes, with the command: +To customize your PowerShell prompt, you can install Oh My Posh using the [PowerShell install-module](/powershell/module/powershellget/install-module). Enter the command: - ```powershell - Get-PoshThemes - ``` +```powershell +Install-Module oh-my-posh -Scope CurrentUser +``` -3. Choose a theme and update your PowerShell profile with this command. (You can replace `notepad` with the text editor of your choice.) +This will install: - ```powershell - notepad $PROFILE - ``` +- `oh-my-posh.exe`: The Windows executable +- `themes`: The latest [Oh My Posh themes](https://ohmyposh.dev/docs/themes) -4. Add the following to the end of your PowerShell profile file to set the `paradox` theme. (Replace `paradox` with the theme of your choice.) +You may also want to enter this command to ensure you have the latest updates: `Update-Module oh-my-posh`. - ```powershell - Import-Module oh-my-posh - Set-PoshPrompt -Theme paradox - ``` +> [!NOTE] +> If you are more familiar with the [Scoop](https://scoop.sh/) installer or [Chocolatey](https://chocolatey.org/) package manager, these can also be used for installing on Windows, just follow the instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). -Now, each new PowerShell instance will start by importing Oh My Posh and setting your command line theme. +### Choose and apply a PowerShell prompt theme -> [!NOTE] -> This is not your Windows Terminal profile. Your PowerShell profile is a script that runs every time PowerShell starts. [Learn more about PowerShell profiles](/powershell/module/microsoft.powershell.core/about/about_profiles). +To browse the Oh My Posh prompt themes, use the command: -### Install for PowerShell or WSL using Winget +```powershell +Get-PoshThemes +``` -If you would like to use Oh My Posh to style both Windows and Windows Subsystem for Linux (WSL) command lines, we recommend using the [Windows Package Manager](/windows/package-manager). You can [install winget](https://github.com/microsoft/winget-cli#installing-the-client), the package manager client, using the App Installer from the Microsoft Store. (This may require an Insiders build if you're running Windows 10.) +Choose a theme and update your PowerShell profile with this command. (You can replace `notepad` with the text editor of your choice.) -1. Using PowerShell, install Oh My Posh using winget with the command: +```powershell +notepad $PROFILE +``` - ```powershell - winget install JanDeDobbeleer.OhMyPosh - ``` +Add the following to the end of your PowerShell profile file to set the `paradox` theme. (Replace `paradox` with the theme of your choice.) - This will install: - * oh-my-posh.exe - Windows executable, added to your $PATH. - * oh-my-posh-wsl - Linux executable, added to your $PATH for use in the WSL. - * themes - The latest Oh My Posh themes. +```powershell +Import-Module oh-my-posh +Set-PoshPrompt -Theme paradox +``` -2. Using PowerShell, browse the prompt themes by entering: +Now, each new PowerShell instance will start by importing Oh My Posh and setting your command line theme. - ```powershell - Get-ChildItem -Path "~\AppData\Local\Programs\oh-my-posh\themes\*" -Include '*.omp.json' | Sort-Object Name | ForEach-Object -Process { - $esc = [char]27 - Write-Host "" - Write-Host "$esc[1m$($_.BaseName)$esc[0m" - Write-Host "" - oh-my-posh --config $($_.FullName) --pwd $PWD - Write-Host "" - } - ``` +> [!NOTE] +> This is not your Windows Terminal profile. Your PowerShell profile is a script that runs every time PowerShell starts. [Learn more about PowerShell profiles](/powershell/module/microsoft.powershell.core/about/about_profiles). - You can also browse the [prompt themes in the Oh My Posh docs](https://ohmyposh.dev/docs/themes). +## Customize your WSL prompt with Oh My Posh -3. Choose a theme and update your PowerShell `$PROFILE` file and WSL distribution `.bashrc` file. +Oh My Posh now allows you to customize WSL prompts, just like you would a PowerShell prompt using built-in themes. - For PowerShell, open your profile file with `notepad $PROFILE` and add the following: +### Install Oh My Posh for WSL - ```powershell - oh-my-posh --init --shell pwsh --config ~/AppData/Local/Programs/oh-my-posh/themes/jandedobbeleer.omp.json | Invoke-Expression - ``` +We recommend installing Oh My Posh for WSL, whether using Bash, Zsh, or something else, by following the [Linux install guide in the Oh My Posh docs](https://ohmyposh.dev/docs/linux). - Once added, reload your profile for the changes to take effect. +Currently the recommended path for customizing WSL prompts with Oh My Posh uses the [Homebrew package manager](https://brew.sh/) for installation. (Homebrew works with WSL now!) When installing Homebrew for Linux, be sure to follow [Next steps](https://docs.brew.sh/Homebrew-on-Linux#install) instructions to add Homebrew to your PATH and to your bash shell profile script. -4. For your WSL distribution, open your profile file with `nano .bashrc` and add the following. (Replacing `paradox.omp.json` with the theme of your choice. You can view the list in the `.poshthemes` folder that was added to your distributions directory.) +Homebrew will install: - ```bash - eval "$(oh-my-posh-wsl --init --shell bash --config ~/.poshthemes/paradox.omp.json)" - ``` +- `oh-my-posh` - Executable, added to /usr/local/bin +- `themes` - The latest Oh My Posh themes -Learn more by visiting the [Oh My Posh documentation](https://ohmyposh.dev/docs/windows). +### Choose and apply a WSL prompt theme -## Set your font in Windows Terminal settings +The Oh My Posh themes will be found in the oh-my-posh directory as JSON files. You can find it by entering `cd $(brew --prefix oh-my-posh)`, then just `cd themes` and `ls` for the list. For Ubuntu-20.04 running via WSL, the path is likely to be something like: `\\wsl.localhost\Ubuntu-20.04\home\linuxbrew\.linuxbrew\Cellar\oh-my-posh\6.34.1\themes`. You can also view what the themes look like in the Oh My Posh docs: [Themes](https://ohmyposh.dev/docs/themes). -To set a Nerd Font for use with Oh My Posh and Terminal Icons, open the Windows Terminal settings UI by selecting **Settings** (Ctrl+,) from your Windows Terminal dropdown menu. Select the Windows PowerShell profile, and then the **Appearance** tab. In the **Font face** drop-down menu, select *CaskaydiaCove Nerd Font* or whichever Nerd font you would like to use with your customized prompt. +To use a theme, copy it from the `themes` folder to your `$Home` folder, then add this line to the bottom of the `.profile` file found in your `$Home` folder: - +```bash +eval "$(oh-my-posh --init --shell bash --config ~/jandedobbeleer.omp.json)" +``` -> [!NOTE] -> If you decide to use [Cascadia Code PL](https://github.com/microsoft/cascadia-code/releases) as your terminal font, you may consider using an Oh My Posh theme that contains the `minimal` function, indicating that additional icons aren't required. +You can replace `jandedobbeleer.omp.json` with the name of whichever theme you prefer to use as long as it's copied to your `$Home` folder. -## Set up posh-git in PowerShell +Alternatively, if you are using oh-my-posh in both Windows with PowerShell and with WSL, you can share your PowerShell theme with WSL by pointing to a theme in your Windows user's home folder. In your WSL distribution's `.profile` path, replace ~ with the path: `/mnt/c/Users/`. Replacing `` with your own Windows username. You may also need to add `$env:POSH_PATH` to your $PATH if you have only installed the Oh My Posh executable for PowerShell. -Posh-git adds a Git status summary to your Windows Terminal prompt with information and tab completion for Git commands, parameters, remotes and branch names. + -1. Install posh-git using PowerShell with the command: +You can [customize the Oh My Posh themes](https://ohmyposh.dev/docs/linux#customize) if desired. - ```powershell - Install-Module posh-git -Scope CurrentUser - ``` +## Use Terminal-Icons to add missing folder or file icons -2. Update your PowerShell profile file: `notepad $PROFILE`. (You can replace nodepad with the text editor of your choice). +[Terminal-Icons](https://github.com/devblackops/Terminal-Icons) is a PowerShell module that adds file and folder icons that may be missing when displaying files or folders in Windows Terminal, looking up their appropriate icon based on name or extension. It attempts to use icons for well-known files/folders, but falls back to a generic file or folder icon if one is not found. - In your PowerShell profile, add the following to the end of the file: +To install Terminal-Icons with PowerShell, use the command: - ```powershell - Import-Module posh-git - ``` +```powershell +PS> Install-Module -Name Terminal-Icons -Repository PSGallery +``` -Your PowerShell command prompt will now display a status whenever you are inside of a Git directory. Learn more in the [posh-git repo on GitHub](https://github.com/dahlbyk/posh-git#using-posh-git). +For more information, including usage and commands, see the [Terminal-Icons](https://github.com/devblackops/Terminal-Icons) repo on GitHub. ## Additional resources * [Oh my Posh documentation](https://ohmyposh.dev) * [Terminal-Icons Repository](https://github.com/devblackops/Terminal-Icons) +* [Posh-Git documentation](https://github.com/dahlbyk/posh-git#overview): Posh-Git is a PowerShell module that integrates Git and PowerShell by providing Git status summary information that can be displayed in the PowerShell prompt. +* [PowerLine documentation](https://powerline.readthedocs.io/en/master/overview.html): Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome, i3 and Qtile. \ No newline at end of file From 0a19d0b676447201956111ee22a5861a5989f515 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Wed, 22 Dec 2021 11:24:12 -0800 Subject: [PATCH 04/63] Add themes link --- TerminalDocs/tutorials/custom-prompt-setup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index 318c121d..f24c3edf 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -88,7 +88,7 @@ Now, each new PowerShell instance will start by importing Oh My Posh and setting ## Customize your WSL prompt with Oh My Posh -Oh My Posh now allows you to customize WSL prompts, just like you would a PowerShell prompt using built-in themes. +Oh My Posh now allows you to customize WSL prompts, just like you would a PowerShell prompt using [built-in themes](https://ohmyposh.dev/docs/themes). ### Install Oh My Posh for WSL @@ -137,4 +137,4 @@ For more information, including usage and commands, see the [Terminal-Icons](htt * [Oh my Posh documentation](https://ohmyposh.dev) * [Terminal-Icons Repository](https://github.com/devblackops/Terminal-Icons) * [Posh-Git documentation](https://github.com/dahlbyk/posh-git#overview): Posh-Git is a PowerShell module that integrates Git and PowerShell by providing Git status summary information that can be displayed in the PowerShell prompt. -* [PowerLine documentation](https://powerline.readthedocs.io/en/master/overview.html): Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome, i3 and Qtile. \ No newline at end of file +* [PowerLine documentation](https://powerline.readthedocs.io/en/master/overview.html): Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome, i3 and Qtile. From ddd84324b5d611e7f5169c48ed020c9f2fb59c5a Mon Sep 17 00:00:00 2001 From: Alma Jenks Date: Wed, 22 Dec 2021 18:59:15 -0800 Subject: [PATCH 05/63] Bulk fix - Removing .localizationpriority (#469) --- TerminalDocs/command-palette.md | 1 - TerminalDocs/customize-settings/actions.md | 1 - TerminalDocs/customize-settings/appearance.md | 1 - TerminalDocs/customize-settings/color-schemes.md | 1 - TerminalDocs/customize-settings/interaction.md | 1 - TerminalDocs/customize-settings/profile-advanced.md | 1 - TerminalDocs/customize-settings/profile-appearance.md | 1 - TerminalDocs/customize-settings/profile-general.md | 1 - TerminalDocs/customize-settings/rendering.md | 1 - TerminalDocs/customize-settings/startup.md | 1 - TerminalDocs/index.md | 1 - TerminalDocs/install.md | 1 - TerminalDocs/samples.md | 1 - TerminalDocs/tips-and-tricks.md | 1 - TerminalDocs/troubleshooting.md | 1 - 15 files changed, 15 deletions(-) diff --git a/TerminalDocs/command-palette.md b/TerminalDocs/command-palette.md index 5038b60b..c3f86e4b 100644 --- a/TerminalDocs/command-palette.md +++ b/TerminalDocs/command-palette.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 02/25/2021 ms.topic: how-to -ms.localizationpriority: high --- # How to use the command palette in Windows Terminal diff --git a/TerminalDocs/customize-settings/actions.md b/TerminalDocs/customize-settings/actions.md index 33fa50eb..065f07de 100644 --- a/TerminalDocs/customize-settings/actions.md +++ b/TerminalDocs/customize-settings/actions.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 10/15/2021 ms.topic: how-to -ms.localizationpriority: high --- # Custom actions in Windows Terminal diff --git a/TerminalDocs/customize-settings/appearance.md b/TerminalDocs/customize-settings/appearance.md index 43aac31f..2afca423 100644 --- a/TerminalDocs/customize-settings/appearance.md +++ b/TerminalDocs/customize-settings/appearance.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 10/08/2021 ms.topic: how-to -ms.localizationpriority: high --- # Appearance settings in Windows Terminal diff --git a/TerminalDocs/customize-settings/color-schemes.md b/TerminalDocs/customize-settings/color-schemes.md index 9ceda390..4519d054 100644 --- a/TerminalDocs/customize-settings/color-schemes.md +++ b/TerminalDocs/customize-settings/color-schemes.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 04/14/2021 ms.topic: how-to -ms.localizationpriority: high --- # Color schemes in Windows Terminal diff --git a/TerminalDocs/customize-settings/interaction.md b/TerminalDocs/customize-settings/interaction.md index e6c239d7..85953bc4 100644 --- a/TerminalDocs/customize-settings/interaction.md +++ b/TerminalDocs/customize-settings/interaction.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 10/05/2021 ms.topic: how-to -ms.localizationpriority: high --- # Interaction settings in Windows Terminal diff --git a/TerminalDocs/customize-settings/profile-advanced.md b/TerminalDocs/customize-settings/profile-advanced.md index 30edab8c..7955ac49 100644 --- a/TerminalDocs/customize-settings/profile-advanced.md +++ b/TerminalDocs/customize-settings/profile-advanced.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 10/19/2021 ms.topic: how-to -ms.localizationpriority: high --- # Advanced profile settings in Windows Terminal diff --git a/TerminalDocs/customize-settings/profile-appearance.md b/TerminalDocs/customize-settings/profile-appearance.md index 4c4b3c9a..c1600bbc 100644 --- a/TerminalDocs/customize-settings/profile-appearance.md +++ b/TerminalDocs/customize-settings/profile-appearance.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 10/08/2021 ms.topic: how-to -ms.localizationpriority: high --- # Appearance profile settings in Windows Terminal diff --git a/TerminalDocs/customize-settings/profile-general.md b/TerminalDocs/customize-settings/profile-general.md index 1de941b4..68e99e60 100644 --- a/TerminalDocs/customize-settings/profile-general.md +++ b/TerminalDocs/customize-settings/profile-general.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 04/14/2021 ms.topic: how-to -ms.localizationpriority: high --- # General profile settings in Windows Terminal diff --git a/TerminalDocs/customize-settings/rendering.md b/TerminalDocs/customize-settings/rendering.md index 0c9097f3..d25ccd7e 100644 --- a/TerminalDocs/customize-settings/rendering.md +++ b/TerminalDocs/customize-settings/rendering.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 04/14/2021 ms.topic: how-to -ms.localizationpriority: high --- # Rendering settings in Windows Terminal diff --git a/TerminalDocs/customize-settings/startup.md b/TerminalDocs/customize-settings/startup.md index 4ccbf14b..cbf3ac03 100644 --- a/TerminalDocs/customize-settings/startup.md +++ b/TerminalDocs/customize-settings/startup.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 10/08/2021 ms.topic: how-to -ms.localizationpriority: high --- # Startup settings in Windows Terminal diff --git a/TerminalDocs/index.md b/TerminalDocs/index.md index 7c5c6fe0..76a73776 100644 --- a/TerminalDocs/index.md +++ b/TerminalDocs/index.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 09/22/2020 ms.topic: overview -ms.localizationpriority: high --- # What is Windows Terminal? diff --git a/TerminalDocs/install.md b/TerminalDocs/install.md index 2dbd3c36..40021659 100644 --- a/TerminalDocs/install.md +++ b/TerminalDocs/install.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 10/04/2021 ms.topic: quickstart -ms.localizationpriority: high --- # Install and get started setting up Windows Terminal diff --git a/TerminalDocs/samples.md b/TerminalDocs/samples.md index 254a66d9..01a37509 100644 --- a/TerminalDocs/samples.md +++ b/TerminalDocs/samples.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 11/16/2021 ms.topic: samples -ms.localizationpriority: medium --- # Windows Terminal sample code diff --git a/TerminalDocs/tips-and-tricks.md b/TerminalDocs/tips-and-tricks.md index be60b203..552826d1 100644 --- a/TerminalDocs/tips-and-tricks.md +++ b/TerminalDocs/tips-and-tricks.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 10/08/2021 ms.topic: how-to -ms.localizationpriority: high --- # Windows Terminal tips and tricks diff --git a/TerminalDocs/troubleshooting.md b/TerminalDocs/troubleshooting.md index dbaaf965..109ddf24 100644 --- a/TerminalDocs/troubleshooting.md +++ b/TerminalDocs/troubleshooting.md @@ -5,7 +5,6 @@ author: cinnamon-msft ms.author: cinnamon ms.date: 10/08/2021 ms.topic: overview -ms.localizationpriority: high --- # Troubleshooting in Windows Terminal From 141f84e03a59ae683c8c32238d5e3386acb32b13 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Tue, 4 Jan 2022 10:01:19 -0800 Subject: [PATCH 06/63] Testing image (#474) * Update new-tab-same-directory.md * Update new-tab-same-directory.md --- TerminalDocs/tutorials/new-tab-same-directory.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index 26573cf8..3dcda355 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -128,5 +128,5 @@ To open a new pane with the same path (and profile) as the currently active term the above actions are also available on the tab context menu, under the entries "Duplicate Tab" and "Split Pane". -[!duplicate-tab-same-cwd](../images/duplicate-tab-same-cwd.gif) -[!split-pane-same-cwd](../images/split-pane-same-cwd.gif) +![Image duplicate-tab-same-cwd](../images/duplicate-tab-same-cwd.gif) +![Image split-pane-same-cwd](../images/split-pane-same-cwd.gif) From f05111cc4158e4893324e530720bd6adb6fd37b2 Mon Sep 17 00:00:00 2001 From: Schuyler Rosefield Date: Tue, 4 Jan 2022 13:02:56 -0500 Subject: [PATCH 07/63] Include note on how to save the directory of a pane (#473) --- TerminalDocs/customize-settings/startup.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TerminalDocs/customize-settings/startup.md b/TerminalDocs/customize-settings/startup.md index cbf3ac03..c9022350 100644 --- a/TerminalDocs/customize-settings/startup.md +++ b/TerminalDocs/customize-settings/startup.md @@ -76,6 +76,8 @@ Note: Currently, Windows Terminal will save the following information: - The tab layout of each window, including the layout and profile of each pane, but not any contents of those panes +- If your shell is configured to report the [current working directory](../tutorials/new-tab-same-directory.md) that will be saved as well + **Property name:** `firstWindowPreference` **Necessity:** Optional From 66afc3d525c2e7656bcfa3b35e73439bab1492a8 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 6 Jan 2022 14:45:18 -0800 Subject: [PATCH 08/63] Add decimal value note for pane size Resolves https://github.com/MicrosoftDocs/terminal/issues/276 --- TerminalDocs/command-line-arguments.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/command-line-arguments.md b/TerminalDocs/command-line-arguments.md index 96732c29..7c0284a3 100644 --- a/TerminalDocs/command-line-arguments.md +++ b/TerminalDocs/command-line-arguments.md @@ -60,7 +60,7 @@ Below is the full list of supported commands and options for the `wt` command li | `split-pane`, `sp` | `--startingDirectory, -d starting-directory` | Creates a new split window pane based on the assigned starting directory path. If this parameter is not assigned, the default starting directory will be used. | Directory path | | `split-pane`, `sp` | `--title` | Creates a new split window pane with the assigned title. | Text to use as the tab title | | `split-pane`, `sp` | `--tabColor` | Creates a new split window pane with the assigned tab color. | Hex color as #RGB or #RRGGBB | -| `split-pane`, `sp` | `--size, -s size`| Creates a new split window pane with the assigned size. | Float that specifies the portion of the parent pane to use | +| `split-pane`, `sp` | `--size, -s size`| Creates a new split window pane with the assigned size. | Float that specifies the portion of the parent pane to use represented by a decimal. For example, `.4` to represent 40% of the parent pane. | | `split-pane`, `sp` | `commandline` | Creates a new split window pane based on the assigned command line. | Executable with optional commands | | `split-pane`, `sp` | `--duplicate, -D` | Creates a new split window pane that is a duplicate of the current pane. | N/A. No additional values to assign. | From 037876dddb2770d4d337e1ccd75f2407a04bae38 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 6 Jan 2022 16:06:21 -0800 Subject: [PATCH 09/63] Remove VS PowerShell and CMD for 3rd party ..these are now officially dynamic profiles.. so no longer need to be added as 3rd party as of Terminal v. 1.12. :) --- TerminalDocs/dynamic-profiles.md | 40 +------------------------------- 1 file changed, 1 insertion(+), 39 deletions(-) diff --git a/TerminalDocs/dynamic-profiles.md b/TerminalDocs/dynamic-profiles.md index 93f26070..42b95951 100644 --- a/TerminalDocs/dynamic-profiles.md +++ b/TerminalDocs/dynamic-profiles.md @@ -3,7 +3,7 @@ title: Windows Terminal Dynamic Profiles description: Learn about dynamic profiles in Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 08/30/2021 +ms.date: 01/06/2022 ms.topic: conceptual --- @@ -137,41 +137,3 @@ Assuming that you've installed MSYS2 into `C:\\msys64`: ``` For more details, see the Terminals section of the [MSYS2 documentation](https://www.msys2.org/docs/terminals/#windows-terminal). - -### Developer Command Prompt for Visual Studio - -Assuming that you've installed [Visual Studio](/visualstudio/install/install-visual-studio): - -```json -{ - "name": "Developer Command Prompt", - "commandline": "cmd.exe /k \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/Common7/Tools/VsDevCmd.bat\"", - "startingDirectory": "%USERPROFILE%" -} -``` - -> [!NOTE] -> Visual Studio’s “Developer Powershell” and “Developer Command Prompt” include shell environment variables and tools settings that would not be available in the default Command Prompt or Powershell instance. - -### Developer Powershell for Visual Studio - -Assuming that you've installed [Visual Studio](/visualstudio/install/install-visual-studio): - -```json -{ - "name": "Developer Powershell", - "commandline": "powershell.exe -noe -c \"&{Import-Module \"\"\"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"\"\"; Enter-VsDevShell 994a9d58}\"" -} -``` - -To find the `commandline` path to use in the Windows Terminal settings for your Visual Studio instance: - -1. Find the shortcut to `Developer Powershell for VS 2019` in the start menu -2. Right-click and select `Open File Location` -3. Right-click and select `Properties` on the shortcut -4. Inspect the `Target` field. It will be some value like `C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noe -c "&{Import-Module """C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell 994a9d58}"` -5. Use `Target` field value to update the file path for `Import-Module` in the profile `commandline` -6. Use `Target` field value to update the unique instance ID used with the `Enter-VsDevShell` command in the profile `commandline` - -> [!NOTE] -> Visual Studio’s “Developer Powershell” and “Developer Command Prompt” include shell environment variables and tools settings that would not be available in the default Command Prompt or Powershell instance. From ca7677a3b7fbff2d672c09b12dd031d8c9f4eeee Mon Sep 17 00:00:00 2001 From: mattwojo Date: Fri, 7 Jan 2022 11:22:27 -0800 Subject: [PATCH 10/63] Add faq for psreadline --- TerminalDocs/faq.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/TerminalDocs/faq.yml b/TerminalDocs/faq.yml index b3d6c744..6e5acb9f 100644 --- a/TerminalDocs/faq.yml +++ b/TerminalDocs/faq.yml @@ -3,7 +3,7 @@ metadata: title: Windows Terminal FAQ description: Frequently asked questions about Windows Terminal, such as how to start terminal in administrator mode, how to save a terminal session, and more. ms.topic: troubleshooting - ms.date: 12/09/2021 + ms.date: 01/06/2022 ms.author: mattwoj author: mattwojo manager: jken @@ -96,6 +96,17 @@ sections: ![Screenshot of filing an issue in terminal repo](./images/file-issue.png) + - question: How can I customize PowerShell prompt colors using PSReadLine? + answer: | + The PSReadLine module is responsible for setting the colors and behavior of your PowerShell command line. You can set colors for specific attributes of your PowerShell prompt by using the [Set-PSReadLineOption, see Example 4: Set multiple color options](/powershell/module/psreadline/set-psreadlineoption.md#example-4--set-multiple-color-options). + + ```powershell + Set-PSReadLineOption -Colors @{ + Number = 'Magenta' + Member = 'DarkGray' + } + ``` + # - question: Is there a way to sync your terminal settings across devices? # answer: | # TBD @@ -103,7 +114,3 @@ sections: # - question: Can we expect a status bar on the bottom of Windows Terminal? # answer: | # TBD - - # - question: TBD - # answer: | - # TBD \ No newline at end of file From cc08ae4dc3bab9b440b82a1c06a7f5ea9a27cb2d Mon Sep 17 00:00:00 2001 From: mattwojo Date: Fri, 7 Jan 2022 11:30:37 -0800 Subject: [PATCH 11/63] Fix formatting --- TerminalDocs/faq.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TerminalDocs/faq.yml b/TerminalDocs/faq.yml index 6e5acb9f..4cda978f 100644 --- a/TerminalDocs/faq.yml +++ b/TerminalDocs/faq.yml @@ -96,8 +96,8 @@ sections: ![Screenshot of filing an issue in terminal repo](./images/file-issue.png) - - question: How can I customize PowerShell prompt colors using PSReadLine? - answer: | + - question: How can I customize PowerShell prompt colors using PSReadLine? + answer: | The PSReadLine module is responsible for setting the colors and behavior of your PowerShell command line. You can set colors for specific attributes of your PowerShell prompt by using the [Set-PSReadLineOption, see Example 4: Set multiple color options](/powershell/module/psreadline/set-psreadlineoption.md#example-4--set-multiple-color-options). ```powershell From 7c6b1fb7d458710c8694d5478d7b1998d4142e18 Mon Sep 17 00:00:00 2001 From: mattwojo Date: Fri, 7 Jan 2022 11:37:52 -0800 Subject: [PATCH 12/63] Remove space before code block --- TerminalDocs/faq.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/TerminalDocs/faq.yml b/TerminalDocs/faq.yml index 4cda978f..2b8048a6 100644 --- a/TerminalDocs/faq.yml +++ b/TerminalDocs/faq.yml @@ -99,7 +99,6 @@ sections: - question: How can I customize PowerShell prompt colors using PSReadLine? answer: | The PSReadLine module is responsible for setting the colors and behavior of your PowerShell command line. You can set colors for specific attributes of your PowerShell prompt by using the [Set-PSReadLineOption, see Example 4: Set multiple color options](/powershell/module/psreadline/set-psreadlineoption.md#example-4--set-multiple-color-options). - ```powershell Set-PSReadLineOption -Colors @{ Number = 'Magenta' From 77f489ef883ff370cc29dcf6c85ea672f323d774 Mon Sep 17 00:00:00 2001 From: mattwojo Date: Fri, 7 Jan 2022 11:48:57 -0800 Subject: [PATCH 13/63] Remove code block --- TerminalDocs/faq.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/TerminalDocs/faq.yml b/TerminalDocs/faq.yml index 2b8048a6..64b6f47a 100644 --- a/TerminalDocs/faq.yml +++ b/TerminalDocs/faq.yml @@ -99,12 +99,6 @@ sections: - question: How can I customize PowerShell prompt colors using PSReadLine? answer: | The PSReadLine module is responsible for setting the colors and behavior of your PowerShell command line. You can set colors for specific attributes of your PowerShell prompt by using the [Set-PSReadLineOption, see Example 4: Set multiple color options](/powershell/module/psreadline/set-psreadlineoption.md#example-4--set-multiple-color-options). - ```powershell - Set-PSReadLineOption -Colors @{ - Number = 'Magenta' - Member = 'DarkGray' - } - ``` # - question: Is there a way to sync your terminal settings across devices? # answer: | From 82364b6ca17eddadb25b61bd3782ab818f3b57ce Mon Sep 17 00:00:00 2001 From: mattwojo Date: Fri, 7 Jan 2022 11:55:54 -0800 Subject: [PATCH 14/63] Fix link --- TerminalDocs/faq.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/faq.yml b/TerminalDocs/faq.yml index 64b6f47a..d2c260dd 100644 --- a/TerminalDocs/faq.yml +++ b/TerminalDocs/faq.yml @@ -98,7 +98,7 @@ sections: - question: How can I customize PowerShell prompt colors using PSReadLine? answer: | - The PSReadLine module is responsible for setting the colors and behavior of your PowerShell command line. You can set colors for specific attributes of your PowerShell prompt by using the [Set-PSReadLineOption, see Example 4: Set multiple color options](/powershell/module/psreadline/set-psreadlineoption.md#example-4--set-multiple-color-options). + The PSReadLine module is responsible for setting the colors and behavior of your PowerShell command line. You can set colors for specific attributes of your PowerShell prompt by using the [Set-PSReadLineOption, see Example 4: Set multiple color options](/powershell/module/psreadline/set-psreadlineoption#example-4--set-multiple-color-options). # - question: Is there a way to sync your terminal settings across devices? # answer: | From 7cd48bcb462a754b690e28586b551f770bd1f35c Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Fri, 7 Jan 2022 16:19:27 -0800 Subject: [PATCH 15/63] startingDirectory path for WSL no longer requires prefix --- TerminalDocs/troubleshooting.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/TerminalDocs/troubleshooting.md b/TerminalDocs/troubleshooting.md index 109ddf24..996c7fc8 100644 --- a/TerminalDocs/troubleshooting.md +++ b/TerminalDocs/troubleshooting.md @@ -20,11 +20,17 @@ If you click on the "settings" button in the dropdown, the Terminal will attempt ## Set your WSL distribution to start in the home `~` directory when launched -By default, the `startingDirectory` of a profile is `%USERPROFILE%` (`C:\Users\`). This is a Windows path. For WSL, however, you may want to use the WSL home path instead. `startingDirectory` only accepts a Windows-style path, so setting it to start within a WSL distribution requires a prefix. +By default, the `startingDirectory` of a profile is `%USERPROFILE%` (`C:\Users\`). This is a Windows path. For WSL distributions, the file systems are now directly referenced, as of Windows Terminal [version 1.12.3472.0](https://github.com/microsoft/terminal/releases). You can use `/home/` to directly refer to your home folder. For example, the following setting will launch the "Ubuntu-20.04" distribution in its home file path: -Beginning in Windows 10 version 1903, the file systems of WSL distributions can be addressed using the `\\wsl$\` prefix. For any WSL distribution with the name `DistroName`, use `\\wsl$\DistroName` as a Windows path that points to the root of that distribution's file system. +```json +{ + "name": "Ubuntu-20.04", + "commandline" : "wsl -d Ubuntu-20.04", + "startingDirectory" : "/home/" +} +``` -For example, the following setting will launch the "Ubuntu-18.04" distribution in its home file path: +If you are using an earlier version of Windows Terminal, WSL may require using the `\\wsl$\` prefix when referring to a distribution's home path for the `startingDirectory` setting. For example, in earlier versions of Windows Terminal the following setting will launch the "Ubuntu-18.04" distribution in its home file path: ```json { From 9d476b91a48dd308fb2e0558087b10b4d9e5af7c Mon Sep 17 00:00:00 2001 From: Sanam <31341013+sanamhub@users.noreply.github.com> Date: Thu, 13 Jan 2022 01:49:22 +0545 Subject: [PATCH 16/63] Update custom-prompt-setup.md (#482) --- TerminalDocs/tutorials/custom-prompt-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index f24c3edf..60105b45 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -127,7 +127,7 @@ You can [customize the Oh My Posh themes](https://ohmyposh.dev/docs/linux#custom To install Terminal-Icons with PowerShell, use the command: ```powershell -PS> Install-Module -Name Terminal-Icons -Repository PSGallery +Install-Module -Name Terminal-Icons -Repository PSGallery ``` For more information, including usage and commands, see the [Terminal-Icons](https://github.com/devblackops/Terminal-Icons) repo on GitHub. From 2ccc36cf806cd03dcec6d6b6615a9dd3b21bacd7 Mon Sep 17 00:00:00 2001 From: Haltarys <45515869+Haltarys@users.noreply.github.com> Date: Thu, 20 Jan 2022 23:56:55 +0100 Subject: [PATCH 17/63] style: fix typo in new-tab-same-directory.md (#486) "it's" should be "its" because it wouldn't make sense otherwise. --- TerminalDocs/tutorials/new-tab-same-directory.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index 3dcda355..fc5c3335 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -19,7 +19,7 @@ Fortunately, there's a workaround. Applications can emit a special escape sequen In this tutorial, you learn how to: > [!div class="checklist"] -> * Configure the shell to tell the Terminal about it's current working directory +> * Configure the shell to tell the Terminal about its current working directory > * Use the `duplicateTab` action to open a tab with the same CWD > * Use the `splitPane` action to open a pane with the same CWD > * Using the tab context menu to open tabs or panes with the same CWD From db0bb849c0ae0566b5b33e8f6daacbfa014f9e8c Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 20 Jan 2022 15:28:36 -0800 Subject: [PATCH 18/63] Updated based on pull 9270 in Terminal repo --- TerminalDocs/customize-settings/profile-advanced.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/customize-settings/profile-advanced.md b/TerminalDocs/customize-settings/profile-advanced.md index 7955ac49..3c46bda0 100644 --- a/TerminalDocs/customize-settings/profile-advanced.md +++ b/TerminalDocs/customize-settings/profile-advanced.md @@ -129,7 +129,7 @@ Controls what happens when the application emits a BEL character. When set to `" **Necessity:** Optional -**Accepts:** `"all"`, `"audible"`, `"visual"`, `"none"` +**Accepts:** `"all"`, `"audible"`, `"window"`, `"taskbar"`, `"none"` **Default value:** `"audible"` From c0291c6207a8799e6b26ca43d0a7c149b2a8394e Mon Sep 17 00:00:00 2001 From: Nikolas Grottendieck Date: Fri, 21 Jan 2022 00:30:48 +0100 Subject: [PATCH 19/63] GUID generation for dynamic fragments (#320) (#460) Add information on GUID generation based on https://github.com/microsoft/terminal/issues/10374 and improve wording to make the importance of a profile GUID clearer. --- TerminalDocs/json-fragment-extensions.md | 75 +++++++++++++++++++----- 1 file changed, 60 insertions(+), 15 deletions(-) diff --git a/TerminalDocs/json-fragment-extensions.md b/TerminalDocs/json-fragment-extensions.md index a0eef516..9086dd1f 100644 --- a/TerminalDocs/json-fragment-extensions.md +++ b/TerminalDocs/json-fragment-extensions.md @@ -11,16 +11,16 @@ ms.topic: how-to JSON fragment extensions are snippets of JSON that application developers can write to add new profiles to users' settings, or even modify certain existing profiles. They can also be used to add new color schemes to users' settings. -## Structure of the JSON files +## Structure of the JSON files -The JSON file should be split up into 2 lists, one for profiles and one for schemes. Here is an example of a json file that adds a new profile, modifies an existing profile, and creates a new color scheme: +The JSON file should be split up into 2 lists, one for profiles and one for schemes. Here is an example of a json file that adds a new profile, modifies an existing profile, and creates a new color scheme: -```JSON +```JSON { "profiles": [ { - // update the profile with the GUID below - "updates": "{2c4de342-38b7-51cf-b940-23e9ae97f518}", + // update a profile by using its GUID + "updates": "{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}", "fontSize": 16, "fontWeight": "thin" }, @@ -37,14 +37,13 @@ The JSON file should be split up into 2 lists, one for profiles and one for sche { // create a new color scheme "name": "Postmodern Tango Light", - "black": "#0C0C0C", "red": "#C50F1F", "green": "#13A10E", "yellow": "#C19C00", "blue": "#0037DA", "purple": "#881798", - "cyan": "#3A96DD", + "cyan": "#3A96DD", "white": "#CCCCCC", "brightBlack": "#767676", "brightRed": "#E74856", @@ -65,25 +64,71 @@ In the `"schemes"` list, a new color scheme called "Postmodern Tango Light" is d Of course, if the developer only wishes to add/modify profiles without adding color schemes (and vice-versa), only the relevant list needs to be present and the other list can be omitted. -## How to determine the GUID of an existing profile +## Profile GUIDs + +As previously stated profile GUIDs are a way to reference profiles and let users update and extend them without worrying about location or name changes. The only profiles that can be modified through fragments are the default profiles, Command Prompt and PowerShell, as well as [dynamic profiles](./dynamic-profiles.md). Providing a GUID is optional, however, strongly encouraged. + +The GUIDs are generated using a Version 5 UUID generator which supports BOM-less UTF-16LE encoding. + +The namespace GUID for Windows Terminal in case of profiles created by plugins and fragments is `{f65ddb7e-706b-4499-8a50-40313caf510a}`. Profiles created by the Windows Terminal Team use a separate GUID (`{2bde4a90-d05f-401c-9492-e40884ead1d8}`). This is done to disambiguate profiles created by the Windows Terminal Team from profiles created by plugins or fragments so they can never accidentally collide. + +### How to determine the GUID of an existing profile + +To determine the GUID of a profile to be updated it depends on what kind of profile it is: + +A profile shipped by a third party stored in a standard Windows Terminal Fragment location requires the profile & fragment namespace GUID `{f65ddb7e-706b-4499-8a50-40313caf510a}`, the application namespace GUID, and the profile name. For a profile fragment named 'Git Bash' supplied by the application 'Git' the generated GUID is: `{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}`. + +A profile automatically generated by Windows Terminal requires the Windows Terminal internal GUID `{2bde4a90-d05f-401c-9492-e40884ead1d8}` and the profile name. For a profile named 'Ubuntu' automatically generated during WSL installation, the resulting GUID is: `{2c4de342-38b7-51cf-b940-2309a097f518}`. In contrast to the previous fragment example there is no 'application name' involved. + +### Generating a new profile GUID + +To generate a GUID for a completely new profile prior to distributing it you can use the following Python 3 example. It generates a GUID based on the profile & fragment namespace GUID for a profile called 'Git Bash' stored in a standard Windows Terminal Fragments folder under the 'Git' application name, conveniently matching the sanity check. + +```python +import uuid -The only profiles that can be modified through fragments are the default profiles, Command Prompt and PowerShell, as well as [dynamic profiles](./dynamic-profiles.md). To determine the GUID of the profile to be updated, use a Version 5 UUID generator with the following namespace GUID and name: +# The Windows Terminal namespace GUID for custom profiles & fragments +terminalNamespaceGUID = uuid.UUID("{f65ddb7e-706b-4499-8a50-40313caf510a}") -- The namespace GUID: `{2BDE4A90-D05F-401C-9492-E40884EAD1D8}` -- The name of the profile to be updated +# The Application Namespace GUID +appNamespaceGUID = uuid.uuid5(terminalNamespaceGUID, "Git".encode("UTF-16LE").decode("ASCII")) -As a sanity check, a profile called 'Ubuntu' will get the generated GUID: `{2C4DE342-38B7-51CF-B940-2309A097F518}` +# Calculate the example GUID for the 'Git Bash' profile +profileGUID = uuid.uuid5(appNamespaceGUID, "Git Bash".encode("UTF-16LE").decode("ASCII")) + +# Output the GUID +print(profileGUID) + +``` + +### Calculating a GUID for a built in profile + +To calculate a GUID for a built in profile, such as the automatically generated WSL profiles, you can use the following Python 3 example. It calculates a GUID based on the Windows Terminal namespace GUID for a profile called 'Ubuntu' that was automatically generated for the WSL distribution, conveniently matching the sanity check. + +```python +import uuid + +# The Windows Terminal namespace GUID automatically generated profiles +terminalNamespaceGUID = uuid.UUID("{2bde4a90-d05f-401c-9492-e40884ead1d8}") + +# Calculate the example GUID for the 'Git Bash' profile +profileGUID = uuid.uuid5(terminalNamespaceGUID, "Ubuntu".encode("UTF-16LE").decode("ASCII")) + +# Output the GUID +print(profileGUID) + +``` -## Minimum requirements for settings added with fragments +## Minimum requirements for settings added with fragments There are some minimal restrictions on what can be added to user settings using JSON fragments: - For new profiles added via fragments, the new profile must, at a minimum, define a name for itself. -- For new color schemes added via fragments, the new color scheme must define a name for itself, as well as define every color in the color table (i.e. the colors "black" through "brightYellow" in the example image above). +- For new color schemes added via fragments, the new color scheme must define a name for itself, as well as define every color in the color table (i.e. the colors "black" through "brightWhite" in the example image above). ## Where to place the JSON fragment files -The location to place the JSON fragment files varies depending on the installation method of the application that wishes to place them. +The location to place the JSON fragment files varies depending on the installation method of the application that wishes to place them. ### Microsoft Store applications From 8fe25d19b8e3a921fab2c988eff387e47d77a39e Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 20 Jan 2022 15:34:59 -0800 Subject: [PATCH 20/63] FIx to close https://github.com/MicrosoftDocs/terminal/issues/484 --- TerminalDocs/customize-settings/startup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TerminalDocs/customize-settings/startup.md b/TerminalDocs/customize-settings/startup.md index c9022350..1924dc8b 100644 --- a/TerminalDocs/customize-settings/startup.md +++ b/TerminalDocs/customize-settings/startup.md @@ -181,8 +181,8 @@ When set to `true`, the terminal window will auto-center itself on the display i This interacts with the other launch settings in the following ways: -* `"initialPosition": x,y`, `"centerOnLaunch": true`, `"launchMode": "default"`: center on the monitor that `x,y` is on. -* `"initialPosition": x,y`, `"centerOnLaunch": true`, `"launchMode": "maximized"`: maximized on the monitor that `x,y` is on (`centerOnLaunch` adds nothing). +* `"initialPosition": "x,y"`, `"centerOnLaunch": true`, `"launchMode": "default"`: center on the monitor that `x,y` is on. +* `"initialPosition": "x,y"`, `"centerOnLaunch": true`, `"launchMode": "maximized"`: maximized on the monitor that `x,y` is on (`centerOnLaunch` adds nothing). * `"initialPosition": `, `"centerOnLaunch": true`, `"launchMode": "default"`: center on the default monitor. * `"initialPosition": `, `"centerOnLaunch": true`, `"launchMode": "focus"`: center and enter focus mode on the default monitor. * `"initialPosition": `, `"centerOnLaunch": true`, `"launchMode": "maximized"`: maximized on the default monitor (`centerOnLaunch` adds nothing). From fdd26852eca382e9e9ebf55a61874acc810a03f4 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 20 Jan 2022 15:42:44 -0800 Subject: [PATCH 21/63] Typo Resolves https://github.com/MicrosoftDocs/terminal/issues/483 --- TerminalDocs/faq.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/faq.yml b/TerminalDocs/faq.yml index d2c260dd..b4292b6b 100644 --- a/TerminalDocs/faq.yml +++ b/TerminalDocs/faq.yml @@ -82,7 +82,7 @@ sections: - question: What is conhost.exe? answer: | - The Windows Console host, conhost.exe, is Windows' original command-line user experience. It also hosts Windows' command-line infrastructure and the Windows Console API server, input engine, rendering engine, user preferences, etc. A primary goal of Windows Console is to maintain backward compatibility, thus adding new features became prohibitive and let to the creation of the Windows Terminal. Learn more in the [Windows Terminal open-source repo](https://github.com/Microsoft/terminal#the-windows-console-host) and in the [WIndows Console docs](/windows/console/definitions#console-host). + The Windows Console host, conhost.exe, is Windows' original command-line user experience. It also hosts Windows' command-line infrastructure and the Windows Console API server, input engine, rendering engine, user preferences, etc. A primary goal of Windows Console is to maintain backward compatibility, thus adding new features became prohibitive and led to the creation of the Windows Terminal. Learn more in the [Windows Terminal open-source repo](https://github.com/Microsoft/terminal#the-windows-console-host) and in the [WIndows Console docs](/windows/console/definitions#console-host). - question: Can I save the layout of all of my open console windows when closing Windows Terminal and restore them when starting a new session? answer: | From 223fd23c380e647503baade15afbb28d4763581f Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 20 Jan 2022 16:58:06 -0800 Subject: [PATCH 22/63] Add UTF8 note Resolves https://github.com/MicrosoftDocs/terminal/issues/339 --- TerminalDocs/json-fragment-extensions.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TerminalDocs/json-fragment-extensions.md b/TerminalDocs/json-fragment-extensions.md index 9086dd1f..3fe62e46 100644 --- a/TerminalDocs/json-fragment-extensions.md +++ b/TerminalDocs/json-fragment-extensions.md @@ -64,6 +64,14 @@ In the `"schemes"` list, a new color scheme called "Postmodern Tango Light" is d Of course, if the developer only wishes to add/modify profiles without adding color schemes (and vice-versa), only the relevant list needs to be present and the other list can be omitted. +> [!NOTE] +> If you plan to use PowerShell to generate fragments, you must use `-Encoding Utf8`: +> `# BAD: PowerShell uses UTF16LE by default` +> `Write-Output $fragmentJson > $fragmentPath` +> `# GOOD: Uses UTF8, so Terminal will read this` +> `Write-Output $fragmentJson | Out-File $fragmentPath -Encoding Utf8` +> If you are using VS Code to edit the JSON, UTF8 is the default, but you can confirm in the bottom status bar. + ## Profile GUIDs As previously stated profile GUIDs are a way to reference profiles and let users update and extend them without worrying about location or name changes. The only profiles that can be modified through fragments are the default profiles, Command Prompt and PowerShell, as well as [dynamic profiles](./dynamic-profiles.md). Providing a GUID is optional, however, strongly encouraged. From c7fafdf77739702a769d72a3e7040f137232cec8 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 20 Jan 2022 17:03:04 -0800 Subject: [PATCH 23/63] Fix note formatting --- TerminalDocs/json-fragment-extensions.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/TerminalDocs/json-fragment-extensions.md b/TerminalDocs/json-fragment-extensions.md index 3fe62e46..7f3073eb 100644 --- a/TerminalDocs/json-fragment-extensions.md +++ b/TerminalDocs/json-fragment-extensions.md @@ -66,10 +66,15 @@ Of course, if the developer only wishes to add/modify profiles without adding co > [!NOTE] > If you plan to use PowerShell to generate fragments, you must use `-Encoding Utf8`: -> `# BAD: PowerShell uses UTF16LE by default` -> `Write-Output $fragmentJson > $fragmentPath` -> `# GOOD: Uses UTF8, so Terminal will read this` -> `Write-Output $fragmentJson | Out-File $fragmentPath -Encoding Utf8` +> ```powershell +> # BAD: PowerShell uses UTF16LE by default +> Write-Output $fragmentJson > $fragmentPath +> ``` +> +> ```powershell +> # GOOD: Uses UTF8, so Terminal will read this +> Write-Output $fragmentJson | Out-File $fragmentPath -Encoding Utf8 +> ``` > If you are using VS Code to edit the JSON, UTF8 is the default, but you can confirm in the bottom status bar. ## Profile GUIDs From 51ca48b7b2aea927aa52e54d77bae653ac61d5ca Mon Sep 17 00:00:00 2001 From: Kayla Cinnamon Date: Thu, 3 Feb 2022 10:23:46 -0800 Subject: [PATCH 24/63] Merge release-1.13 into main (#492) Co-authored-by: Matt Wojciakowski Co-authored-by: Mike Griese --- TerminalDocs/customize-settings/actions.md | 92 ++++++++++++++++--- .../customize-settings/interaction.md | 19 +++- .../customize-settings/profile-advanced.md | 21 ++++- .../customize-settings/profile-appearance.md | 11 +-- .../customize-settings/profile-general.md | 27 +++++- TerminalDocs/customize-settings/startup.md | 7 +- TerminalDocs/faq.yml | 8 +- 7 files changed, 154 insertions(+), 31 deletions(-) diff --git a/TerminalDocs/customize-settings/actions.md b/TerminalDocs/customize-settings/actions.md index 065f07de..098cd8d0 100644 --- a/TerminalDocs/customize-settings/actions.md +++ b/TerminalDocs/customize-settings/actions.md @@ -3,7 +3,7 @@ title: Windows Terminal Actions description: Learn how to create custom actions for Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/15/2021 +ms.date: 02/03/2022 ms.topic: how-to --- @@ -132,7 +132,7 @@ ___ ## Application-level commands -### Quit ([Preview](https://aka.ms/terminal-preview)) +### Quit This closes all open terminal windows. A confirmation dialog will appear in the current window to ensure you'd like to close all windows. @@ -144,9 +144,6 @@ This closes all open terminal windows. A confirmation dialog will appear in the { "command": "quit" } ``` -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). - ### Close window :::row::: @@ -398,12 +395,16 @@ This creates a new tab. Without any arguments, this will open the default profil | ---- | --------- | ------- | ----------- | | `commandline` | Optional | Executable file name as a string | Executable run within the tab. | | `startingDirectory` | Optional | Folder location as a string | Directory in which the tab will open. | +| `elevate` | Optional | `true`, `false`, `null` | Overrides the [`elevate`](./profile-general.md#automatically-run-as-administrator-preview) property of the profile. When omitted, this action will behave according to the profile's `elevate` setting. When set to `true` or `false`, this action will behave as though the profile was set with `"elevate": true` or `"elevate": false` (respectively). | | `tabTitle` | Optional | String | Title of the new tab. | | `index` | Optional | Integer | Profile that will open based on its position in the dropdown (starting at 0). | | `profile` | Optional | Profile's name or GUID as a string | Profile that will open based on its GUID or name. | | `colorScheme` | Optional | The name of a color scheme as a string | The scheme to use instead of the profile's set `colorScheme` | | `suppressApplicationTitle` | Optional | `true`, `false` | When set to `false`, applications can change the tab title by sending title change messages. When set to `true`, these messages are suppressed. If not provided, the behavior is inherited from the profile's settings. In order to enter a new tab title and have that title persist, this must be set to true. | +> [!IMPORTANT] +> The `elevate` property is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + ### Open next tab This opens the tab to the right of the current one. @@ -796,6 +797,7 @@ This halves the size of the active pane and opens another. Without any arguments | `split` | Required | `"vertical"`, `"horizontal"`, `"auto"`, `"up"`, `"right"`, `"down"`, `"left"` | How the pane will split. `"auto"` will split in the direction that provides the most surface area. | | `commandline` | Optional | Executable file name as a string | Executable run within the pane. | | `startingDirectory` | Optional | Folder location as a string | Directory in which the pane will open. | +| `elevate` | Optional | `true`, `false`, `null` | Overrides the [`elevate`](./profile-general.md#automatically-run-as-administrator-preview) property of the profile. When omitted, this action will behave according to the profile's `elevate` setting. When set to `true` or `false`, this action will behave as though the profile was set with `"elevate": true` or `"elevate": false` (respectively). | | `tabTitle` | Optional | String | Title of the tab when the new pane is focused. | | `index` | Optional | Integer | Profile that will open based on its position in the dropdown (starting at 0). | | `profile` | Optional | Profile's name or GUID as a string | Profile that will open based on its GUID or name. | @@ -805,7 +807,7 @@ This halves the size of the active pane and opens another. Without any arguments | `size` | Optional | Float | Specify how large the new pane should be, as a fraction of the current pane's size. `1.0` would be "all of the current pane", and `0.0` is "None of the parent". Defaults to `0.5`. | > [!IMPORTANT] -> The `"up"`, `"right"`, `"down"`, and `"left"` options for `split` are only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). +> The `elevate` property is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview).
@@ -837,7 +839,7 @@ This copies the selected terminal content to your clipboard. If no selection exi | `singleLine` | Optional | `true`, `false` | When `true`, the copied content will be copied as a single line. When `false`, newlines persist from the selected text. | | `copyFormatting` | Optional | `true`, `false`, `"all"`, `"none"`, `"html"`, `"rtf"` | When `true`, the color and font formatting of the selected text is also copied to your clipboard. When `false`, only plain text is copied to your clipboard. You can also specify which formats you would like to copy. When `null`, the global `"copyFormatting"` behavior is inherited. | -### Keyboard Selection ([Preview](https://aka.ms/terminal-preview)) +### Keyboard selection This modifies an existing selection. If no selection exists, the key chord is sent directly to the terminal. @@ -874,9 +876,6 @@ This modifies an existing selection. If no selection exists, the key chord is se | `direction` | Required | `"left"`, `"right"`, `"up"`, `"down"` | Direction in which the selection endpoint will move. | | `mode` | Required | `"char"`, `"word"`, `"view"`, `"buffer"` | Controls how much the endpoint moves by. | -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). - ### Paste This inserts the content that was copied onto the clipboard. @@ -986,6 +985,24 @@ This scrolls the screen down to the bottom of the input buffer.
+### Clear buffer + +This action can be used to manually clear the terminal buffer. This is useful for scenarios where you're not sitting at a command-line shell prompt and can't easily run `Clear-Host`/`cls`/`clear`. + +**Command name:** `clearBuffer` + +**Default bindings:** + +```json +{ "command": { "action": "clearBuffer", "clear": "all" } } +``` + +#### Actions + +| Name | Necessity | Accepts | Description | +| ---- | --------- | ------- | ----------- | +| `clear` | Optional | `"screen"`, `"scrollback"`, `"all"` | What part of the screen to clear.
  • `"screen"`: Clear the terminal viewport content. Leaves the scrollback untouched. Moves the cursor row to the top of the viewport (unmodified).
  • `"scrollback"`: Clear the scrollback. Leaves the viewport untouched.
  • `"all"` (_default_): Clear the scrollback and the visible viewport. Moves the cursor row to the top of the viewport.
| + ___ ## Visual adjustment commands @@ -1024,6 +1041,31 @@ This resets the text size to the default value. { "command": "resetFontSize", "keys": "ctrl+numpad_0" } ``` +### Adjust opacity ([Preview](https://aka.ms/terminal-preview)) + +This changes the opacity of the window. If `relative` is set to true, it will adjust the opacity relative to the current opacity. Otherwise, it will set the opacity directly to the given `opacity` + +**Command name:** `adjustOpacity` + +**Default bindings:** + +```json +{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 0 } }, +{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 25 } }, +{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 50 } }, +{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 100 } } +``` + +#### Actions + +| Name | Necessity | Accepts | Description | +| ---- | --------- | ------- | ----------- | +| `opacity` | Optional | Integer | How opaque the terminal should become or how much the opacity should be changed by, depending on the value of `relative` | +| `relative` | Optional | Boolean | If true, then adjust the current opacity by the given `opacity` parameter. If false, set the opacity to exactly that value. | + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + ### Toggle pixel shader effects This toggles any pixel shader effects enabled in the terminal. If the user specified a valid shader with `experimental.pixelShaderPath`, this action will toggle that shader on/off. This will also toggle the "retro terminal effect", which is enabled with the profile setting `experimental.retroTerminalEffect`. @@ -1061,6 +1103,31 @@ Changes the active color scheme. ___ +## Buffer exporting + +### Export buffer ([Preview](https://aka.ms/terminal-preview)) + +This allows the user to export the text of the buffer to a file. If the file doesn't exist, it will be created. If the file already exists, its contents will be replaced with the Terminal buffer text. + +**Command name:** `exportBuffer` + +**Default bindings:** + +```json +{ "command": { "action": "exportBuffer" } } +``` + +#### Actions + +| Name | Necessity | Accepts | Description | +| ---- | --------- | ------- | ----------- | +| `path` | Optional | String | If provided, then the Terminal will export the buffer contents to the given file. Otherwise, the terminal will open a file picker to choose the file to export to. | + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +___ + ## Global commands ### Global summon @@ -1187,7 +1254,7 @@ If you'd like to change the behavior of the `quakeMode` action, we recommended c ___ -## Run multiple actions ([Preview](https://aka.ms/terminal-preview)) +## Run multiple actions This action allows the user to bind multiple sequential actions to one command. @@ -1221,9 +1288,6 @@ This action allows the user to bind multiple sequential actions to one command. }} ``` -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). -
___ diff --git a/TerminalDocs/customize-settings/interaction.md b/TerminalDocs/customize-settings/interaction.md index 85953bc4..b6539de5 100644 --- a/TerminalDocs/customize-settings/interaction.md +++ b/TerminalDocs/customize-settings/interaction.md @@ -3,7 +3,7 @@ title: Windows Terminal Interaction Settings description: Learn how to customize interaction settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/05/2021 +ms.date: 02/03/2022 ms.topic: how-to --- @@ -59,6 +59,23 @@ When this is set to `true` and you copy text in a rectangular (block) selection ___ +## Trim trailing whitespace on paste ([Preview](https://aka.ms/terminal-preview)) + +When enabled, the terminal will automatically trim trailing whitespace characters when pasting text to the terminal. + +**Property name:** `trimPaste` + +**Necessity:** Optional + +**Accepts:** `true`, `false` + +**Default value:** `true` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +___ + ## Word delimiters This determines the word delimiters used in a double-click selection. Word delimiters are characters that specify where the boundary is between two words. The most common examples are spaces, semicolons, commas, and periods. diff --git a/TerminalDocs/customize-settings/profile-advanced.md b/TerminalDocs/customize-settings/profile-advanced.md index 3c46bda0..2b465c38 100644 --- a/TerminalDocs/customize-settings/profile-advanced.md +++ b/TerminalDocs/customize-settings/profile-advanced.md @@ -3,7 +3,7 @@ title: Windows Terminal Advanced Profile Settings description: Learn how to customize the advanced profile settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/19/2021 +ms.date: 02/03/2022 ms.topic: how-to --- @@ -137,6 +137,25 @@ Controls what happens when the application emits a BEL character. When set to `" ___ +## Experimental text rendering engine ([Preview](https://aka.ms/terminal-preview)) + +Enables use of the experimental text rendering engine for the profile. This is an experimental feature and its continued existence is not guaranteed. A new instance of the profile needs to be opened in order for this setting to take effect. + +**Property name:** `experimental.useAtlasEngine` + +**Necessity:** Optional + +**Accepts:** `true`, `false` + +**Default value:** `false` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +
+ +___ + ## Unique identifier Profiles can use a GUID as a unique identifier. To make a profile your default profile, it needs a GUID for the `defaultProfile` global setting. diff --git a/TerminalDocs/customize-settings/profile-appearance.md b/TerminalDocs/customize-settings/profile-appearance.md index c1600bbc..091b1598 100644 --- a/TerminalDocs/customize-settings/profile-appearance.md +++ b/TerminalDocs/customize-settings/profile-appearance.md @@ -3,7 +3,7 @@ title: Windows Terminal Appearance Profile Settings description: Learn how to customize the appearance profile settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/08/2021 +ms.date: 02/03/2022 ms.topic: how-to --- @@ -328,7 +328,7 @@ ___ ## Transparency -### Opacity ([Preview](https://aka.ms/terminal-preview)) +### Opacity :::row::: :::column span=""::: @@ -356,7 +356,7 @@ When `useAcrylic` is set to `true`, the window will use the acrylic material to > Prior to Windows Terminal version 1.12, this setting was `acrylicOpacity`, was a float that accepted 0.0-1.0 which defaulted to 0.5, and the opacity would only apply if `useAcrylic` was set to true. On 1.12+, `acrylicOpacity` will gracefully continue to work as the equivalent `opacity` value. > [!IMPORTANT] -> Unblurred opacity (`"useAcrylic": false`) only works on Windows 11 or above with [Windows Terminal Preview](https://aka.ms/terminal-preview). +> Unblurred opacity (`"useAcrylic": false`) only works on Windows 11. ### Enable acrylic @@ -462,7 +462,7 @@ This sets the background color of a selection within the profile. This will over **Accepts:** Color as a string in hex format: `"#rgb"` or `"#rrggbb"` -### Adjust indistinguishable colors ([Preview](https://aka.ms/terminal-preview)) +### Adjust indistinguishable colors When set to true, this will (when necessary) adjust the foreground color to make it more visible, based on the background color. @@ -474,9 +474,6 @@ When set to true, this will (when necessary) adjust the foreground color to make **Default value:** `true` -> [!IMPORTANT] -> This feature only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). - ### Cursor color This sets the cursor color of the profile. This will override the `cursorColor` set in the color scheme if `colorScheme` is set. diff --git a/TerminalDocs/customize-settings/profile-general.md b/TerminalDocs/customize-settings/profile-general.md index 68e99e60..e26d63e1 100644 --- a/TerminalDocs/customize-settings/profile-general.md +++ b/TerminalDocs/customize-settings/profile-general.md @@ -3,7 +3,7 @@ title: Windows Terminal General Profile Settings description: Learn how to customize the general profile settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 04/14/2021 +ms.date: 02/03/2022 ms.topic: how-to --- @@ -105,7 +105,32 @@ If set, this will replace the `name` as the title to pass to the shell on startu **Accepts:** String
+___ + +## Automatically run as Administrator ([Preview](https://aka.ms/terminal-preview)) + +If set, this profile will automatically open up in an "elevated" window (running as Administrator) by default. If you run this profile from an unelevated window, then a new elevated terminal window will be created to host this profile. If you launch this profile from an already elevated window, then it will open as a new tab. + +When this property is set to `false`, opening this profile in an elevated window will not launch an _unelevated_ window to host this profile. The profile will simply open in the elevated window, running as Administrator. + +If you set this property in `profiles.defaults`, then _all_ profiles will launch as Administrator by default, unless overrided by specifically setting this to false. + +This property can be overridden in the [`newTab`](./actions.md#new-tab) and [`splitPane`](./actions.md#split-a-pane) actions, with the `elevate` property. + +Elevated and unelevated tabs cannot exist in the same terminal window. For more details, please see the [FAQ](./../faq.yml#can-you-have-have-tabs-running-as-administrator--elevated--in-unelevated-terminal-windows). + +**Property name:** `elevate` +**Necessity:** Optional + +**Accepts:** `true`, `false` + +**Default value:** `false` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +
___ ## Hide profile from dropdown diff --git a/TerminalDocs/customize-settings/startup.md b/TerminalDocs/customize-settings/startup.md index 1924dc8b..a7cd7c7f 100644 --- a/TerminalDocs/customize-settings/startup.md +++ b/TerminalDocs/customize-settings/startup.md @@ -3,7 +3,7 @@ title: Windows Terminal Startup Settings description: Learn how to customize startup settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/08/2021 +ms.date: 02/03/2022 ms.topic: how-to --- @@ -64,7 +64,7 @@ Note: if the Windows Terminal startup task entry is disabled either by org polic ___ -## Behavior when starting a new terminal session ([Preview](https://aka.ms/terminal-preview)) +## Behavior when starting a new terminal session When set to `"defaultProfile"`, Windows Terminal will start a new session by opening a single tab with your default profile. @@ -86,9 +86,6 @@ Note: Currently, Windows Terminal will save the following information: **Default value:** `"defaultProfile"` -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). -
___ diff --git a/TerminalDocs/faq.yml b/TerminalDocs/faq.yml index b4292b6b..2c16cf2b 100644 --- a/TerminalDocs/faq.yml +++ b/TerminalDocs/faq.yml @@ -3,7 +3,7 @@ metadata: title: Windows Terminal FAQ description: Frequently asked questions about Windows Terminal, such as how to start terminal in administrator mode, how to save a terminal session, and more. ms.topic: troubleshooting - ms.date: 01/06/2022 + ms.date: 02/03/2022 ms.author: mattwoj author: mattwojo manager: jken @@ -86,7 +86,7 @@ sections: - question: Can I save the layout of all of my open console windows when closing Windows Terminal and restore them when starting a new session? answer: | - Yes! As of [Windows Terminal Preview v1.12.2922.0](https://github.com/microsoft/terminal/releases/tag/v1.12.2922.0), you can now save window pane layouts upon closing a terminal session with the [firstWindowPreference](./customize-settings/startup.md#behavior-when-starting-a-new-terminal-session-preview) global setting. + Yes! As of [Windows Terminal Preview v1.12.2922.0](https://github.com/microsoft/terminal/releases/tag/v1.12.2922.0), you can now save window pane layouts upon closing a terminal session with the [firstWindowPreference](./customize-settings/startup.md#behavior-when-starting-a-new-terminal-session) global setting. - question: What is being planned for Windows Terminal? Is there a development roadmap or feature request list that I can contribute to? answer: | @@ -100,6 +100,10 @@ sections: answer: | The PSReadLine module is responsible for setting the colors and behavior of your PowerShell command line. You can set colors for specific attributes of your PowerShell prompt by using the [Set-PSReadLineOption, see Example 4: Set multiple color options](/powershell/module/psreadline/set-psreadlineoption#example-4--set-multiple-color-options). + - question: Can you have have tabs running as Administrator (elevated) in unelevated Terminal windows? + answer: | + No. For more technical details, refer to [this spec](https://github.com/microsoft/terminal/blob/main/doc/specs/%235000%20-%20Process%20Model%202.0/%231032%20-%20Elevation%20Quality%20of%20Life%20Improvements.md#background) and [this doc](https://github.com/microsoft/terminal/blob/main/doc/Niksa.md#elevation). + # - question: Is there a way to sync your terminal settings across devices? # answer: | # TBD From ea2e3c65300dfdf43295633b4d32cb5a1444e014 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 3 Feb 2022 15:06:23 -0800 Subject: [PATCH 25/63] Minor intro rewrite (#487) --- TerminalDocs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/index.md b/TerminalDocs/index.md index 76a73776..54c514f4 100644 --- a/TerminalDocs/index.md +++ b/TerminalDocs/index.md @@ -9,7 +9,7 @@ ms.topic: overview # What is Windows Terminal? -Windows Terminal is a modern terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and Windows Subsystem for Linux (WSL). Its main features include multiple tabs, panes, Unicode and UTF-8 character support, a GPU accelerated text rendering engine, and the ability to create your own themes and customize text, colors, backgrounds, and shortcuts. +Windows Terminal is a modern host application for the command-line shells you already love, like Command Prompt, PowerShell, and bash (via Windows Subsystem for Linux (WSL)). Its main features include multiple tabs, panes, Unicode and UTF-8 character support, a GPU accelerated text rendering engine, and the ability to create your own themes and customize text, colors, backgrounds, and shortcuts. > [!div class="nextstepaction"] > [Install Windows Terminal](https://aka.ms/terminal) From 9d401a638a8d548685fe802311e200aa8edb4d0a Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 3 Feb 2022 15:16:22 -0800 Subject: [PATCH 26/63] typo fix --- TerminalDocs/tutorials/new-tab-same-directory.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index fc5c3335..370bcab5 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -42,7 +42,7 @@ This will append `$e]9;9;$P$e\` to your current prompt. When cmd evaluates this * the `$e` with the escape character * the `$p` with the current working directory -Note that the above command will only work for the current `cmd.exe` session. To set the value permantently, AFTER running the above command, you'll want to run +Note that the above command will only work for the current `cmd.exe` session. To set the value permanently, AFTER running the above command, you'll want to run ```cmd setx PROMPT %PROMPT% From fd344579eaa5c6b42f1d8175577b25280c550474 Mon Sep 17 00:00:00 2001 From: Kayla Cinnamon Date: Thu, 3 Feb 2022 15:48:27 -0800 Subject: [PATCH 27/63] Remove start from PowerShell commands --- TerminalDocs/command-line-arguments.md | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/TerminalDocs/command-line-arguments.md b/TerminalDocs/command-line-arguments.md index 7c0284a3..6a52a97f 100644 --- a/TerminalDocs/command-line-arguments.md +++ b/TerminalDocs/command-line-arguments.md @@ -485,31 +485,6 @@ Execution aliases do not work in WSL distributions. If you want to use wt.exe fr Windows Terminal uses the semicolon character `;` as a delimiter for separating commands in the `wt` command line. Unfortunately, PowerShell also uses `;` as a command separator. To work around this, you can use the following tricks to run multiple `wt` commands from PowerShell. In all the following examples, a new terminal window is created with three panes - one running Command Prompt, one with PowerShell, and the last one running WSL. -The following examples use the `Start-Process` command to run `wt`. For more information on why the terminal uses `Start-Process`, see [Using start](#using-start) below. - -### Single quoted parameters - -In this example, the `wt` parameters are wrapped in single quotes (`'`). This syntax is useful if nothing is being calculated. - -```powershell -start wt 'new-tab "cmd" ; split-pane -p "Windows PowerShell" ; split-pane -H wsl.exe' -``` - -### Escaped quotes - -When passing a value contained in a variable to the `wt` command line, use the following syntax: - -```powershell -$ThirdPane = "wsl.exe" -start wt "new-tab cmd ; split-pane -p `"Windows PowerShell`" ; split-pane -H $ThirdPane" -``` - -Note the usage of `` ` `` to escape the double-quotes (`"`) around "Windows PowerShell" in the `-p` parameter to the `split-pane` parameter. - -### Using `start` - -All the above examples explicitly used `start` to launch the terminal. - The following examples do not use `start` to run the command line. Instead, there are two other methods of escaping the command line: * Only escaping the semicolons so that `PowerShell` will ignore them and pass them straight to `wt`. From 7c209109d8b4e6305966686d1756b9a3d08c9863 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Tue, 8 Feb 2022 13:31:09 -0800 Subject: [PATCH 28/63] winget link fix --- TerminalDocs/tutorials/custom-prompt-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index 60105b45..b23c46f8 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -40,7 +40,7 @@ To set a Nerd Font for use with Oh My Posh and Terminal Icons, open the Windows Oh My Posh enables you to use a full color set to define and render your terminal prompt, including the ability to use built-in themes or create your own custom theme. -If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](/package-manager/winget/), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). +If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](windows/package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). ### Install Oh My Posh for PowerShell From 269670c9fa6cf332ed09056b96c4569688203b02 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Tue, 8 Feb 2022 13:34:38 -0800 Subject: [PATCH 29/63] Link fix --- TerminalDocs/tutorials/custom-prompt-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index b23c46f8..a9921bf6 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -40,7 +40,7 @@ To set a Nerd Font for use with Oh My Posh and Terminal Icons, open the Windows Oh My Posh enables you to use a full color set to define and render your terminal prompt, including the ability to use built-in themes or create your own custom theme. -If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](windows/package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). +If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](./package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). ### Install Oh My Posh for PowerShell From dfe55d08ad06a251c10c57ffea4d34fa12780ec2 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Tue, 8 Feb 2022 13:42:52 -0800 Subject: [PATCH 30/63] link fix --- TerminalDocs/tutorials/custom-prompt-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index a9921bf6..112f8272 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -40,7 +40,7 @@ To set a Nerd Font for use with Oh My Posh and Terminal Icons, open the Windows Oh My Posh enables you to use a full color set to define and render your terminal prompt, including the ability to use built-in themes or create your own custom theme. -If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](./package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). +If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](./../package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). ### Install Oh My Posh for PowerShell From a7a0eca79f21590877ca16a60bd1a51de8f8681c Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Tue, 8 Feb 2022 13:50:17 -0800 Subject: [PATCH 31/63] link fix --- TerminalDocs/tutorials/custom-prompt-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index 112f8272..595409f5 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -40,7 +40,7 @@ To set a Nerd Font for use with Oh My Posh and Terminal Icons, open the Windows Oh My Posh enables you to use a full color set to define and render your terminal prompt, including the ability to use built-in themes or create your own custom theme. -If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](./../package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). +If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](../../package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). ### Install Oh My Posh for PowerShell From 42d9b0d8289a06e8a27bffa5dc160c0e7a543a12 Mon Sep 17 00:00:00 2001 From: Kayla Cinnamon Date: Wed, 16 Feb 2022 10:24:40 -0800 Subject: [PATCH 32/63] Add `bellsound` profile setting (#508) --- .../customize-settings/profile-advanced.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/TerminalDocs/customize-settings/profile-advanced.md b/TerminalDocs/customize-settings/profile-advanced.md index 2b465c38..a65bdaa9 100644 --- a/TerminalDocs/customize-settings/profile-advanced.md +++ b/TerminalDocs/customize-settings/profile-advanced.md @@ -137,6 +137,23 @@ Controls what happens when the application emits a BEL character. When set to `" ___ +## Bell sound ([Preview](https://aka.ms/terminal-preview)) + +When `bellStyle` is set to `"all"` or `"audible"`, this allows you to choose the audio file for the bell. If you have an array of sounds set, the terminal will pick one at random. + +**Property name:** `bellSound` + +**Necessity:** Optional + +**Accepts:** File location as a string or an array of file locations as strings + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +
+ +___ + ## Experimental text rendering engine ([Preview](https://aka.ms/terminal-preview)) Enables use of the experimental text rendering engine for the profile. This is an experimental feature and its continued existence is not guaranteed. A new instance of the profile needs to be opened in order for this setting to take effect. From 0509e60e98936647924172b4011aeab8c5fb1d7a Mon Sep 17 00:00:00 2001 From: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com> Date: Wed, 16 Feb 2022 19:30:15 +0100 Subject: [PATCH 33/63] Fix typos found by codespell (#501) --- TerminalDocs/customize-settings/actions.md | 2 +- TerminalDocs/customize-settings/profile-general.md | 2 +- TerminalDocs/faq.yml | 2 +- TerminalDocs/json-fragment-extensions.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/TerminalDocs/customize-settings/actions.md b/TerminalDocs/customize-settings/actions.md index 098cd8d0..d0661218 100644 --- a/TerminalDocs/customize-settings/actions.md +++ b/TerminalDocs/customize-settings/actions.md @@ -611,7 +611,7 @@ This creates a new window. Without any arguments, this will open the default pro | `tabTitle` | Optional | String | Title of the window tab. | | `index` | Optional | Integer | Profile that will open based on its position in the dropdown (starting at 0). | | `profile` | Optional | Profile's name or GUID as a string | Profile that will open based on its GUID or name. | -| `suppressApplicationTitle` | Optional | `true`, `false` | When set to `false` allows applications to change tab title by sending title change messages. When set to true `true` suppresses these messages. If not provided, the behavior is inheritted from profile settings. | +| `suppressApplicationTitle` | Optional | `true`, `false` | When set to `false` allows applications to change tab title by sending title change messages. When set to true `true` suppresses these messages. If not provided, the behavior is inherited from profile settings. | ### Rename window diff --git a/TerminalDocs/customize-settings/profile-general.md b/TerminalDocs/customize-settings/profile-general.md index e26d63e1..510d7469 100644 --- a/TerminalDocs/customize-settings/profile-general.md +++ b/TerminalDocs/customize-settings/profile-general.md @@ -113,7 +113,7 @@ If set, this profile will automatically open up in an "elevated" window (running When this property is set to `false`, opening this profile in an elevated window will not launch an _unelevated_ window to host this profile. The profile will simply open in the elevated window, running as Administrator. -If you set this property in `profiles.defaults`, then _all_ profiles will launch as Administrator by default, unless overrided by specifically setting this to false. +If you set this property in `profiles.defaults`, then _all_ profiles will launch as Administrator by default, unless overridden by specifically setting this to false. This property can be overridden in the [`newTab`](./actions.md#new-tab) and [`splitPane`](./actions.md#split-a-pane) actions, with the `elevate` property. diff --git a/TerminalDocs/faq.yml b/TerminalDocs/faq.yml index 2c16cf2b..a167586a 100644 --- a/TerminalDocs/faq.yml +++ b/TerminalDocs/faq.yml @@ -46,7 +46,7 @@ sections: answer: | To exit [focus mode](./customize-settings/actions.md#toggle-focus-mode), which hides the tabs and title bar on Windows Terminal, open the terminal command palette (Ctrl+Shift+P), find "toggle focus mode", then hit enter. - ![Toggle focus mode setting in Windows Terminal command pallette](./images/toggle-focus-mode.png) + ![Toggle focus mode setting in Windows Terminal command palette](./images/toggle-focus-mode.png) You may also want to ensure that your launch mode is not set to "focus" in the Startup settings. diff --git a/TerminalDocs/json-fragment-extensions.md b/TerminalDocs/json-fragment-extensions.md index 7f3073eb..f6248bac 100644 --- a/TerminalDocs/json-fragment-extensions.md +++ b/TerminalDocs/json-fragment-extensions.md @@ -145,7 +145,7 @@ The location to place the JSON fragment files varies depending on the installati ### Microsoft Store applications -For applications installed through the Microsoft Store (or similar), the application must declare itself to be an app extension. Learn more about how to [Create an host an app extenstion](/windows/uwp/launch-resume/how-to-create-an-extension). The necessary section is replicated here. The appxmanifest file of the package must include: +For applications installed through the Microsoft Store (or similar), the application must declare itself to be an app extension. Learn more about how to [Create and host an app extension](/windows/uwp/launch-resume/how-to-create-an-extension). The necessary section is replicated here. The appxmanifest file of the package must include: ```xml Date: Wed, 16 Feb 2022 12:38:56 -0600 Subject: [PATCH 34/63] Change step to view themes on documentation site (#505) --- TerminalDocs/tutorials/custom-prompt-setup.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index 595409f5..0ce7b047 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -62,11 +62,7 @@ You may also want to enter this command to ensure you have the latest updates: ` ### Choose and apply a PowerShell prompt theme -To browse the Oh My Posh prompt themes, use the command: - -```powershell -Get-PoshThemes -``` +You may browse the full list of themes on the [Oh My Posh themes page](https://ohmyposh.dev/docs/themes). Choose a theme and update your PowerShell profile with this command. (You can replace `notepad` with the text editor of your choice.) From 7e39a2e3d38ad0a8ee5001aed3534716481af1dd Mon Sep 17 00:00:00 2001 From: Alex Buck Date: Wed, 16 Feb 2022 13:39:44 -0500 Subject: [PATCH 35/63] Set ms.topic: faq where YamlMime:FAQ (#506) --- TerminalDocs/faq.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/TerminalDocs/faq.yml b/TerminalDocs/faq.yml index a167586a..a845f5b8 100644 --- a/TerminalDocs/faq.yml +++ b/TerminalDocs/faq.yml @@ -2,13 +2,12 @@ metadata: title: Windows Terminal FAQ description: Frequently asked questions about Windows Terminal, such as how to start terminal in administrator mode, how to save a terminal session, and more. - ms.topic: troubleshooting + ms.topic: faq ms.date: 02/03/2022 ms.author: mattwoj author: mattwojo manager: jken ms.reviewer: cinnamon - title: Windows Terminal FAQ summary: | Find answers to some of the most frequently asked questions about Windows Terminal. From 33241e7bbaa84e3f5b693dae5a0ed5128f4ba7d0 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Wed, 16 Feb 2022 10:56:31 -0800 Subject: [PATCH 36/63] Fix pkgmgr link --- TerminalDocs/tutorials/custom-prompt-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index 0ce7b047..484e2376 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -40,7 +40,7 @@ To set a Nerd Font for use with Oh My Posh and Terminal Icons, open the Windows Oh My Posh enables you to use a full color set to define and render your terminal prompt, including the ability to use built-in themes or create your own custom theme. -If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](../../package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). +If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](/windows/package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). ### Install Oh My Posh for PowerShell From 9f7b4313375ae1dc944977e9f890bfe63bd9dd27 Mon Sep 17 00:00:00 2001 From: Philippe Blain Date: Mon, 7 Mar 2022 19:26:26 -0500 Subject: [PATCH 37/63] troubleshooting: clarify WSL `startingDirectory` entry (#516) * troubleshooting: Linux paths support in 'startingDirectory' was added in 1.11.2921.0 In 7cd48bc (startingDirectory path for WSL no longer requires prefix, 2022-01-07), the "Set your WSL distribution to start in the home directory" section of the troubleshooting guide was updated to mention that WSL paths can now be directly referenced, following microsoft/terminal@a2a6050 (When launching wsl, promote the starting directory to --cd (#9223), 2021-08-02). The text mentions this feature was added in Windows Terminal 1.12.3472.0, but it actually dates back to v1.11.2421.0 (Preview) and v1.11.2921.0 (Stable). Update the text to mention the stable version, and link to this version in the GitHub releases. Also slightly improve the wording (s/are now/can now be/). * troubleshooting: remove confusing 'Important' note about WSL 'startingDirectory' In e7f739e (Docs updates for 1.11 release (#397), 2021-08-31), an "Important" note was added to the "Set your WSL distribution to start in the home directory" section of the troubleshooting page to mention that 'startingDirectory' now accepts Linux-style paths, following microsoft/terminal@a2a6050 (When launching wsl, promote the starting directory to --cd (#9223), 2021-08-02). The note mentions that Linux-styled paths were accepted "on newer versions of Windows", presumably meaning newer than 1903. Indeed, that version was at the time mentioned in the text as the first Windows vesion supporting the '//wsl$/' P9 prefix (it had been mentioned since the WSL startingDirectory troubleshooting entry was created in da815cc (Review troubleshooting page, 2020-05-04). The text of the section was updated in 7cd48bc (startingDirectory path for WSL no longer requires prefix, 2022-01-07) to add an example with a Linux-style path, and to mention that this feature was added in Windows Terminal itself (not in Windows), thus removing the mention of Windows 1903. However, the "Important" note was left, and it still confusingly mentions that Linux-style paths are accepted on "newer" versions of Windows, without mentioning newer than what. Remove the note altogether. * .gitattributes: mark '*.md' as Markdown files Denote Markdown files as such with the 'diff' Git attribute [1]. This allows various Git commands (diff [2, 3], grep [4, 5], log [6], blame [7]) to show in which part of the "code" the changes are located in the hunk header, i.e. the previous commit would be shown as diff --git a/TerminalDocs/troubleshooting.md b/TerminalDocs/troubleshooting.md index 4a880fa..2c9d14d 100644 --- a/TerminalDocs/troubleshooting.md +++ b/TerminalDocs/troubleshooting.md @@ -40,8 +40,6 @@ ## Set your WSL distribution to start in the home `~` directory when launched } ``` -> [!IMPORTANT] -> On newer versions of Windows, `startingDirectory` can accept Linux-style paths. ## Setting the tab title Notice how the hunk header indicates the changes are in the "Set your WSL distribution to start in the home" section. The history of that specific entry can now be interrogated using git log -L:"Set your WSL distribution":TerminalDocs/troubleshooting.md [1] https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [2] https://git-scm.com/docs/git-diff#_generating_patch_text_with_p [3] https://git-scm.com/docs/git-diff#Documentation/git-diff.txt--W [4] https://git-scm.com/docs/git-grep#Documentation/git-grep.txt--p [5] https://git-scm.com/docs/git-grep#Documentation/git-grep.txt--W [6] https://git-scm.com/docs/git-log#Documentation/git-log.txt--Lltfuncnamegtltfilegt [7] https://git-scm.com/docs/git-blame#Documentation/git-blame.txt--Lltfuncnamegt --- .gitattributes | 5 ++++- TerminalDocs/troubleshooting.md | 4 +--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitattributes b/.gitattributes index 9fb85ec4..91045217 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,4 +11,7 @@ # Denote all files that are truly binary and should not be modified. *.png binary -*.jpg binary \ No newline at end of file +*.jpg binary + +# Denote Markdown files as such +*.md diff=markdown diff --git a/TerminalDocs/troubleshooting.md b/TerminalDocs/troubleshooting.md index 996c7fc8..2c9d14da 100644 --- a/TerminalDocs/troubleshooting.md +++ b/TerminalDocs/troubleshooting.md @@ -20,7 +20,7 @@ If you click on the "settings" button in the dropdown, the Terminal will attempt ## Set your WSL distribution to start in the home `~` directory when launched -By default, the `startingDirectory` of a profile is `%USERPROFILE%` (`C:\Users\`). This is a Windows path. For WSL distributions, the file systems are now directly referenced, as of Windows Terminal [version 1.12.3472.0](https://github.com/microsoft/terminal/releases). You can use `/home/` to directly refer to your home folder. For example, the following setting will launch the "Ubuntu-20.04" distribution in its home file path: +By default, the `startingDirectory` of a profile is `%USERPROFILE%` (`C:\Users\`). This is a Windows path. For WSL distributions, the file systems can now be directly referenced, as of Windows Terminal [version 1.11.2921.0](https://github.com/microsoft/terminal/releases/tag/v1.11.2921.0). You can use `/home/` to directly refer to your home folder. For example, the following setting will launch the "Ubuntu-20.04" distribution in its home file path: ```json { @@ -40,8 +40,6 @@ If you are using an earlier version of Windows Terminal, WSL may require using t } ``` -> [!IMPORTANT] -> On newer versions of Windows, `startingDirectory` can accept Linux-style paths. ## Setting the tab title From 4941a4082629a339ab1b912e89d06ccf1439c055 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Mon, 7 Mar 2022 16:35:39 -0800 Subject: [PATCH 38/63] Remove version specifics relating to WSL paths --- TerminalDocs/troubleshooting.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/TerminalDocs/troubleshooting.md b/TerminalDocs/troubleshooting.md index 2c9d14da..4c045c62 100644 --- a/TerminalDocs/troubleshooting.md +++ b/TerminalDocs/troubleshooting.md @@ -18,9 +18,9 @@ If you click on the "settings" button in the dropdown, the Terminal will attempt > [!TIP] > You can also use the settings UI to configure your settings if you are using [Windows Terminal Preview](https://aka.ms/terminal-preview). You can learn how to open the settings UI on the [Actions page](./customize-settings/actions.md#application-level-commands). -## Set your WSL distribution to start in the home `~` directory when launched +## Set your WSL distribution to start in the home `~` directory when launched in older versions of Windows Terminal -By default, the `startingDirectory` of a profile is `%USERPROFILE%` (`C:\Users\`). This is a Windows path. For WSL distributions, the file systems can now be directly referenced, as of Windows Terminal [version 1.11.2921.0](https://github.com/microsoft/terminal/releases/tag/v1.11.2921.0). You can use `/home/` to directly refer to your home folder. For example, the following setting will launch the "Ubuntu-20.04" distribution in its home file path: +By default, the `startingDirectory` of a profile is `%USERPROFILE%` (`C:\Users\`). This is a Windows path. For WSL distributions running a new version of Windows Terminal, the file systems can enter `~` to set this home path. In older versions of Windows Terminal, you can use `/home/` to directly refer to your home folder. For example, the following setting will launch the "Ubuntu-20.04" distribution in its home file path: ```json { @@ -30,7 +30,7 @@ By default, the `startingDirectory` of a profile is `%USERPROFILE%` (`C:\Users\< } ``` -If you are using an earlier version of Windows Terminal, WSL may require using the `\\wsl$\` prefix when referring to a distribution's home path for the `startingDirectory` setting. For example, in earlier versions of Windows Terminal the following setting will launch the "Ubuntu-18.04" distribution in its home file path: +If you are using a very early version of Windows Terminal, WSL may require using the `\\wsl$\` prefix when referring to a distribution's home path for the `startingDirectory` setting. For example, the following setting will launch the "Ubuntu-18.04" distribution in its home file path: ```json { @@ -40,6 +40,8 @@ If you are using an earlier version of Windows Terminal, WSL may require using t } ``` +> [!IMPORTANT] +> On newer versions of Windows, `startingDirectory` can accept Linux-style paths. ## Setting the tab title From bbd96840b895b5d341e3bc5b926fc914cd3c191e Mon Sep 17 00:00:00 2001 From: Adrien Clairembault <42734840+AdrienClairembault@users.noreply.github.com> Date: Tue, 8 Mar 2022 01:42:15 +0100 Subject: [PATCH 39/63] New tab same directory (zsh) (#513) --- TerminalDocs/tutorials/new-tab-same-directory.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index 370bcab5..b6ef2e68 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -96,6 +96,18 @@ PROMPT_COMMAND=${PROMPT_COMMAND:+"$PROMPT_COMMAND; "}'printf "\e]9;9;%s\e\\" "$( The `PROMPT_COMMAND` variable in bash tells bash what command to run before displaying the prompt. The `printf` statement is what we're using to append the sequence for setting the working directory with the Terminal. The `$(wslpath -w "$PWD")` bit will invoke the `wslpath` executable to convert the current directory into its Windows-like path. The `${PROMPT_COMMAND:+"$PROMPT_COMMAND; "}` bit is [some bash magic](https://unix.stackexchange.com/a/466100) to make sure we append this command to any existing command (if you've already set `PROMPT_COMMAND` somewhere else.) +#### `zsh` + +Add the following lines to the end of your `.zshrc` file: + +```zsh +keep_current_path() { + printf "\e]9;9;%s\e\\" "$(wslpath -w "$PWD")" +} +precmd_functions+=(keep_current_path) +``` + +The `precmd_functions` hook tells zsh what commands to run before displaying the prompt. The `printf` statement is what we're using to append the sequence for setting the working directory with the Terminal. The `$(wslpath -w "$PWD")` bit will invoke the `wslpath` executable to convert the current directory into its Windows-like path. Using `precmd_functions+=` make sure we append the `keep_current_path` function to any existing function already defined for this hook. > [!NOTE] > Don't see your favorite shell here? If you figure it out, feel free to open a PR to contribute a solution for your preferred shell! From 455fecdc890d33b0ffe87846649d4d98279c41bc Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Mon, 7 Mar 2022 16:47:39 -0800 Subject: [PATCH 40/63] Add acrylic issues to troubleshooting (#518) * Add acrylic issues to troubleshooting doc * Add autohide cursor setting * Add windows settings differentiator --- TerminalDocs/troubleshooting.md | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/TerminalDocs/troubleshooting.md b/TerminalDocs/troubleshooting.md index 4c045c62..759be15f 100644 --- a/TerminalDocs/troubleshooting.md +++ b/TerminalDocs/troubleshooting.md @@ -3,7 +3,7 @@ title: Windows Terminal Troubleshooting description: Learn fixes to common obstacles in Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/08/2021 +ms.date: 03/07/2022 ms.topic: overview --- @@ -119,21 +119,22 @@ Application developers are encouraged to choose either Windows API functions _or ### Keyboard service warning Starting in Windows Terminal 1.5, the Terminal will display a warning if the "Touch Keyboard and Handwriting Panel Service" is disabled. This service is needed by the operating system to properly route input events to the Terminal application (as well as many other applications on Windows). If you see this warning, you can follow these steps to re-enable the service: + 1. In the run dialog, run `services.msc` - ![services.msc in the run dialog](https://user-images.githubusercontent.com/18356694/97891741-c81eed00-1cf4-11eb-9d48-7b94fede5294.png) + ![services.msc in the run dialog](https://user-images.githubusercontent.com/18356694/97891741-c81eed00-1cf4-11eb-9d48-7b94fede5294.png) 2. Find the "Touch Keyboard and Handwriting Panel Service" - ![Touch Keyboard and Handwriting Panel Service in Services.msc](https://user-images.githubusercontent.com/18356694/97891813-e1279e00-1cf4-11eb-91c8-69a5c6da6c3d.png) + ![Touch Keyboard and Handwriting Panel Service in Services.msc](https://user-images.githubusercontent.com/18356694/97891813-e1279e00-1cf4-11eb-91c8-69a5c6da6c3d.png) 3. Open the "Properties" for this service - ![service properties](https://user-images.githubusercontent.com/18356694/97891923-03212080-1cf5-11eb-90cc-821a4fbf16ba.png) + ![service properties](https://user-images.githubusercontent.com/18356694/97891923-03212080-1cf5-11eb-90cc-821a4fbf16ba.png) 4. Change the "startup type" to "Automatic" - ![service startup type](https://user-images.githubusercontent.com/18356694/97892043-25b33980-1cf5-11eb-8833-a2e65a306a79.png) + ![service startup type](https://user-images.githubusercontent.com/18356694/97892043-25b33980-1cf5-11eb-8833-a2e65a306a79.png) 5. Hit "Ok", and restart the PC. @@ -164,3 +165,15 @@ To reset your settings back to the original default settings, delete your [setti > [!IMPORTANT] > As of Windows Terminal version 1.10 or greater, you'll also need to delete the `state.json` file in the same directory as the `settings.json` file to fully reset the settings to the defaults. + +## Why is Acrylic opacity not making my Windows Terminal background transparent? + +You can set the transparency of a terminal window with the [`useAcrylic` property](./customize-settings/profile-appearance.md#transparency). There are a few reasons why your opacity setting may not be working for Acrylic, including: + +- As a system-wide policy, acrylic is only enabled for the foreground window. So if you activate any other window than the Terminal, the Terminal's acrylic will turn off. +- Acrylic doesn't work if your GPU hardware does not support it. If you're running an app in a Virtual Machine (VM) or over remote desktop, acrylic likely will not work. +- Acrylic can be disabled by the operating system for a number of reasons, like being in power saver (low-battery) mode or when accessing a machine using Remote Desktop. + +## Why does my mouse pointer disappear when hovering over a window and typing? + +This cursor auto-hiding behavior is by design, but can be disabled in the by searching in Windows Settings for "Mouse settings" > "Additional Mouse Settings" > "Mouse Properties" > "Pointer Options" > Uncheck "Hide pointer while typing". You may need to restart your Windows Terminal in order for this change to take effect. From 20c9e7925069317f4af1a3a0b3d0731f0acc6741 Mon Sep 17 00:00:00 2001 From: Philippe Blain Date: Mon, 7 Mar 2022 19:53:29 -0500 Subject: [PATCH 41/63] command-palette: simplify example for iterable commands (#511) --- TerminalDocs/command-palette.md | 52 ++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/TerminalDocs/command-palette.md b/TerminalDocs/command-palette.md index c3f86e4b..14922245 100644 --- a/TerminalDocs/command-palette.md +++ b/TerminalDocs/command-palette.md @@ -78,15 +78,10 @@ Create a new tab command for each profile. ```json { - "name": "New tab", - "commands": [ - { - "iterateOn": "profiles", - "icon": "${profile.icon}", - "name": "${profile.name}", - "command": { "action": "newTab", "profile": "${profile.name}" } - } - ] + "iterateOn": "profiles", + "icon": "${profile.icon}", + "name": "${profile.name}", + "command": { "action": "newTab", "profile": "${profile.name}" } } ``` @@ -109,22 +104,33 @@ The above command would behave like the following three commands: ```json { - "name": "New tab...", + "icon": null, + "name": "Command Prompt", + "command": { "action": "newTab", "profile": "Command Prompt" } +}, +{ + "icon": "C:\\path\\to\\icon", + "name": "PowerShell", + "command": { "action": "newTab", "profile": "PowerShell" } +}, +{ + "icon": null, + "name": "Ubuntu", + "command": { "action": "newTab", "profile": "Ubuntu" } +} +``` + +It's also possible to combine nested and iterable commands. For example, you can combine the three "new tab" commands above under a single "New tab" entry in the command palette, as shown in the image above, in the following way: + +```json +{ + "name": "New tab", "commands": [ { - "icon": null, - "name": "Command Prompt", - "command": { "action": "newTab", "profile": "Command Prompt" } - }, - { - "icon": "C:\\path\\to\\icon", - "name": "PowerShell", - "command": { "action": "newTab", "profile": "PowerShell" } - }, - { - "icon": null, - "name": "Ubuntu", - "command": { "action": "newTab", "profile": "Ubuntu" } + "iterateOn": "profiles", + "icon": "${profile.icon}", + "name": "${profile.name}", + "command": { "action": "newTab", "profile": "${profile.name}" } } ] } From 371d016ce276b13bf30d2cada17da3884b87fc1f Mon Sep 17 00:00:00 2001 From: Kayla Cinnamon Date: Mon, 7 Mar 2022 16:55:11 -0800 Subject: [PATCH 42/63] Move iterable commands gif lower down --- TerminalDocs/command-palette.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TerminalDocs/command-palette.md b/TerminalDocs/command-palette.md index 14922245..2c24c7c9 100644 --- a/TerminalDocs/command-palette.md +++ b/TerminalDocs/command-palette.md @@ -74,8 +74,6 @@ You can currently iterate over the following properties: Create a new tab command for each profile. -![Windows Terminal iterable commands](./images/command-palette-iterable-commands.gif) - ```json { "iterateOn": "profiles", @@ -136,6 +134,8 @@ It's also possible to combine nested and iterable commands. For example, you can } ``` +![Windows Terminal iterable commands](./images/command-palette-iterable-commands.gif) + ## Hiding a command If you would like to keep a command in your key bindings list but not have it appear in the command palette, you can hide it by setting its `name` to `null`. The example below hides the "New tab" action from the command palette. From 5319bb4e2937bcf3a08f1685ab2b81e8930ab6ff Mon Sep 17 00:00:00 2001 From: "Paul \"TBBle\" Hampson" Date: Tue, 8 Mar 2022 11:57:27 +1100 Subject: [PATCH 43/63] Quoted the env-var for `setx PROMPT` (#502) --- TerminalDocs/tutorials/new-tab-same-directory.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index b6ef2e68..f0c7555f 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -45,7 +45,7 @@ This will append `$e]9;9;$P$e\` to your current prompt. When cmd evaluates this Note that the above command will only work for the current `cmd.exe` session. To set the value permanently, AFTER running the above command, you'll want to run ```cmd -setx PROMPT %PROMPT% +setx PROMPT "%PROMPT%" ``` #### PowerShell: `powershell.exe` or `pwsh.exe` From 3ca01c183204b8628901e108eb221e633ebf7133 Mon Sep 17 00:00:00 2001 From: Joshua Cook Date: Mon, 7 Mar 2022 19:02:43 -0600 Subject: [PATCH 44/63] Updated --title documentation to specify behavior for panes (#500) --- TerminalDocs/command-line-arguments.md | 30 ++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/TerminalDocs/command-line-arguments.md b/TerminalDocs/command-line-arguments.md index 6a52a97f..c7e23a22 100644 --- a/TerminalDocs/command-line-arguments.md +++ b/TerminalDocs/command-line-arguments.md @@ -335,9 +335,9 @@ Execution aliases do not work in WSL distributions. If you want to use wt.exe fr --- -### Tab title +### Pane title -To open a new terminal instance with custom tab titles, use the `--title` argument. To set the title of each tab when opening two tabs, enter: +To open a new terminal instance with custom titles for each terminal pane, use the `--title` argument. To set the title of each pane when opening multiple tabs, enter: #### [Command Prompt](#tab/windows) @@ -363,6 +363,32 @@ Execution aliases do not work in WSL distributions. If you want to use wt.exe fr --- +Panes in the same tab can have different titles, which will reflect on the tab title depending on which pane has focus. To name independent panes, you can set the title after splitting the panes by entering: + + +#### [Command Prompt](#tab/windows) + +```cmd +wt --title pane1 ; split-pane -p "Command Prompt" --title pane2 +``` + +#### [PowerShell](#tab/powershell) + +```powershell +wt --title pane1 `; split-pane -p "Command Prompt" --title pane2 +``` + +#### [Linux](#tab/linux) + +```bash +cmd.exe /c "wt.exe" --title pane1 \; split-pane -p "Command Prompt" --title pane2 +``` + +Execution aliases do not work in WSL distributions. If you want to use wt.exe from a WSL command line, you can spawn it from CMD directly by running `cmd.exe`. The `/c` option tells CMD to terminate after running and the `\;` forward-slash + semicolon separates commands. + +--- + + ### Using application title To open a new terminal instance allowing applications within it to set the tab title by sending title change messages, use the `--useApplicationTitle` flag. To suppress these messages, use the `--suppressApplicationTitle` flag. If none of these flags are provided, the behavior is inherited from the profile's settings. To open a tab with title `tabname` that will not be overridden by the application, enter: From 675b72adf08a940aefb804814b79b98b8aa37028 Mon Sep 17 00:00:00 2001 From: Aaron Junker Date: Thu, 31 Mar 2022 22:00:21 +0200 Subject: [PATCH 45/63] push (#520) --- TerminalDocs/tutorials/ssh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/ssh.md b/TerminalDocs/tutorials/ssh.md index 8d1e8015..55c10619 100644 --- a/TerminalDocs/tutorials/ssh.md +++ b/TerminalDocs/tutorials/ssh.md @@ -10,7 +10,7 @@ ms.topic: tutorial # Tutorial: SSH in Windows Terminal -Windows 10 has a built-in SSH client that you can use in Windows Terminal. +Windows has a built-in SSH client that you can use in Windows Terminal. In this tutorial, you'll learn how to set up a profile in Windows Terminal that uses SSH. From cf43c2311e549ee10e9e9e87741d4787992d21ab Mon Sep 17 00:00:00 2001 From: Philippe Blain Date: Fri, 8 Apr 2022 15:21:32 -0400 Subject: [PATCH 46/63] json-fragment-extensions: output GUIDs in "registry format" (#515) --- TerminalDocs/json-fragment-extensions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/TerminalDocs/json-fragment-extensions.md b/TerminalDocs/json-fragment-extensions.md index f6248bac..f3c1f573 100644 --- a/TerminalDocs/json-fragment-extensions.md +++ b/TerminalDocs/json-fragment-extensions.md @@ -109,8 +109,8 @@ appNamespaceGUID = uuid.uuid5(terminalNamespaceGUID, "Git".encode("UTF-16LE").de # Calculate the example GUID for the 'Git Bash' profile profileGUID = uuid.uuid5(appNamespaceGUID, "Git Bash".encode("UTF-16LE").decode("ASCII")) -# Output the GUID -print(profileGUID) +# Output the GUID as Windows Terminal expects it (enclosed in curly brackets) +print(f"{{{profileGUID}}}") ``` @@ -127,8 +127,8 @@ terminalNamespaceGUID = uuid.UUID("{2bde4a90-d05f-401c-9492-e40884ead1d8}") # Calculate the example GUID for the 'Git Bash' profile profileGUID = uuid.uuid5(terminalNamespaceGUID, "Ubuntu".encode("UTF-16LE").decode("ASCII")) -# Output the GUID -print(profileGUID) +# Output the GUID as Windows Terminal expects it (enclosed in curly brackets) +print(f"{{{profileGUID}}}") ``` From 682ad653f1c88b4afe4e3f9dda44faf02305b329 Mon Sep 17 00:00:00 2001 From: Jan De Dobbeleer <2492783+JanDeDobbeleer@users.noreply.github.com> Date: Mon, 23 May 2022 01:59:49 +0200 Subject: [PATCH 47/63] fix(powerline): adjust docs to reflect oh-my-posh changes (#534) --- TerminalDocs/tutorials/custom-prompt-setup.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index 484e2376..6a699c43 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -40,14 +40,12 @@ To set a Nerd Font for use with Oh My Posh and Terminal Icons, open the Windows Oh My Posh enables you to use a full color set to define and render your terminal prompt, including the ability to use built-in themes or create your own custom theme. -If you want to use the same custom prompt themes across both PowerShell and WSL, we recommend installing Oh My Posh using [winget](/windows/package-manager/winget), the official Windows Package Manager. It's included with Windows 11, but you may need to install it if you're running Windows 10. Then follow the `winget` install instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). - ### Install Oh My Posh for PowerShell -To customize your PowerShell prompt, you can install Oh My Posh using the [PowerShell install-module](/powershell/module/powershellget/install-module). Enter the command: +To customize your PowerShell prompt, you can install Oh My Posh using [winget](/windows/package-manager/winget). Enter the command: ```powershell -Install-Module oh-my-posh -Scope CurrentUser +winget install oh-my-posh ``` This will install: @@ -55,10 +53,10 @@ This will install: - `oh-my-posh.exe`: The Windows executable - `themes`: The latest [Oh My Posh themes](https://ohmyposh.dev/docs/themes) -You may also want to enter this command to ensure you have the latest updates: `Update-Module oh-my-posh`. +To ensure you have the latest updates, you can use the following command: `winget upgrade oh-my-posh`. > [!NOTE] -> If you are more familiar with the [Scoop](https://scoop.sh/) installer or [Chocolatey](https://chocolatey.org/) package manager, these can also be used for installing on Windows, just follow the instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/windows). +> If you are more familiar with the [Scoop](https://scoop.sh/) installer or a manual installation method that allows automation, these can also be used for installing on Windows, just follow the instructions in the [Oh My Posh docs](https://ohmyposh.dev/docs/installation/windows). ### Choose and apply a PowerShell prompt theme @@ -73,8 +71,7 @@ notepad $PROFILE Add the following to the end of your PowerShell profile file to set the `paradox` theme. (Replace `paradox` with the theme of your choice.) ```powershell -Import-Module oh-my-posh -Set-PoshPrompt -Theme paradox +oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression ``` Now, each new PowerShell instance will start by importing Oh My Posh and setting your command line theme. @@ -88,7 +85,7 @@ Oh My Posh now allows you to customize WSL prompts, just like you would a PowerS ### Install Oh My Posh for WSL -We recommend installing Oh My Posh for WSL, whether using Bash, Zsh, or something else, by following the [Linux install guide in the Oh My Posh docs](https://ohmyposh.dev/docs/linux). +We recommend installing Oh My Posh for WSL, whether using Bash, Zsh, or something else, by following the [Linux install guide in the Oh My Posh docs](https://ohmyposh.dev/docs/installation/linux). Currently the recommended path for customizing WSL prompts with Oh My Posh uses the [Homebrew package manager](https://brew.sh/) for installation. (Homebrew works with WSL now!) When installing Homebrew for Linux, be sure to follow [Next steps](https://docs.brew.sh/Homebrew-on-Linux#install) instructions to add Homebrew to your PATH and to your bash shell profile script. @@ -109,12 +106,12 @@ eval "$(oh-my-posh --init --shell bash --config ~/jandedobbeleer.omp.json)" You can replace `jandedobbeleer.omp.json` with the name of whichever theme you prefer to use as long as it's copied to your `$Home` folder. -Alternatively, if you are using oh-my-posh in both Windows with PowerShell and with WSL, you can share your PowerShell theme with WSL by pointing to a theme in your Windows user's home folder. In your WSL distribution's `.profile` path, replace ~ with the path: `/mnt/c/Users/`. Replacing `` with your own Windows username. You may also need to add `$env:POSH_PATH` to your $PATH if you have only installed the Oh My Posh executable for PowerShell. +Alternatively, if you are using oh-my-posh in both Windows with PowerShell and with WSL, you can share your PowerShell theme with WSL by pointing to a theme in your Windows user's home folder. In your WSL distribution's `.profile` path, replace ~ with the path: `/mnt/c/Users/`. Replacing `` with your own Windows username. -You can [customize the Oh My Posh themes](https://ohmyposh.dev/docs/linux#customize) if desired. +You can [customize the Oh My Posh themes](https://ohmyposh.dev/docs/installation/customize) if desired. ## Use Terminal-Icons to add missing folder or file icons From 0781e4c4fec948f8637def6c016d735971be9bab Mon Sep 17 00:00:00 2001 From: Kayla Cinnamon Date: Sun, 22 May 2022 17:58:40 -0700 Subject: [PATCH 48/63] Merge release-1.14 into main (#544) Co-authored-by: Kayla Cinnamon Co-authored-by: Carlos Zamora --- TerminalDocs/command-line-arguments.md | 4 +- TerminalDocs/customize-settings/actions.md | 132 +++++++----------- TerminalDocs/customize-settings/appearance.md | 22 ++- .../customize-settings/interaction.md | 9 +- .../customize-settings/profile-advanced.md | 25 +++- .../customize-settings/profile-general.md | 7 +- 6 files changed, 93 insertions(+), 106 deletions(-) diff --git a/TerminalDocs/command-line-arguments.md b/TerminalDocs/command-line-arguments.md index c7e23a22..3248dd9d 100644 --- a/TerminalDocs/command-line-arguments.md +++ b/TerminalDocs/command-line-arguments.md @@ -3,7 +3,7 @@ title: Windows Terminal command line arguments description: Learn how to create command line arguments for Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/15/2021 +ms.date: 05/24/2022 ms.topic: how-to --- @@ -49,7 +49,7 @@ Below is the full list of supported commands and options for the `wt` command li | `new-tab`, `nt` | `--tabColor` | Creates a new tab with the tab color assigned. | Hex color as #RGB or #RRGGBB | > [!TIP] -> If you change the title of a tab in Windows Terminal and want that title to persist, you must enable the [suppressApplicationTitle](./customize-settings/actions.md#actions-6) option by setting it to `true`. +> If you change the title of a tab in Windows Terminal and want that title to persist, you must enable the [suppressApplicationTitle](./customize-settings/profile-advanced#suppress-title-changes) option by setting it to `true`. ### `Split-pane` command diff --git a/TerminalDocs/customize-settings/actions.md b/TerminalDocs/customize-settings/actions.md index d0661218..2941825e 100644 --- a/TerminalDocs/customize-settings/actions.md +++ b/TerminalDocs/customize-settings/actions.md @@ -3,7 +3,7 @@ title: Windows Terminal Actions description: Learn how to create custom actions for Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 02/03/2022 +ms.date: 05/24/2022 ms.topic: how-to --- @@ -190,7 +190,7 @@ This lets you navigate through your search matches. { "command": { "action": "findMatch", "direction": "prev" } } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -223,7 +223,7 @@ Without the `target` field, the custom settings file will be opened. { "command": { "action": "openSettings", "target": "defaultsFile" }, "keys": "ctrl+alt+," }, ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -296,7 +296,7 @@ _This command is not currently bound in the default settings_. { "command": { "action": "sendInput", "input": "\u001b[A" }, "keys": "" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -314,7 +314,7 @@ This closes the tab at a given index. If no index is provided, use the focused t **Command name:** `closeTab` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -332,7 +332,7 @@ This closes all tabs except for the one at an index. If no index is provided, us { "command": "closeOtherTabs" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -350,7 +350,7 @@ This closes the tabs following the tab at an index. If no index is provided, use { "command": "closeTabsAfter" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -370,7 +370,7 @@ This makes a copy of the current tab's profile and directory and opens it. This ### New tab -This creates a new tab. Without any arguments, this will open the default profile in a new tab. If an action is not specified, the default profile's equivalent setting will be used. +This creates a new tab. Without any arguments, this will open the default profile in a new tab. If an index is not specified, the default profile's equivalent setting will be used. If the index doesn't map to a profile, the keys are passed directly to the terminal (or ignored if no keys were used to invoke the action). **Command name:** `newTab` @@ -389,22 +389,19 @@ This creates a new tab. Without any arguments, this will open the default profil { "command": { "action": "newTab", "index": 8 }, "keys": "ctrl+shift+9" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | | `commandline` | Optional | Executable file name as a string | Executable run within the tab. | | `startingDirectory` | Optional | Folder location as a string | Directory in which the tab will open. | -| `elevate` | Optional | `true`, `false`, `null` | Overrides the [`elevate`](./profile-general.md#automatically-run-as-administrator-preview) property of the profile. When omitted, this action will behave according to the profile's `elevate` setting. When set to `true` or `false`, this action will behave as though the profile was set with `"elevate": true` or `"elevate": false` (respectively). | +| `elevate` | Optional | `true`, `false`, `null` | Overrides the [`elevate`](./profile-general.md#automatically-run-as-administrator) property of the profile. When omitted, this action will behave according to the profile's `elevate` setting. When set to `true` or `false`, this action will behave as though the profile was set with `"elevate": true` or `"elevate": false` (respectively). | | `tabTitle` | Optional | String | Title of the new tab. | | `index` | Optional | Integer | Profile that will open based on its position in the dropdown (starting at 0). | | `profile` | Optional | Profile's name or GUID as a string | Profile that will open based on its GUID or name. | | `colorScheme` | Optional | The name of a color scheme as a string | The scheme to use instead of the profile's set `colorScheme` | | `suppressApplicationTitle` | Optional | `true`, `false` | When set to `false`, applications can change the tab title by sending title change messages. When set to `true`, these messages are suppressed. If not provided, the behavior is inherited from the profile's settings. In order to enter a new tab title and have that title persist, this must be set to true. | -> [!IMPORTANT] -> The `elevate` property is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). - ### Open next tab This opens the tab to the right of the current one. @@ -417,7 +414,7 @@ This opens the tab to the right of the current one. { "command": "nextTab", "keys": "ctrl+tab" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -435,7 +432,7 @@ This opens the tab to the left of the current one. { "command": "prevTab", "keys": "ctrl+shift+tab" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -484,7 +481,7 @@ This opens a specific tab depending on the index. { "command": { "action": "switchToTab", "index": 8 }, "keys": "ctrl+alt+9" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -508,7 +505,7 @@ _This command is not currently bound in the default settings_. { "command": { "action": "renameTab", "title": null }, "keys": "" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -544,7 +541,7 @@ _This command is not currently bound in the default settings_. { "command": { "action": "setTabColor", "color": null }, "keys": "" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -578,7 +575,7 @@ This command moves the tab "backward" and "forward", which is equivalent to "lef { "command": { "action": "moveTab", "direction": "forward" } } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -602,7 +599,7 @@ This creates a new window. Without any arguments, this will open the default pro { "command": "newWindow", "keys": "ctrl+shift+n" }, ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -631,7 +628,7 @@ _This command is not currently bound in the default settings_. { "command": { "action": "renameWindow", "name": null }, "keys": "" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -709,7 +706,7 @@ This changes focus to a different pane depending on the direction. Setting the ` { "command": { "action": "moveFocus", "direction": "previous" }, "keys": "ctrl+alt+left" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -751,7 +748,7 @@ This changes the size of the active pane. { "command": { "action": "resizePane", "direction": "up" }, "keys": "alt+shift+up" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -790,14 +787,14 @@ This halves the size of the active pane and opens another. Without any arguments { "command": { "action": "splitPane", "split": "left" } } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | | `split` | Required | `"vertical"`, `"horizontal"`, `"auto"`, `"up"`, `"right"`, `"down"`, `"left"` | How the pane will split. `"auto"` will split in the direction that provides the most surface area. | | `commandline` | Optional | Executable file name as a string | Executable run within the pane. | | `startingDirectory` | Optional | Folder location as a string | Directory in which the pane will open. | -| `elevate` | Optional | `true`, `false`, `null` | Overrides the [`elevate`](./profile-general.md#automatically-run-as-administrator-preview) property of the profile. When omitted, this action will behave according to the profile's `elevate` setting. When set to `true` or `false`, this action will behave as though the profile was set with `"elevate": true` or `"elevate": false` (respectively). | +| `elevate` | Optional | `true`, `false`, `null` | Overrides the [`elevate`](./profile-general.md#automatically-run-as-administrator) property of the profile. When omitted, this action will behave according to the profile's `elevate` setting. When set to `true` or `false`, this action will behave as though the profile was set with `"elevate": true` or `"elevate": false` (respectively). | | `tabTitle` | Optional | String | Title of the tab when the new pane is focused. | | `index` | Optional | Integer | Profile that will open based on its position in the dropdown (starting at 0). | | `profile` | Optional | Profile's name or GUID as a string | Profile that will open based on its GUID or name. | @@ -806,9 +803,6 @@ This halves the size of the active pane and opens another. Without any arguments | `splitMode` | Optional | `"duplicate"` | Controls how the pane splits. Only accepts `"duplicate"`, which will duplicate the focused pane's profile into a new pane. | | `size` | Optional | Float | Specify how large the new pane should be, as a fraction of the current pane's size. `1.0` would be "all of the current pane", and `0.0` is "None of the parent". Defaults to `0.5`. | -> [!IMPORTANT] -> The `elevate` property is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). -
___ @@ -832,50 +826,13 @@ This copies the selected terminal content to your clipboard. If no selection exi { "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+insert" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | | `singleLine` | Optional | `true`, `false` | When `true`, the copied content will be copied as a single line. When `false`, newlines persist from the selected text. | | `copyFormatting` | Optional | `true`, `false`, `"all"`, `"none"`, `"html"`, `"rtf"` | When `true`, the color and font formatting of the selected text is also copied to your clipboard. When `false`, only plain text is copied to your clipboard. You can also specify which formats you would like to copy. When `null`, the global `"copyFormatting"` behavior is inherited. | -### Keyboard selection - -This modifies an existing selection. If no selection exists, the key chord is sent directly to the terminal. - -**Command name:** `updateSelection` - -**Default bindings:** - -```json -// Move by character -{ "command": {"action": "updateSelection", "direction": "left", "mode": "char" }, "keys": "shift+left" }, -{ "command": {"action": "updateSelection", "direction": "right", "mode": "char" }, "keys": "shift+right" }, -{ "command": {"action": "updateSelection", "direction": "up", "mode": "char" }, "keys": "shift+up" }, -{ "command": {"action": "updateSelection", "direction": "down", "mode": "char" }, "keys": "shift+down" }, - -// Move by word -{ "command": {"action": "updateSelection", "direction": "left", "mode": "word" }, "keys": "ctrl+shift+left" }, -{ "command": {"action": "updateSelection", "direction": "right", "mode": "word" }, "keys": "ctrl+shift+right" }, - -// Move by viewport -{ "command": {"action": "updateSelection", "direction": "left", "mode": "view" }, "keys": "shift+home" }, -{ "command": {"action": "updateSelection", "direction": "right", "mode": "view" }, "keys": "shift+end" }, -{ "command": {"action": "updateSelection", "direction": "up", "mode": "view" }, "keys": "shift+pgup" }, -{ "command": {"action": "updateSelection", "direction": "down", "mode": "view" }, "keys": "shift+pgdn" }, - -// Move by buffer -{ "command": {"action": "updateSelection", "direction": "up", "mode": "buffer" }, "keys": "ctrl+shift+home" }, -{ "command": {"action": "updateSelection", "direction": "down", "mode": "buffer" }, "keys": "ctrl+shift+end" }, -``` - -#### Actions - -| Name | Necessity | Accepts | Description | -| ---- | --------- | ------- | ----------- | -| `direction` | Required | `"left"`, `"right"`, `"up"`, `"down"` | Direction in which the selection endpoint will move. | -| `mode` | Required | `"char"`, `"word"`, `"view"`, `"buffer"` | Controls how much the endpoint moves by. | - ### Paste This inserts the content that was copied onto the clipboard. @@ -893,6 +850,21 @@ This inserts the content that was copied onto the clipboard. { "command": "paste", "keys": "shift+insert" } ``` +### Select all ([Preview](https://aka.ms/terminal-preview)) + +This selects all of the content in the text buffer. + +**Command name:** `selectAll` + +**Default bindings:** + +```json +{ "command": "selectAll", "keys": "ctrl+shift+a" } +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). +
___ @@ -911,7 +883,7 @@ This scrolls the screen up by the number of rows defined by `"rowsToScroll"`. If { "command": "scrollUp", "keys": "ctrl+shift+up" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -929,7 +901,7 @@ This scrolls the screen down by the number of rows defined by `"rowsToScroll"`. { "command": "scrollDown", "keys": "ctrl+shift+down" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -997,7 +969,7 @@ This action can be used to manually clear the terminal buffer. This is useful fo { "command": { "action": "clearBuffer", "clear": "all" } } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -1022,7 +994,7 @@ This changes the text size by a specified point amount. { "command": { "action": "adjustFontSize", "delta": -1 }, "keys": "ctrl+numpad_minus" } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -1041,7 +1013,7 @@ This resets the text size to the default value. { "command": "resetFontSize", "keys": "ctrl+numpad_0" } ``` -### Adjust opacity ([Preview](https://aka.ms/terminal-preview)) +### Adjust opacity This changes the opacity of the window. If `relative` is set to true, it will adjust the opacity relative to the current opacity. Otherwise, it will set the opacity directly to the given `opacity` @@ -1056,16 +1028,13 @@ This changes the opacity of the window. If `relative` is set to true, it will ad { "command": { "action": "adjustOpacity", "relative": false, "opacity": 100 } } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | | `opacity` | Optional | Integer | How opaque the terminal should become or how much the opacity should be changed by, depending on the value of `relative` | | `relative` | Optional | Boolean | If true, then adjust the current opacity by the given `opacity` parameter. If false, set the opacity to exactly that value. | -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). - ### Toggle pixel shader effects This toggles any pixel shader effects enabled in the terminal. If the user specified a valid shader with `experimental.pixelShaderPath`, this action will toggle that shader on/off. This will also toggle the "retro terminal effect", which is enabled with the profile setting `experimental.retroTerminalEffect`. @@ -1087,7 +1056,7 @@ Changes the active color scheme. **Command name:** `setColorScheme` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -1105,7 +1074,7 @@ ___ ## Buffer exporting -### Export buffer ([Preview](https://aka.ms/terminal-preview)) +### Export buffer This allows the user to export the text of the buffer to a file. If the file doesn't exist, it will be created. If the file already exists, its contents will be replaced with the Terminal buffer text. @@ -1117,15 +1086,12 @@ This allows the user to export the text of the buffer to a file. If the file doe { "command": { "action": "exportBuffer" } } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | | `path` | Optional | String | If provided, then the Terminal will export the buffer contents to the given file. Otherwise, the terminal will open a file picker to choose the file to export to. | -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). - ___ ## Global commands @@ -1153,7 +1119,7 @@ _This command is not currently bound in the default settings_. { "keys": "", "command": { "action": "globalSummon" } } ``` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | @@ -1260,7 +1226,7 @@ This action allows the user to bind multiple sequential actions to one command. **Command name:** `multipleActions` -#### Actions +#### Parameters | Name | Necessity | Accepts | Description | | ---- | --------- | ------- | ----------- | diff --git a/TerminalDocs/customize-settings/appearance.md b/TerminalDocs/customize-settings/appearance.md index 2afca423..7f7f8cd7 100644 --- a/TerminalDocs/customize-settings/appearance.md +++ b/TerminalDocs/customize-settings/appearance.md @@ -3,7 +3,7 @@ title: Windows Terminal Appearance Settings description: Learn how to customize appearance settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/08/2021 +ms.date: 05/24/2022 ms.topic: how-to --- @@ -219,5 +219,21 @@ When this is set to `true`, closing a window with multiple tabs open _will_ requ :::column span=""::: ![Windows Terminal confirm close all tabs](./../images/confirm-close-all-tabs.png) -:::column-end::: -:::row-end::: +
+ +___ + +## Use a background image for the entire window ([Preview](https://aka.ms/terminal-preview)) + +When set to `true`, the background image for the currently focused profile is expanded to encompass the entire window, beneath other panes. This is an experimental feature, and its continued existence is not guaranteed. + +**Property name:** `experimental.useBackgroundImageForWindow` + +**Necessity:** Optional + +**Accepts:** `true`, `false` + +**Default value:** `false` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). diff --git a/TerminalDocs/customize-settings/interaction.md b/TerminalDocs/customize-settings/interaction.md index b6539de5..65e96588 100644 --- a/TerminalDocs/customize-settings/interaction.md +++ b/TerminalDocs/customize-settings/interaction.md @@ -3,7 +3,7 @@ title: Windows Terminal Interaction Settings description: Learn how to customize interaction settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 02/03/2022 +ms.date: 05/24/2022 ms.topic: how-to --- @@ -53,13 +53,13 @@ When this is set to `true` and you copy text in a rectangular (block) selection **Accepts:** `true`, `false` -**Default value:** `false` +**Default value:** `true`
___ -## Trim trailing whitespace on paste ([Preview](https://aka.ms/terminal-preview)) +## Trim trailing whitespace on paste When enabled, the terminal will automatically trim trailing whitespace characters when pasting text to the terminal. @@ -71,9 +71,6 @@ When enabled, the terminal will automatically trim trailing whitespace character **Default value:** `true` -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). - ___ ## Word delimiters diff --git a/TerminalDocs/customize-settings/profile-advanced.md b/TerminalDocs/customize-settings/profile-advanced.md index a65bdaa9..2d41aedc 100644 --- a/TerminalDocs/customize-settings/profile-advanced.md +++ b/TerminalDocs/customize-settings/profile-advanced.md @@ -3,7 +3,7 @@ title: Windows Terminal Advanced Profile Settings description: Learn how to customize the advanced profile settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 02/03/2022 +ms.date: 05/24/2022 ms.topic: how-to --- @@ -137,7 +137,7 @@ Controls what happens when the application emits a BEL character. When set to `" ___ -## Bell sound ([Preview](https://aka.ms/terminal-preview)) +## Bell sound When `bellStyle` is set to `"all"` or `"audible"`, this allows you to choose the audio file for the bell. If you have an array of sounds set, the terminal will pick one at random. @@ -147,18 +147,29 @@ When `bellStyle` is set to `"all"` or `"audible"`, this allows you to choose the **Accepts:** File location as a string or an array of file locations as strings -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). +___ + +## Experimental text rendering engine + +Enables use of the experimental text rendering engine for the profile. This is an experimental feature and its continued existence is not guaranteed. A new instance of the profile needs to be opened in order for this setting to take effect. + +**Property name:** `experimental.useAtlasEngine` + +**Necessity:** Optional + +**Accepts:** `true`, `false` + +**Default value:** `false`
___ -## Experimental text rendering engine ([Preview](https://aka.ms/terminal-preview)) +## VT passthrough mode ([Preview](https://aka.ms/terminal-preview)) -Enables use of the experimental text rendering engine for the profile. This is an experimental feature and its continued existence is not guaranteed. A new instance of the profile needs to be opened in order for this setting to take effect. +When set to true, directs the PTY for this connection to use pass-through mode instead of the original Conhost PTY simulation engine. This is an experimental feature, and its continued existence is not guaranteed. -**Property name:** `experimental.useAtlasEngine` +**Property name:** `experimental.connection.passthroughMode` **Necessity:** Optional diff --git a/TerminalDocs/customize-settings/profile-general.md b/TerminalDocs/customize-settings/profile-general.md index 510d7469..cb7a4554 100644 --- a/TerminalDocs/customize-settings/profile-general.md +++ b/TerminalDocs/customize-settings/profile-general.md @@ -3,7 +3,7 @@ title: Windows Terminal General Profile Settings description: Learn how to customize the general profile settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 02/03/2022 +ms.date: 05/24/2022 ms.topic: how-to --- @@ -107,7 +107,7 @@ If set, this will replace the `name` as the title to pass to the shell on startu
___ -## Automatically run as Administrator ([Preview](https://aka.ms/terminal-preview)) +## Automatically run as Administrator If set, this profile will automatically open up in an "elevated" window (running as Administrator) by default. If you run this profile from an unelevated window, then a new elevated terminal window will be created to host this profile. If you launch this profile from an already elevated window, then it will open as a new tab. @@ -127,9 +127,6 @@ Elevated and unelevated tabs cannot exist in the same terminal window. For more **Default value:** `false` -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). -
___ From 26c486ffbaccabe0b8f6bda3b598b7ad76acf7e3 Mon Sep 17 00:00:00 2001 From: Kayla Cinnamon Date: Sun, 22 May 2022 18:00:13 -0700 Subject: [PATCH 49/63] Fix link --- TerminalDocs/command-line-arguments.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/command-line-arguments.md b/TerminalDocs/command-line-arguments.md index 3248dd9d..ac9d3234 100644 --- a/TerminalDocs/command-line-arguments.md +++ b/TerminalDocs/command-line-arguments.md @@ -49,7 +49,7 @@ Below is the full list of supported commands and options for the `wt` command li | `new-tab`, `nt` | `--tabColor` | Creates a new tab with the tab color assigned. | Hex color as #RGB or #RRGGBB | > [!TIP] -> If you change the title of a tab in Windows Terminal and want that title to persist, you must enable the [suppressApplicationTitle](./customize-settings/profile-advanced#suppress-title-changes) option by setting it to `true`. +> If you change the title of a tab in Windows Terminal and want that title to persist, you must enable the [suppressApplicationTitle](./customize-settings/profile-advanced.md#suppress-title-changes) option by setting it to `true`. ### `Split-pane` command From b80f3cf6ca9ae98c6a55e0d6d8528ed27a5cd380 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 9 Jun 2022 14:56:11 -0700 Subject: [PATCH 50/63] Add package id command for winget (#548) --- TerminalDocs/images/oh-my-posh-winget.png | Bin 0 -> 73682 bytes TerminalDocs/tutorials/custom-prompt-setup.md | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 TerminalDocs/images/oh-my-posh-winget.png diff --git a/TerminalDocs/images/oh-my-posh-winget.png b/TerminalDocs/images/oh-my-posh-winget.png new file mode 100644 index 0000000000000000000000000000000000000000..4cfd17c3f7522d11cb73f5b68e21f8a3e5b13b0f GIT binary patch literal 73682 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 literal 0 HcmV?d00001 diff --git a/TerminalDocs/tutorials/custom-prompt-setup.md b/TerminalDocs/tutorials/custom-prompt-setup.md index 6a699c43..f2f24e5b 100644 --- a/TerminalDocs/tutorials/custom-prompt-setup.md +++ b/TerminalDocs/tutorials/custom-prompt-setup.md @@ -53,6 +53,10 @@ This will install: - `oh-my-posh.exe`: The Windows executable - `themes`: The latest [Oh My Posh themes](https://ohmyposh.dev/docs/themes) +You will need to agree to the source terms and may run into the instance that more than one package is available. In this case, select package ID that you wish to use and re-enter the command: `winget install `. + +![Screenshot of winget install oh my posh packages.](../images/oh-my-posh-winget.png) + To ensure you have the latest updates, you can use the following command: `winget upgrade oh-my-posh`. > [!NOTE] From 51425a8aac4669bef2360c2e892a23e78371a89d Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Wed, 6 Jul 2022 11:38:02 -0500 Subject: [PATCH 51/63] clarify (#551) --- TerminalDocs/install.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/TerminalDocs/install.md b/TerminalDocs/install.md index 40021659..652558cf 100644 --- a/TerminalDocs/install.md +++ b/TerminalDocs/install.md @@ -19,7 +19,10 @@ To try the latest preview features, you may also want to [install Windows Termin > [!NOTE] > If you don't have access to the Microsoft Store, the builds are published on the **[GitHub releases page](https://github.com/microsoft/terminal/releases)**. If you install from GitHub, Windows Terminal will not automatically update with new versions. For additional installation options using a package manager (winget, chocolatey, scoop), see the **[Windows Terminal product repo](https://github.com/microsoft/terminal#other-install-methods)**. -## Set your default terminal application ([Preview](https://aka.ms/terminal-preview)) +## Set your default terminal application + +> [!IMPORTANT] +> This feature is only available in [Windows 11](https://www.microsoft.com/windows/). To open any command line application with Windows Terminal, set it as your default terminal application. @@ -28,9 +31,6 @@ To open any command line application with Windows Terminal, set it as your defau ![Screenshot of Windows Terminal Startup default in Settings UI](./images/settings-default-shell.png) -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). - ## Set your default terminal profile After installation, when you open Windows Terminal, it will start with the [PowerShell](/powershell) command line as the default profile in the open tab. From 41875810b9c47d57fe7441bdd445410586fbcef1 Mon Sep 17 00:00:00 2001 From: Kayla Cinnamon Date: Wed, 6 Jul 2022 10:38:48 -0700 Subject: [PATCH 52/63] Merge release-1.15 into main (#554) * Document keyboard selection (#552) * minor tweaks * Document scroll marks * Fix warning * Remove old preview labels Co-authored-by: Carlos Zamora --- TerminalDocs/customize-settings/actions.md | 121 +++++++++++++++++- TerminalDocs/customize-settings/appearance.md | 7 +- .../customize-settings/profile-advanced.md | 39 +++++- TerminalDocs/selection.md | 85 ++++++++++++ 4 files changed, 239 insertions(+), 13 deletions(-) create mode 100644 TerminalDocs/selection.md diff --git a/TerminalDocs/customize-settings/actions.md b/TerminalDocs/customize-settings/actions.md index 2941825e..3b1c9694 100644 --- a/TerminalDocs/customize-settings/actions.md +++ b/TerminalDocs/customize-settings/actions.md @@ -3,7 +3,7 @@ title: Windows Terminal Actions description: Learn how to create custom actions for Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 05/24/2022 +ms.date: 07/06/2022 ms.topic: how-to --- @@ -823,7 +823,8 @@ This copies the selected terminal content to your clipboard. If no selection exi // In defaults.json { "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+shift+c" }, -{ "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+insert" } +{ "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+insert" }, +{ "command": { "action": "copy", "singleLine": false }, "keys": "enter" } ``` #### Parameters @@ -850,7 +851,7 @@ This inserts the content that was copied onto the clipboard. { "command": "paste", "keys": "shift+insert" } ``` -### Select all ([Preview](https://aka.ms/terminal-preview)) +### Select all This selects all of the content in the text buffer. @@ -862,6 +863,48 @@ This selects all of the content in the text buffer. { "command": "selectAll", "keys": "ctrl+shift+a" } ``` +### Mark mode ([Preview](https://aka.ms/terminal-preview)) + +This toggles mark mode. Mark mode is a mode where you can use the keyboard to create a selection at the cursor's position in the terminal. + +**Command name:** `markMode` + +**Default bindings:** + +```json +{ "command": "markMode", "keys": "ctrl+shift+m" }, +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Switch selection marker ([Preview](https://aka.ms/terminal-preview)) + +When modifying a selection using the keyboard, you are moving one end of the selection around. You can use this action to switch to the other selection marker. + +**Command name:** `switchSelectionEndpoint` + +**Default bindings:** + +```json +{ "command": "switchSelectionEndpoint" }, +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Toggle block selection ([Preview](https://aka.ms/terminal-preview)) + +Makes the exisiting selection a block selection, meaning that the selected area is a rectangle, as opposed to wrapping to the beginning and end of each line. + +**Command name:** `toggleBlockSelection` + +**Default bindings:** + +```json +{ "command": "toggleBlockSelection" }, +``` + > [!IMPORTANT] > This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). @@ -1068,6 +1111,78 @@ Changes the active color scheme. { "command": { "action": "setColorScheme", "colorScheme": "Campbell" }, "keys": "" } ``` +### Experimental add scroll mark ([Preview](https://aka.ms/terminal-preview)) + +Adds a scroll mark to the text buffer. If there's a selection, the mark is placed at the selection, otherwise it's placed at the cursor row. This is an experimental feature, and its continued existence is not guaranteed. + +**Command name:** `addMark` + +#### Parameters + +| Name | Necessity | Accepts | Description | +| ---- | --------- | ------- | ----------- | +| `color` | Optional | String, in hex format: `"#rgb"` or `"#rrggbb"` | The color of the mark. | + +**Example binding:** + +```json +{ "command": { "action": "addMark", "color": "#ff00ff" } } +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Experimental scroll to mark ([Preview](https://aka.ms/terminal-preview)) + +Scrolls to the scroll mark in the given direction. This is an experimental feature, and its continued existence is not guaranteed. + +**Command name:** `scrollToMark` + +#### Parameters + +| Name | Necessity | Accepts | Description | +| ---- | --------- | ------- | ----------- | +| `direction` | Required | `"first"`, `"previous"`, `"next"`, `"last"` | The direction in which to scroll. | + +**Example binding:** + +```json +{ "command": { "action": "scrollToMark", "direction": "previous" } } +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Experimental clear mark ([Preview](https://aka.ms/terminal-preview)) + +Clears scroll mark at the current position, either at a selection if there is one or at the cursor position. This is an experimental feature, and its continued existence is not guaranteed. + +**Command name:** `clearMark` + +**Example binding:** + +```json +{ "command": { "action": "clearMark" } } +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Experimental clear all marks ([Preview](https://aka.ms/terminal-preview)) + +Clears all scroll marks in the text buffer. This is an experimental feature, and its continued existence is not guaranteed. + +**Command name:** `clearAllMarks` + +**Example binding:** + +```json +{ "command": { "action": "clearAllMarks" } } +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). +
___ diff --git a/TerminalDocs/customize-settings/appearance.md b/TerminalDocs/customize-settings/appearance.md index 7f7f8cd7..4f7a8ce9 100644 --- a/TerminalDocs/customize-settings/appearance.md +++ b/TerminalDocs/customize-settings/appearance.md @@ -3,7 +3,7 @@ title: Windows Terminal Appearance Settings description: Learn how to customize appearance settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 05/24/2022 +ms.date: 07/06/2022 ms.topic: how-to --- @@ -223,7 +223,7 @@ When this is set to `true`, closing a window with multiple tabs open _will_ requ ___ -## Use a background image for the entire window ([Preview](https://aka.ms/terminal-preview)) +## Use a background image for the entire window When set to `true`, the background image for the currently focused profile is expanded to encompass the entire window, beneath other panes. This is an experimental feature, and its continued existence is not guaranteed. @@ -234,6 +234,3 @@ When set to `true`, the background image for the currently focused profile is ex **Accepts:** `true`, `false` **Default value:** `false` - -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). diff --git a/TerminalDocs/customize-settings/profile-advanced.md b/TerminalDocs/customize-settings/profile-advanced.md index 2d41aedc..ad615042 100644 --- a/TerminalDocs/customize-settings/profile-advanced.md +++ b/TerminalDocs/customize-settings/profile-advanced.md @@ -3,7 +3,7 @@ title: Windows Terminal Advanced Profile Settings description: Learn how to customize the advanced profile settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 05/24/2022 +ms.date: 07/06/2022 ms.topic: how-to --- @@ -149,6 +149,38 @@ When `bellStyle` is set to `"all"` or `"audible"`, this allows you to choose the ___ +## Scroll marks ([Preview](https://aka.ms/terminal-preview)) + +The following settings modify how scroll marks behave in Windows Terminal. + +### Experimental automatically add scroll marks ([Preview](https://aka.ms/terminal-preview)) + +Automatically marks prompts when set to `true`. This is an experimental feature, and its continued existence is not guaranteed. + +**Property name:** `experimental.autoMarkPrompts` + +**Necessity:** Optional + +**Accepts:** `true`, `false` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Experimental show marks on scrollbar ([Preview](https://aka.ms/terminal-preview)) + +Displays marks on the scrollbar when set to `true`. This is an experimental feature, and its continued existence is not guaranteed. + +**Property name:** `experimental.showMarksOnScrollbar` + +**Necessity:** Optional + +**Accepts:** `true`, `false` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +___ + ## Experimental text rendering engine Enables use of the experimental text rendering engine for the profile. This is an experimental feature and its continued existence is not guaranteed. A new instance of the profile needs to be opened in order for this setting to take effect. @@ -165,7 +197,7 @@ Enables use of the experimental text rendering engine for the profile. This is a ___ -## VT passthrough mode ([Preview](https://aka.ms/terminal-preview)) +## VT passthrough mode When set to true, directs the PTY for this connection to use pass-through mode instead of the original Conhost PTY simulation engine. This is an experimental feature, and its continued existence is not guaranteed. @@ -177,9 +209,6 @@ When set to true, directs the PTY for this connection to use pass-through mode i **Default value:** `false` -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). -
___ diff --git a/TerminalDocs/selection.md b/TerminalDocs/selection.md new file mode 100644 index 00000000..33b21249 --- /dev/null +++ b/TerminalDocs/selection.md @@ -0,0 +1,85 @@ +--- +title: Selection +description: Learn how to select text in Windows Terminal. +author: cinnamon-msft +ms.author: cinnamon +ms.date: 07/06/2022 +ms.topic: how-to +--- + +# Selecting text in Windows Terminal + +Selecting text is straightforward in Windows Terminal, but there are a lot of additional features in this space that make it even better. + +## Mouse support + +Left-click and drag your mouse to create a selection. Double-click expands the selection by word, whereas triple-click expands by line. + +If you are holding the Alt key, you will create a block selection (as opposed to a line selection). Block selections create a rectangular region that do not wrap to the end of the line. + +If you are holding the Shift key, you can explicitly expand the selection to a specific point on the terminal without the need to click and drag. + +Once you have a selection present, you have a few options. A single left-click will clear your selection. If you actually want to use it, you can right-click to copy the selected text to your clipboard and clear the selection. If you right-click again, the contents of your clipboard will then be pasted into the terminal. + +> [!NOTE] +> Windows Terminal supports mouse input in Windows Subsystem for Linux (WSL) applications as well as Windows applications that use virtual terminal (VT) input. This means applications such as [tmux](https://github.com/tmux/tmux/wiki) and [Midnight Commander](https://www.linuxhelp.com/how-to-install-midnight-commander-in-linux) will recognize when you select items in the terminal window. If an application is in mouse mode, you can hold down Shift to make a selection instead of sending VT input. + +## Keyboard support + +You can create a selection by using the `selectAll` or `markMode` actions. The `selectAll` action selects all the text in the buffer. The `markMode` action toggles a special mode where a selection is created at the cursor's position in the terminal. When in mark mode, you can use the following non-configurable key bindings to move the cursor around: + +| Key binding | Result | +| ----------- | ------ | +| Arrow keys | Move by character in the specified direction | +| Ctrl + Left | Move to the beginning of the previous or existing word | +| Ctrl + Right | Move to the end of the next or existing word | +| Home | Move to the beginning of the line | +| End | Move to the end of the line | +| Pgup | Move up by a page (viewport) | +| Pgdn | Move down by a page (viewport) | +| Ctrl + Home | Move to the beginning of the buffer | +| Ctrl + End | Move to the end of the buffer | + +Regardless of being in mark mode, you can expand an existing selection using the following non-configurable key bindings: + +| Key binding | Result | +| ----------- | ------ | +| Shift + Arrow keys | Expand by character in the specified direction | +| Ctrl + Left | Expand to the beginning of the previous or existing word | +| Ctrl + Right | Expand to the end of the next or existing word | +| Shift + Home | Expand to the beginning of the line | +| Shift + End | Expand to the end of the line | +| Shift + Pgup | Expand up by a page (viewport) | +| Shift + Pgdn | Expand down by a page (viewport) | +| Ctrl + Shift + Home | Expand to the beginning of the buffer | +| Ctrl + Shift + End | Expand to the end of the buffer | + +Use the `toggleBlockSelection` action to transform the existing selection into a block selection. + +Any selection created or modified by the keyboard also displays selection markers to indicate which end of the selection is actively being moved. You can use the `switchSelectionEndpoint` action to begin moving the other end of the selection. + +Once you have a selection present, you have a few options. You can use the ESC key to clear the selection. Alternatively, most key input clears the selection and passes the key event directly to the underlying shell. If you actually want to use the selected text, you can use the `copy` action to copy it to your clipboard. + +## Copying selected text + +As mentioned above, selected text can be copied with a right-click or the `copy` action. However, there are a number of settings regarding copying text that you can customize: +- Copying formatted text + - You can use the `copyFormatting` global setting to also copy the formatting of the selected text itself to the clipboard. This allows you to copy the terminal's font information such as foreground color, background color, and font. + - If you want to limit copying the formatting to certain key bindings (or commands), you can modify the `copyFormatting` parameter on a `copy` action. +- Copying as a single line + - You can copy text as a single line using the `singleLine` parameter in the `copy` action. +- Removing trailing whitespace from block selections + - You can remove the trailing whitespace from a block selection using the `trimBlockSelection` global setting. + +You can also use the `copyOnSelect` global setting to have newly selected text automatically copied to your clipboard. With this setting enabled, if a selection is present, right-clicking the terminal copies and pastes the selected text to your terminal. + +> [!NOTE] +> If `copyOnSelect` is enabled, modifying the selection using the keyboard does not automatically copy the newly selected text. You will need to manually copy the text using the `copy` action or by right-clicking the terminal. + +## Customizing the appearance of selections + +Color schemes let you customize the selection color using the `selectionBackground` property in a color scheme. Alternatively, you can override the selection color for a specific profile using the `selectionBackground` profile setting. + +## Customizing word delimiters + +As mentioned above, double-clicking and using Ctrl + Shift + Arrow keys (or Ctrl + Arrow keys when in mark mode) allow you to navigate by word. However, words can be separated by more than just whitespace. You can customize these word boundaries using the `wordDelimiters` global setting. \ No newline at end of file From d83b79aef11585ff6f9cf14345c7769876893c6f Mon Sep 17 00:00:00 2001 From: cinnamon-msft Date: Wed, 6 Jul 2022 10:42:29 -0700 Subject: [PATCH 53/63] Add selection to TOC --- TerminalDocs/TOC.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TerminalDocs/TOC.yml b/TerminalDocs/TOC.yml index 95afc2fe..f6609f02 100644 --- a/TerminalDocs/TOC.yml +++ b/TerminalDocs/TOC.yml @@ -30,6 +30,8 @@ href: command-palette.md - name: Search href: search.md + - name: Selection + href: selection.md - name: Panes href: panes.md - name: Dynamic profiles From 7dbc720a8168aaab18c8e5b7997c0d4d499a28e2 Mon Sep 17 00:00:00 2001 From: Alexey Grigorev Date: Fri, 8 Jul 2022 00:09:26 +0200 Subject: [PATCH 54/63] Instructions for MINGW (#525) * Instructions for MINGW - Added instructions for MINGW - Added a link to this file, so it's easier to find it for people who'd like to contribue * Update TerminalDocs/tutorials/new-tab-same-directory.md Co-authored-by: Philippe Blain Co-authored-by: Philippe Blain --- TerminalDocs/tutorials/new-tab-same-directory.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index f0c7555f..6e1dfa00 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -84,6 +84,16 @@ function prompt } ``` +#### MINGW + +For MINGW, Git Bash and Cygwin, you need to modify the `PROMT_COMMAND` for WSL: replace `wslpath` with `cygpath`. + +Add the following line to the end of your `.bashrc` file: + +```bash +PROMPT_COMMAND=${PROMPT_COMMAND:+"$PROMPT_COMMAND; "}'printf "\e]9;9;%s\e\\" "`cygpath -w $PWD`"' +``` + ### WSL #### `bash` @@ -110,7 +120,8 @@ precmd_functions+=(keep_current_path) The `precmd_functions` hook tells zsh what commands to run before displaying the prompt. The `printf` statement is what we're using to append the sequence for setting the working directory with the Terminal. The `$(wslpath -w "$PWD")` bit will invoke the `wslpath` executable to convert the current directory into its Windows-like path. Using `precmd_functions+=` make sure we append the `keep_current_path` function to any existing function already defined for this hook. > [!NOTE] -> Don't see your favorite shell here? If you figure it out, feel free to open a PR to contribute a solution for your preferred shell! +> Don't see your favorite shell here? If you figure it out, feel free to [open a PR](https://github.com/MicrosoftDocs/terminal/edit/main/TerminalDocs/tutorials/new-tab-same-directory.md) +> to contribute a solution for your preferred shell! ## Using actions to duplicate the path From 1671a252dbe6c94e356f1c1fdc40cffcdb6b4839 Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Thu, 7 Jul 2022 15:14:40 -0700 Subject: [PATCH 55/63] Add missing [Shift] in key binding (#557) --- TerminalDocs/selection.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TerminalDocs/selection.md b/TerminalDocs/selection.md index 33b21249..3032f0c5 100644 --- a/TerminalDocs/selection.md +++ b/TerminalDocs/selection.md @@ -45,8 +45,8 @@ Regardless of being in mark mode, you can expand an existing selection using the | Key binding | Result | | ----------- | ------ | | Shift + Arrow keys | Expand by character in the specified direction | -| Ctrl + Left | Expand to the beginning of the previous or existing word | -| Ctrl + Right | Expand to the end of the next or existing word | +| Ctrl + Shift + Left | Expand to the beginning of the previous or existing word | +| Ctrl + Shift + Right | Expand to the end of the next or existing word | | Shift + Home | Expand to the beginning of the line | | Shift + End | Expand to the end of the line | | Shift + Pgup | Expand up by a page (viewport) | From e4f65a77991e48b6b4a2205ee60600844293ef85 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 7 Jul 2022 15:32:26 -0700 Subject: [PATCH 56/63] Fix PowerShell commands Based on https://github.com/MicrosoftDocs/terminal/issues/527 --- TerminalDocs/command-line-arguments.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TerminalDocs/command-line-arguments.md b/TerminalDocs/command-line-arguments.md index ac9d3234..b0909312 100644 --- a/TerminalDocs/command-line-arguments.md +++ b/TerminalDocs/command-line-arguments.md @@ -431,7 +431,7 @@ wt --tabColor #009999 ; new-tab --tabColor #f59218 #### [PowerShell](#tab/powershell) ```powershell -wt --tabColor #009999 ; new-tab --tabColor #f59218 +wt --tabColor '#009999' `; new-tab --tabColor '#f59218' ``` #### [Linux](#tab/linux) @@ -448,7 +448,7 @@ Execution aliases do not work in WSL distributions. If you want to use wt.exe fr When `--tabColor` is set for a tab, it is associated with the first pane of this tab. Hence in a tab with multiple panes, the color will be applied only if the first pane is in focus. To set the tab color for additional panes, you will need to add the `--tabColor` parameter to the `split-pane` subcommand as well. In the example below, a tab with two panes is created with tab colors specified for each pane: ```powershell -wt new-tab --tabColor #009999 ; split-pane --tabColor #f59218 +wt new-tab --tabColor '#009999' `; split-pane --tabColor '#f59218' ``` ### Color scheme From 91a996e7150e01e23a128c959ebdc6a552c12d4b Mon Sep 17 00:00:00 2001 From: Tobi <22715034+twobiers@users.noreply.github.com> Date: Fri, 8 Jul 2022 03:48:34 +0200 Subject: [PATCH 57/63] Add Starship example (#530) Co-authored-by: Matt Wojciakowski --- .../tutorials/new-tab-same-directory.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index 6e1dfa00..47df0e76 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -65,7 +65,7 @@ function prompt { #### PowerShell with posh-git -If you're using posh-git, then that will already modify your prompt. In that case, you'll want to only add the necessary output to the already modified prompt. The following example is a lightly modified version of this example from [the ConEmu docs](https://conemu.github.io/en/ShellWorkDir.html#PowerShellPoshGit): +If you're using [posh-git](https://github.com/dahlbyk/posh-git), then that will already modify your prompt. In that case, you'll want to only add the necessary output to the already modified prompt. The following example is a lightly modified version of this example from [the ConEmu docs](https://conemu.github.io/en/ShellWorkDir.html#PowerShellPoshGit): ```powershell function prompt @@ -84,6 +84,21 @@ function prompt } ``` +#### PowerShell with Starship + +If you're using [Starship](http://starship.rs/), then that will already modify your prompt. In that case, you'll want to only add the necessary output to the already modified prompt. + +```powershell +function Invoke-Starship-PreCommand { + $loc = $($executionContext.SessionState.Path.CurrentLocation); + $prompt = "$([char]27)]9;12$([char]7)" + if ($loc.Provider.Name -eq "FileSystem") + { + $prompt += "$([char]27)]9;9;`"$($loc.Path)`"$([char]7)" + } + $host.ui.Write($prompt) +} + #### MINGW For MINGW, Git Bash and Cygwin, you need to modify the `PROMT_COMMAND` for WSL: replace `wslpath` with `cygpath`. From a394b14681197b5a10756d70f5210014a6cc5d81 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Fri, 8 Jul 2022 10:50:33 -0700 Subject: [PATCH 58/63] Add Fish shell Resolves https://github.com/MicrosoftDocs/terminal/issues/523 --- TerminalDocs/tutorials/new-tab-same-directory.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index 47df0e76..3c73afc2 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -3,7 +3,7 @@ title: Opening a tab/pane in the same directory description: In this tutorial, you learn how to configure your shell to allow Windows Terminal to open tabs in the same path. author: zadjii-msft ms.author: migrie -ms.date: 11/18/2021 +ms.date: 07/08/2022 ms.topic: tutorial #Customer intent: As a developer or IT admin, I want to open tabs in the same working directory as my current tab. --- @@ -134,6 +134,20 @@ precmd_functions+=(keep_current_path) The `precmd_functions` hook tells zsh what commands to run before displaying the prompt. The `printf` statement is what we're using to append the sequence for setting the working directory with the Terminal. The `$(wslpath -w "$PWD")` bit will invoke the `wslpath` executable to convert the current directory into its Windows-like path. Using `precmd_functions+=` make sure we append the `keep_current_path` function to any existing function already defined for this hook. +#### Fish + +If you're using [Fish shell](https://fishshell.com/), add the following lines to the end of your config file located at `~/.config/fish/config.fish`: + +```bash +function storePathForWindowsTerminal --on-variable PWD + if test -n "$WT_SESSION" + printf "\e]9;9;%s\e\\" (wslpath -w "$PWD") + end +end +``` + +This function will be called whenever the current path is changed to confirm the current session is opened by Windows Terminal (verifying $WT_SESSION) and sending Operating System Command (OSC 9;9;), with the Windows equivalent path (`wslpath -w`) of current path. + > [!NOTE] > Don't see your favorite shell here? If you figure it out, feel free to [open a PR](https://github.com/MicrosoftDocs/terminal/edit/main/TerminalDocs/tutorials/new-tab-same-directory.md) > to contribute a solution for your preferred shell! From 00bcff65a35ad824b163847e3ff8a1382397e1e6 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Fri, 8 Jul 2022 11:39:42 -0700 Subject: [PATCH 59/63] Move Mingw under WSL section --- .../tutorials/new-tab-same-directory.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index 3c73afc2..70d41893 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -8,7 +8,7 @@ ms.topic: tutorial #Customer intent: As a developer or IT admin, I want to open tabs in the same working directory as my current tab. --- -# Tutorial: Opening a tab/pane in the same directory in Windows Terminal +# Tutorial: Opening a tab or pane in the same directory in Windows Terminal Typically, the "new tab" and "split pane" actions will always open a new tab/pane in whatever the `startingDirectory` is for that profile. However, on other platforms, it's common for new tabs to automatically use the working directory of the current tab as the starting directory for a new tab. This allows the user to quickly multitask in a single directory. @@ -99,16 +99,6 @@ function Invoke-Starship-PreCommand { $host.ui.Write($prompt) } -#### MINGW - -For MINGW, Git Bash and Cygwin, you need to modify the `PROMT_COMMAND` for WSL: replace `wslpath` with `cygpath`. - -Add the following line to the end of your `.bashrc` file: - -```bash -PROMPT_COMMAND=${PROMPT_COMMAND:+"$PROMPT_COMMAND; "}'printf "\e]9;9;%s\e\\" "`cygpath -w $PWD`"' -``` - ### WSL #### `bash` @@ -148,6 +138,16 @@ end This function will be called whenever the current path is changed to confirm the current session is opened by Windows Terminal (verifying $WT_SESSION) and sending Operating System Command (OSC 9;9;), with the Windows equivalent path (`wslpath -w`) of current path. +#### MINGW + +For MINGW, Git Bash and Cygwin, you need to modify the `PROMT_COMMAND` for WSL: replace `wslpath` with `cygpath`. + +Add the following line to the end of your `.bashrc` file: + +```bash +PROMPT_COMMAND=${PROMPT_COMMAND:+"$PROMPT_COMMAND; "}'printf "\e]9;9;%s\e\\" "`cygpath -w $PWD`"' +``` + > [!NOTE] > Don't see your favorite shell here? If you figure it out, feel free to [open a PR](https://github.com/MicrosoftDocs/terminal/edit/main/TerminalDocs/tutorials/new-tab-same-directory.md) > to contribute a solution for your preferred shell! From 4a2df314315d9fdf20d9219c63525d30002253e1 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Fri, 8 Jul 2022 14:40:27 -0700 Subject: [PATCH 60/63] Add focus mode tip Resolves https://github.com/MicrosoftDocs/terminal/issues/528 --- TerminalDocs/tips-and-tricks.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/TerminalDocs/tips-and-tricks.md b/TerminalDocs/tips-and-tricks.md index 552826d1..d883e909 100644 --- a/TerminalDocs/tips-and-tricks.md +++ b/TerminalDocs/tips-and-tricks.md @@ -3,7 +3,7 @@ title: Windows Terminal tips and tricks description: In this page, you will find tips and tricks to help improve your Windows Terminal experience. author: cinnamon-msft ms.author: cinnamon -ms.date: 10/08/2021 +ms.date: 07/08/2022 ms.topic: how-to --- @@ -130,6 +130,24 @@ Navigating to the parent directory with a key binding may also be helpful. You can also use this functionality to run builds or test scripts. +## Focus mode + +"Focus mode" hides the title bar and tabs normally located at the top of Windows Terminal, letting you focus only on the terminal content. It is similar to ["Zen mode"](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_zen-mode) in Visual Studio Code. + +To enter focus mode, open the [command pallette](./command-palette.md) using `Ctrl` + `Shift` + `p`, enter "focus mode", and select "Toggle focus mode." To exit focus mode, repeat these same steps. + +To set focus mode to launch every time you start Windows Terminal, open the **Settings** (`Ctrl` + `,`) and select the **Startup** tab. Under **Launch mode**, select **Focus** (or **Maximized focus**, which is focus mode with your terminal window maximized). Select **Save** before exiting. The next time you launch the Windows Terminal, it will open up in focus mode. To stop Windows Terminal from launching in focus mode, follow these same steps, but select **Default** from the list of **Launch mode** options. + +To add a shortcut key (or keybinding) for entering focus mode, open the `settings.json` file (`Ctrl` + `Shift` + `,`). Inside your `settings.json` file, find the [`"actions":`](./customize-settings/actions.md) section and add the following command: + +```json +{ "command": "toggleFocusMode", "keys": "ctrl+f12" } +``` + +Replace "ctrl+f12" with the shortcut / keybinding of your choice, but be sure not to repeat any existing keybindings from the Actions list. You can also see a list of Actions with associated keybindings, and **+ Add new** bindings, in the **Actions** tab of the Windows Terminal **Settings** dashboard. Remember to **Save** after making any changes. You can now toggle focus mode using the "action" shortcut key that you created. (In the case of our example, `Shift` + `F12`). + +To learn more about this command, see [`toggleFocusMode`](/windows/terminal/customize-settings/actions#toggle-focus-mode). + ## Quake mode "Quake mode" is the name for the special mode the terminal enters when naming a window `_quake`. When a window is in quake mode: From 2562bf53f5b13a224c703fe6645ff6f397f1d242 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Fri, 8 Jul 2022 14:55:16 -0700 Subject: [PATCH 61/63] Change bashrc config to bash_profile Recommended in https://github.com/MicrosoftDocs/terminal/issues/556 so that the `PROMPT_COMMAND` variable isn't repeatedly appended on the start of every bash process. Resolves https://github.com/MicrosoftDocs/terminal/issues/556 --- TerminalDocs/tutorials/new-tab-same-directory.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/tutorials/new-tab-same-directory.md b/TerminalDocs/tutorials/new-tab-same-directory.md index 70d41893..35d79ac2 100644 --- a/TerminalDocs/tutorials/new-tab-same-directory.md +++ b/TerminalDocs/tutorials/new-tab-same-directory.md @@ -103,7 +103,7 @@ function Invoke-Starship-PreCommand { #### `bash` -Add the following line to the end of your `.bashrc` file: +Add the following line to the end of your `.bash_profile` config file: ```bash PROMPT_COMMAND=${PROMPT_COMMAND:+"$PROMPT_COMMAND; "}'printf "\e]9;9;%s\e\\" "$(wslpath -w "$PWD")"' From 17c95742d332d1a8ae43f5dca3cc0395a37e7818 Mon Sep 17 00:00:00 2001 From: Alex Buck Date: Wed, 13 Jul 2022 17:38:01 -0400 Subject: [PATCH 62/63] [BULK UPDATE] DocuTune - Fix build validation issues: docs-link-absolute (#553) --- .openpublishing.redirection.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 9d94aa46..cf4d8c2f 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -2,27 +2,27 @@ "redirections": [ { "source_path": "TerminalDocs/customize-settings/key-bindings.md", - "redirect_url": "https://docs.microsoft.com/windows/terminal/customize-settings/actions", + "redirect_url": "/windows/terminal/customize-settings/actions", "redirect_document_id": true }, { "source_path": "TerminalDocs/customize-settings/global-settings.md", - "redirect_url": "https://docs.microsoft.com/windows/terminal/customize-settings/startup", + "redirect_url": "/windows/terminal/customize-settings/startup", "redirect_document_id": true }, { "source_path": "TerminalDocs/customize-settings/profile-settings.md", - "redirect_url": "https://docs.microsoft.com/windows/terminal/customize-settings/profile-general", + "redirect_url": "/windows/terminal/customize-settings/profile-general", "redirect_document_id": true }, { "source_path": "TerminalDocs/get-started.md", - "redirect_url": "https://docs.microsoft.com/windows/terminal/install", + "redirect_url": "/windows/terminal/install", "redirect_document_id": true }, { "source_path": "TerminalDocs/tutorials/powerline-setup.md", - "redirect_url": "https://docs.microsoft.com/windows/terminal/tutorials/custom-prompt-setup", + "redirect_url": "/windows/terminal/tutorials/custom-prompt-setup", "redirect_document_id": true } ] From 9ad8b875dfec17afcb5e3e0151f1ac3826f7f242 Mon Sep 17 00:00:00 2001 From: Hans Kilian Date: Wed, 3 Aug 2022 22:29:20 +0200 Subject: [PATCH 63/63] Update interaction.md (#562) You left click to block select --- TerminalDocs/customize-settings/interaction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TerminalDocs/customize-settings/interaction.md b/TerminalDocs/customize-settings/interaction.md index 65e96588..48f304d6 100644 --- a/TerminalDocs/customize-settings/interaction.md +++ b/TerminalDocs/customize-settings/interaction.md @@ -45,7 +45,7 @@ ___ ## Remove trailing white-space in rectangular selection -When this is set to `true` and you copy text in a rectangular (block) selection to the clipboard, trailing white-spaces are removed from each line. When it's set to `false`, the white-spaces are preserved, ensuring that all lines have the same length. To copy text in a rectangular (block) selection, hold down the Alt key, right-click, and drag your mouse over the text area you want to select. This can be useful for selecting text columns, etc. +When this is set to `true` and you copy text in a rectangular (block) selection to the clipboard, trailing white-spaces are removed from each line. When it's set to `false`, the white-spaces are preserved, ensuring that all lines have the same length. To copy text in a rectangular (block) selection, hold down the Alt key, click and drag your mouse over the text area you want to select. This can be useful for selecting text columns, etc. **Property name:** `trimBlockSelection`