Category: Windows

Windows Terminal Color Schemes -Themes

My Windows Terminal Color Schemes

The Windows Terminal became generally available at the Microsoft Build 2020 virtual conference a couple of weeks ago. I already blogged about how you can customize your Windows Terminal settings and shared my settings.json file. Many people asked me about the different Windows Terminal Color Schemes I use. So I thought a blog post would be a good way of sharing my Windows Terminal Schemes.

Windows Terminal 1.0 was released on May 19, you can find more documentation here on Microsoft Docs.

I already shared a couple of blog posts on how you can customize your Windows Terminal experience:

My Windows Terminal Color Schemes

Here is my Windows Terminal Color Schemes. Since I use the acrylic effect, I post a picture when the Windows Terminal window is active and one where it is inactive.

Vibrant Tom

Vibrant Tom

Vibrant Tom

Vibrant Tom Inactive

Vibrant Tom Inactive

This one I use for my default shell (PowerShell 7).

{
            // Color Scheme: VibrantTom
            "background" : "#16171D",
            "black" : "#878787",
            "blue" : "#44B4CC",
            "brightBlack" : "#E373C8",
            "brightBlue" : "#0000FF",
            "brightCyan" : "#19D1D8",
            "brightGreen" : "#81EC0D",
            "brightPurple" : "#FF00FF",
            "brightRed" : "#FF0000",
            "brightWhite" : "#E5E5E5",
            "brightYellow" : "#FFD93D",
            "cyan" : "#19D1D8",
            "foreground" : "#FFFFFF",
            "green" : "#CCFF04",
            "name" : "VibrantTom",
            "purple" : "#9933CC",
            "red" : "#FF6600",
            "white" : "#F5F5F5",
            "yellow" : "#FFD93D"
        },

Windows PowerShell Tom

Windows PowerShell Tom

Windows PowerShell Tom

Windows PowerShell Tom Inactive

Windows PowerShell Tom Inactive

{
            // Color Scheme: PowerShellTom
            "background" : "#012456",
            "black" : "#000000",
            "blue" : "#0000ff",
            "brightBlack" : "#AAAAAA",
            "brightBlue" : "#44B4CC",
            "brightCyan" : "#19D1D8",
            "brightGreen" : "#81EC0D",
            "brightPurple" : "#FF00FF",
            "brightRed" : "#FF0000",
            "brightWhite" : "#E5E5E5",
            "brightYellow" : "#FFD93D",
            "cyan" : "#19D1D8",
            "foreground" : "#FFFFFF",
            "green" : "#00ff00",
            "name" : "PowerShellTom",
            "purple" : "#9933CC",
            "red" : "#FF6600",
            "white" : "#F5F5F5",
            "yellow" : "#FFD93D"
        },

Retro Command Prompt

Retro Command Prompt

Retro Command Prompt

Dracula

Dracula

Dracula

Dracula Inactive

Dracula Inactive

{
            // Color Scheme: Dracula
            "background" : "#282A36",
            "black" : "#21222C",
            "blue" : "#BD93F9",
            "brightBlack" : "#6272A4",
            "brightBlue" : "#D6ACFF",
            "brightCyan" : "#A4FFFF",
            "brightGreen" : "#69FF94",
            "brightPurple" : "#FF92DF",
            "brightRed" : "#FF6E6E",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#FFFFA5",
            "cyan" : "#8BE9FD",
            "foreground" : "#F8F8F2",
            "green" : "#50FA7B",
            "name" : "Dracula",
            "purple" : "#FF79C6",
            "red" : "#FF5555",
            "white" : "#F8F8F2",
            "yellow" : "#F1FA8C"
        },

Ubuntu Legit

UbuntuLegit

UbuntuLegit

UbuntuLegit Inactive

UbuntuLegit Inactive

This one I saw first at Scott Hanselman’s blog. This one I use for my Windows Subsystem for Linux 2 (WSL 2) running Ubuntu.

{
            // Color Scheme: UbuntuLegit
            "background":  "#2C001E",
            "black":  "#4E9A06",
            "blue":  "#3465A4",
            "brightBlack":  "#555753",
            "brightBlue":  "#729FCF",
            "brightCyan":  "#34E2E2",
            "brightGreen":  "#8AE234",
            "brightPurple":  "#AD7FA8",
            "brightRed":  "#EF2929",
            "brightWhite":  "#EEEEEE",
            "brightYellow":  "#FCE94F",
            "cyan":  "#06989A",
            "foreground":  "#EEEEEE",
            "green":  "#300A24",
            "name":  "UbuntuLegit",
            "purple":  "#75507B",
            "red":  "#CC0000",
            "white":  "#D3D7CF",
            "yellow":  "#C4A000"
        },

Vibrant Tom Light

Vibrant Tom Light

Vibrant Tom Light

Vibrant Tom Light Inactive

Vibrant Tom Light Inactive

This one I am still working on. I am not 100 percent happy, so let me know if you have any ideas.

{
            // Color Scheme: VibrantInkTom Light
            "background" : "#EEEEEE",
            "black" : "#878787",
            "blue" : "#44B4CC",
            "brightBlack" : "#595e68",
            "brightBlue" : "#0000FF",
            "brightCyan" : "#19D1D8",
            "brightGreen" : "#3f953a",
            "brightPurple" : "#FF00FF",
            "brightRed" : "#FF0000",
            "brightWhite" : "#E5E5E5",
            "brightYellow" : "#FF6600",
            "cyan" : "#44B4CC",
            "foreground" : "#16171D",
            "green" : "#3f953a",
            "name" : "VibrantTomLight",
            "purple" : "#9933CC",
            "red" : "#FF6600",
            "white" : "#F5F5F5",
            "yellow" : "#FFD93D"
        },

Conclusion

I hope this blog post helps you to customize your Windows Terminal and I hope you like my Windows Terminal color schemes. Let me know in the comments which Windows Terminal Theme you like best.



HCSDiag.exe - Hyper-V Host Compute Service Diagnostics Tool

HCSDiag.exe – Hyper-V Host Compute Service Diagnostics Tool

As you know, Hyper-V is not just a server virtualization software anymore. Today, you can find Hyper-V technology across different operating systems, products, and services, like Windows Defender Application Guard, Windows Sandbox, Hyper-V Containers, or many more. Thanks to Ben Armstrong from the Hyper-V team, I found out that there is a tool in Windows to troubleshoot these Hyper-V containers called hcsdiag.exe or Hyper-V Host Compute Service Diagnostics Tool. The Hyper-V Host Compute Service Diagnostics Tool (HCSDiag.exe) is available in Windows 10 and Windows Server 2019 if you have the Hyper-V roles or virtualization features enabled, and can be helpful to troubleshoot Hyper-V containers, virtual machines (VMs), Windows Sandbox, Windows Defender Application Guard, Windows Subsystem for Linux 2 and more.

HCSDiag.exe - Hyper-V Host Compute Service Diagnostics Tool

HCSDiag.exe – Hyper-V Host Compute Service Diagnostics Tool

Let’s have a look at the HCSDiag.exe, which you can find in C:\Windows\System32. It provides you with a couple of different commands and options. However, keep in mind that not all features work with every type of container. Some features are limited to scenarios where the VM is being used under the same user context as the host, where it is all about protecting the host from the guest and not the guest from the host like in the server version of Hyper-V.

To install Hyper-V, check out the following posts:

HCSDiag.exe

hcsdiag <command> [options…]

  • list
    Lists running containers and VMs.
  • exec [-uvm] <id> <command line>
    Executes a process inside the container.
  • console [-uvm] <id> [command line]
    Launches an interactive console inside the container.
  • read [-uvm] <id> <container file> [host file]
    Reads a file from the container and outputs it to standard output or a file.
  • write [-uvm] <id> [host file] <container file>
    Writes from standard input or a host file to a file in the container.
  • kill <id>
    Terminates a running container.
  • share [-uvm] [-readonly] [-asuser] [-port <portnumber>] <id> <host folder> <container folder>
    Shares a host folder into the container.
  • vhd [-uvm] <id> <host vhdx file> <container folder>
    Shares a virtual hard disk file into the container.
  • crash <id>
    Forces a crash of the virtual machine hosting the container (only works for containers hosted in a virtual machine).

I will give you some examples of how you can use hcsdiag.exe to interact with some of the Hyper-V containers. Now again, this focuses mostly on technologies like Windows Sandbox, Docker Hyper-V Containers, WSL 2, and similar features.

You can find more documentation on Hyper-V on Windows Server or Hyper-V on Windows 10 on Microsoft Docs.

List all containers and Hyper-V VMs

With the hcsdiag list command, you can create a list of containers and Hyper-V virtual machines running on the host. Including Windows Sandbox, Windows Subsystem for Linux 2, and Application Guard.

hcsdiag.exe list

hcsdiag.exe list

Connect Console to Hyper-V containers and Windows Sandbox

You can also directly connect to the console of containers or the Windows Sandbox. Remember that it only works for Hyper-V containers where the guest is not protected from the host. Not for containers like Hyper-V VMs, where the guest is also protected from the host. If you need to remote into want console access or run commands against a Hyper-V VM from the host, check out PowerShell Direct for Windows VMs and hvc.exe for Linux VMs.

hcsdiag console connect

hcsdiag console connect

Here is an example where I am connected to a Windows Sandbox container using hcsdiag.exe.

hcsdiag Windows Sandbox

hcsdiag Windows Sandbox

But that also works with Dockers container (Hyper-V containers) running Windows and Linux.

hcsdiag Linux Container

hcsdiag Linux Container

HCSDiag console provides you with an interactive connection to interact with the container.

Additional HCSDiag.exe features and commands

The HCSDiag.exe also provides you with a couple of additional commands you can use. For example, the read command to read a file from the container and output it to the host or as a file to the host.

hcsdiag read

hcsdiag read

You can use the “share” command to share a host folder into the container or use “vhd” to mount a virtual disk file (VHD) file to a container. The hcsdiag kill command terminates a running container.

Conclusion

HCSDiag.exe – Hyper-V Host Compute Service Diagnostics Tool is excellent if you need to troubleshoot these Hyper-V containers, virtual machines (VMs), Windows Sandbox, Windows Defender Application Guard, Windows Subsystem for Linux 2 and more. If you have any questions, feel free to leave a comment.



Microsoft Surface USB-C Travel Hub Review

Microsoft Surface USB-C Travel Hub Mini Review

Last week Microsoft started shipping the new Surface Dock 2 and the Microsoft Surface USB-C Travel Hub. Since I usually do a lot of presentations at events, I ordered a Microsoft or Surface USB-C Travel Hub, which allows me to replace many of my Surface adapters for HDMI, Ethernet, or additional USB-A ports. I got the Microsoft Surface USB-C Travel Hub a couple of days ago, and I want to share my first impressions as well as a mini review, right here.

You can buy the Microsoft Surface USB-C Travel Hub here.

The Microsoft USB-C Travel Hub is designed for professionals who travel, so this adapter can give you the extra ports and connections you need when you work on-the-go. It works with PCs and Surface devices that have a USB-C port. It works with different versions of Windows, macOS, Android, Chrome OS.

The Microsoft USB-C Travel Hub can be connected to a USB-C port on your machine, which needs to support USB-C alt Mode. It provides you with the following ports:

  • HDMI 2.0 (supports a maximum resolution of 3840 x 2160 at 60Hz)
  • Gigabit Ethernet
  • VGA
  • USB-A 3.2 Gen2 (10 Gbps) USB-A port with pass-through accessory charging
  • USB-C 3.2 Gen2 (10 Gbps) port with pass-through accessory charging

You can buy the Microsoft Surface USB-C Travel Hub here. If you need more information about the Microsoft Surface USB-C Travel Hub capabilities, check out the Microsoft support page.



How to Change the Windows Terminal Default Shell Profile

How to Change the Windows Terminal Default Shell Profile

The Windows Terminal is now generally available as version 1.0. I already shared a blog post on how to customize the Windows Terminal and shared my personal settings.json file with a lot of different examples, like the integration of PowerShell Remoting, SSH Remoting, changing the background image and much more. One question I got is, how to change the Windows Terminal default shell or default profile from PowerShell to the Windows Subsystem for Linux (WSL) or the command line (cmd).

By default, the Windows Terminal takes PowerShell 7 (if it is installed) as the primary shell when you open the Windows Terminal. However, if you want to change that you can simply configure the default shell in Windows Terminal, in the settings.json file. On the top, you can find the “defaultProfile” setting with a GUID

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
....
}

The GUID is the GUID of your profile. For example, if you want to change it to cmd, you can use the following GUID “0caa0dad-35be-5f56-a8ff-afceeeaa6101”.

Windows Terminal Default Profile - Default Shell

Windows Terminal settings.json

I hope this blog post gives you a look on how to switch the default shell in Windows Terminal. I recommend that you check out my other blog post where I share even more details on how to customize the Windows Terminal. You can also read the full announcement blog for the version 1.0 here or check out the documentation on Microsoft Docs.

If you have any questions, feel free to leave a comment.



Install WinGet - Windows Package Manager

How to Install WinGet Windows Package Manager

For a long time, people have been asking for a package manager on Windows. Today at Microsoft Build, Microsoft announced the preview of the Windows Package Manager called WinGet. A package manager can help you to save time and quickly install software and tools on to your machine. Developers and IT Pros have wanted a native package manager in Windows for a long time and with WinGet, you will get that.

You can read more about the Windows Package Manager Preview announcement here.

How to install WinGet Windows Package Manager

The Windows Package Manager is currently in preview. To install the preview of Windows Package Manager, you basically have two options. Since WinGet is open source, you can clone, build, run, and test the code from the GitHub repository (https://github.com/microsoft/winget-cli). You can also become a Windows Insider an join the Windows Package Manager Insider program by sending your Microsoft Account (MSA) to [email protected] and request to be included in the preview.

App Installer in the Windows Store

App Installer in the Windows Store

After you have joined either Insider program, head over to the Microsoft Store and get the App Installer. The Windows Package manager will be available after you get the update.

How to install software using the Windows Package Manager

Now you can start using winget in the Windows Terminal, Windows command line, or PowerShell. The command line client “winget.exe” is already pre-configured to point to the Microsoft community repository.

winget install Windows Package Manager

winget install Windows Package Manager

Search for available packages

winget search APPLICATION

Display information about the packages

winget show APPLICATION

Install packages

winget install APPLICATION

Manage sources for packages

winget source (add/list/update/remove/reset)

Here is a quick look at some of the packages in the Microsoft Community repository.

winget show

winget show

Contribute and Feedback

Since the Windows Package Manager is open source, you can also contribute by sharing your feedback and suggestions on GitHub.

More information

You can find more information about the WinGet Windows Package Manager check out the Microsoft Docs and the preview announcement blog post. If you have any questions, feel free to leave a comment below.

 



How to SSH into an Azure VM from Windows Terminal Menu

How to SSH into an Azure VM from Windows Terminal Menu

A couple of days ago, I released a blog post on how you can add a PowerShell remote session in the Windows Terminal menu. In my example, I created a menu item in Windows Terminal to use PowerShell remoting to connect to an Azure virtual machine (VM). In the meantime, I got a lot of questions on how you can add an SSH connection to an Azure VM in the Windows Terminal. That is why I am going to share here, how you can add an SSH connection to an Azure VM in the Windows Terminal menu.

Scott Hanselman wrote a great blog post on how you can add tabs to open an SSH connection, so I highly recommend that you read his blog for all the details.



Surface Pro X with Slim Pen

How to Enable or Disable Hibernate on the Surface Pro X

I am sure you have seen that I am the proud owner of a Surface Pro X. The Surface Pro X is one of the latest Microsoft Surface devices, and instead of coming with an Intel or AMD x86 processor, it comes with a custom Qualcomm ARM CPU, called the Microsoft SQ1. The Surface Surface Pro X also runs Windows 10 on ARM, which allows you to run ARM64 and emulated x86 (32-bit) apps. Since I really like this device and the always-on feature, I just quickly want to share how you can enable or disable hibernate on the Surface Pro X.

The reason why I want to disable hibernate is that I can take advantage of the always-on capabilities for a much longer period of time. To understand the differences between shut down, sleep, or hibernate, you can check out the following Microsoft support article.

Shut down, sleep, or hibernate your PC and the Surface Pro X

There are different ways of handling your PC when you are not using it, you can turn your PC off completely by shutting it down, make it sleep, or you can hibernate your PC.

Sleep

Sleep uses very little power, your PC starts up faster, and you’re instantly back to where you left off. You don’t have to worry that you’ll lose your work because of your battery draining, because Windows automatically saves all your work and turns off the PC if the battery is too low. Use sleep when you’re going to be away from your PC for just a little while—like when you’re taking a coffee break.

Hibernate

This option was designed for laptops and might not be available for all PCs. Hibernate uses less power than sleep and when you start up the PC again, you’re back to where you left off (though not as fast as sleep). Use hibernation when you know that you won’t use your laptop or tablet for an extended period and won’t have an opportunity to charge the battery during that time. First check to see if this option is available on your PC and if it is, turn it on.

(Source Microsoft Support)

Enable or Disable Hibernate on the Surface Pro X

To enable or disable hibernate you can use the following options by using PowerShell or the Command Prompt as administrator.

Disable Hibernate run:

powercfg.exe /hibernate off

Enable Hibernate run:

powercfg.exe /hibernate on

You can also find out more about the battery behavior of your Windows 10 devices by using powercfg, so you can see how much battery power your devices uses in sleep or hibernation or while using it. I wrote a blog post called Troubleshoot Windows 10 Battery Life and Modern Standby.

Windows 10 SleepStudy Report

Windows 10 SleepStudy Report

I hope this post helps a couple of people dealing with the power management of Windows 10 and how to enable or disable hibernate on the Surface Pro X. If you have any questions, feel free to leave a comment.