這是一張有關標題為 Awesome Windows - Essential Productivity Software Installation and Guide 的圖片

Awesome Windows - Essential Productivity Software Installation and Guide

Introducing essential software to make Windows more user-friendly

Introduction

This article will introduce the development tools I commonly use on Windows, explaining why they are installed and how they are beneficial.

In addition to the built-in Notepad, Paint, and Command Prompt (cmd), using other tools can significantly enhance development efficiency on Windows. Although the focus is primarily on tools used during the Windows development process, some techniques can also be applied in a Linux environment.

It is particularly noteworthy to always have your left hand ready. The left hand is indispensable for quickly completing certain tasks, as it is responsible for most shortcut key operations.

Shortcuts

Windows provides a vast array of shortcuts, with basic ones including:

  • ⊞ Win + R: Open the Run window (can be replaced by PowerToys Run or Everything)

    Enter cmd, calc (Calculator), notepad (Notepad), regedit (Registry Editor), mstsc (Remote Desktop Connection), mspaint (Paint) to quickly open the corresponding applications.

  • ⊞ Win + D: Quickly return to the desktop, and press again to restore all windows

  • ⊞ Win + Shift + S: Free screenshot (can be replaced by ShareX)

    Alt + Print Screen: Window screenshot

  • ⊞ Win + L: Lock the computer without logging out

  • ⊞ Win + ;: Emoji panel to type emojis (semicolon key is to the right of the L key)

  • Ctrl + Shift + Esc: Directly open Task Manager, which can be done solely with the left hand, unlike Ctrl + Alt + Del which requires calling up a menu and then clicking Task Manager with the mouse.

Some features like the Emoji panel are built into Windows 10 and above, while most other shortcuts have existed since the XP era.

Additionally, standard commands like Ctrl + X / V / Z / F / S / A correspond to cut, paste, undo, search, save, and select all. These ancient Ctrl commands are not elaborated here.

Installing winget

Windows Package Manager (winget) is an application provided by Microsoft for Windows 10 and Windows 11, offering a way to search, install, remove, and update necessary software.

With winget, we can quickly and uniformly install related software, avoiding unnecessary steps (searching for the software’s official website → finding the download link → downloading → installing → deleting the installation file).

To check if your system supports it, open the command line (press ⊞ Win + R, then type cmd and hit Enter), and enter the following command:

1
winget --version

If the result returns as version v1.6.3133:

1
2
C:\Users\wells>winget --version
v1.6.3133

If no version is found, it indicates that winget is not yet installed. You can install winget from the Microsoft Store.

After installation, remember to restart cmd and check the version again. If the installation is successful, you will see the version number.

The following introduces software that can help us quickly complete tasks, listed in alphabetical order.

Everything

Everything is a Windows desktop search engine based on the C programming language, capable of quickly searching for file names or content within NTFS disks.

It can essentially replace the built-in Windows search function for daily use, with its primary feature being instant file search.

The working principle involves creating a database index of all files and folders on the computer from the Master File Table (MFT). When Everything is launched, it loads the database into memory to provide real-time search. It also continuously updates the database in the background by tracking the Update Sequence Number (USN) Journal in Windows.

Everything can be installed via winget in cmd, or you can download it manually from the official website.

1
winget install -e --id voidtools.Everything

During installation, administrative privileges are required due to the need to access the USN Journal. The default installation sets it up as a service, running automatically in the background on startup.

After installation, the first launch will index the computer, after which you can start searching for files.

Search for filenames containing ‘host’ and paths containing ‘\etc’

By default, spaces act as an “and” operator. To search for PNG images with the filename containing ABC, you can search: ABC .png

To search for filenames containing abc, and extensions either png or txt, you can search: abc .png|.txt

For more complex searches, regular expression syntax can be used.

For more rules, refer to the documentation → Search Syntax. It also explains how to search within document contents.

Everything Search Rules

Additionally, you can configure shortcut keys in the settings. Personally, I like to use Alt + X to bring up the Everything window, but you can customize the shortcut key as per your preference.

You can also manually specify server directories for Everything to index.

Everything Shortcut Configuration and Adding Index Folders

Git

When I had not yet encountered Git (during my younger years), I used to back up code periodically by compressing all files and adding a timestamp. This method was inefficient, ineffective, and incapable of tracking history. Months later, it was impossible to know what had changed just by looking at the file names.

Git is a free, open-source distributed version control system. Using Git to manage files allows you to record differences between files, and it provides the ability to revert to historical versions or merge changes, offering a fast and reliable way to track the state of files.

Using Git can be simple or complex. In most cases, it involves committing and merging actions. The ultimate goal is to ensure files are accurately recorded and the program functions correctly.

Git can be installed via winget in cmd.

1
winget install --id Git.Git -e --source winget

To confirm if Git is successfully installed on your computer, open cmd and enter:

1
git --version

The returned version number is 2.43.0.windows.1:

1
2
C:\Users\wells>git --version
git version 2.43.0.windows.1

Further detailed Git operations will be discussed and shared in future topics.

Notion

Notion is a versatile note-taking application that is essentially free for individual users. I believe its ability to quickly and neatly create tables, images, and multi-column layouts surpasses many other note-taking apps. Additionally, it allows users to share notes as public URLs, save them as PDFs, or export them in Markdown format.

Previously, I organized my notes by using Word and synchronizing with Microsoft 365 cloud services. However, Word is limited to standard formats and A4 size paper, often causing issues like tables extending beyond a single page or needing to split content into multiple columns on one page. Implementing these in Word requires using sections or tables with hidden borders, which is cumbersome.

In contrast, Notion resolves all these issues. The biggest drawback is that the free version does not provide version history.

I have tentatively used Microsoft OneNote for note-taking, but I can’t accept its logic.

A note file is blatantly stored on OneDrive and can be moved arbitrarily.

When the notebook is opened, it is divided into sections and pages, and the note parts can be arranged freely, similar to Apple’s Freeform on iOS. Basically, there is no sequential logic.

OneNote Note Interface

Microsoft’s Loop is a competitor to Notion, though it is currently in beta.

Microsoft’s biggest advantage is its immediate support for Traditional Chinese upon release, whereas Notion’s support for Traditional Chinese is quite poor.

However, my personal experience with Loop on iOS has not been very good, and it may still need some optimization from Microsoft.

Notion Note Writing

You can install Notion via winget in the command line:

1
winget install -e --id Notion.Notion

After installation and registering on Notion, you can start writing notes. The experience is quite consistent across both mobile and desktop versions.

Powershell 7

In the Windows system, besides the built-in Command Prompt (cmd), there is also a built-in version of PowerShell, which is PowerShell 5.1 based on .NET Framework. You can open it by typing powershell in the command prompt.

PowerShell 7, on the other hand, is based on .NET Core for better cross-platform compatibility. You can open it by typing pwsh. It supports new Cmdlets, cross-platform functionality, and new module extensions and installations. It also features automatic command completion (cmd can achieve this through clink). PowerShell 7 is one of Microsoft’s actively updated software, and it is recommended for every developer to install it.

PowerShell 7 can be installed via winget in the command prompt, or you can refer to other installation methods.

1
winget install --id Microsoft.Powershell --source winget 

Powershell 7 Interface

PowerToys

Microsoft’s utility suite includes many tools, all bundled within PowerToys.

Below are some tools I frequently use:

Tool NameDescription
Always on TopAllows you to pin windows on top of others using the shortcut (⊞ Win + Ctrl + T).
PowerToys AwakeKeeps your computer awake on demand.
Color Picker utilityA system-wide color picking utility.
FancyZonesA window manager that makes it easy to create complex window layouts.
File Explorer Add-onsEnables preview pane and thumbnail rendering in File Explorer.
Image ResizerQuickly resize images via the right-click context menu.
Find My MouseQuickly locate your mouse position by pressing Left Ctrl twice.
Mouse Without BordersAllows interaction with multiple computers using the same keyboard and mouse.
PowerToys RunHelps you quickly search and launch applications.
Text ExtractorExtracts text from images using OCR.

You can refer to the Microsoft PowerToys official documentation for detailed descriptions of each tool. Additionally, after installation, an intro will guide you on how to use each feature.

PowerToys can be installed via winget in the command prompt:

1
winget install Microsoft.PowerToys --source winget

We initially launched the Run window using ⊞ Win + R. If an incorrect command was entered, the program would fail to start properly and an error window would pop up indicating that the related program could not be found.

After installing PowerToys, it includes a feature called PowerToys Run, which can be activated with Alt + Space on the keyboard. This tool supports fuzzy search, Chinese input, and even simple calculations.

PowerToys Run Searching Programs

PowerToys Run Simple Calculations

Additionally, PowerToys includes other tools, such as ColorPicker, which is particularly useful for web development. The shortcut for ColorPicker is ⊞ Win + Shift + C.

Another notable feature is OCR text recognition for images, activated by pressing ⊞ Win + Shift + T.

PowerToys is seamlessly integrated with Windows. Though its presence is subtle, it offers a range of highly valuable functions.

ShareX

ShareX is an open-source screenshot and recording software that can capture videos in MP4 or GIF formats. It integrates features such as upload functionality, OCR, watermarking, and other effects, and includes a built-in editor. This makes ShareX a powerful yet lightweight tool.

You can install ShareX by downloading it from GitHub or via winget:

1
winget install -e --id ShareX.ShareX

After installation, the ShareX icon will appear in the bottom-right corner of your screen. You can configure various settings, such as language, hotkeys, and post-screenshot actions (e.g., opening a folder, uploading, printing, etc.).

The software supports Traditional Chinese, but the default language is English.

ShareX Icon in the Bottom Right Corner

To change the language, right-click the ShareX icon, navigate to Application Settings → General, and set the language from Automatic to Traditional Chinese.

Changing Language in ShareX

There should be no significant difficulties in using the software. For more meticulous users, under Task Settings → Capture, you can enable “Capture Window Transparency” to handle the rounded corners in Windows 11 properly, ensuring no background color interference.

Tailscale

Tailscale enables secure access between devices without exposing them to the public internet, quickly setting up a personal VPN that can penetrate firewalls in various ways.

Users do not need to understand the underlying principles. They simply need to log multiple devices into their tailnet to facilitate communication between them.

Some potential use cases include:

  1. Accessing resources on Computer B from Computer A, such as network shares (Samba) or NAS resources.
  2. Point-to-point connections, like SSH or remote desktop.
  3. Subnet routing. For example, an internal IP: 192.168.6.XX can be accessed by a phone on a different network using the same IP.
  4. Traffic routing. Specify that the traffic of a device goes through another node.
  5. Public internet access. Using Funnel to allow public internet access to a specific device.
  6. Point-to-point file transfer.
  7. And more…

For additional configuration and settings, refer to Using Tailscale to Easily Create Secure and Private Tunnels.

Visual Studio Code

Visual Studio Code (VS Code) is a cross-platform editor developed by Microsoft with extensive capabilities, making it indispensable for developers.

Installing VS Code can effectively replace other software like Notepad++ and Eclipse under certain conditions.

VS Code features include:

  • Intellisense code completion
  • Git version control
  • Support for multiple languages with syntax highlighting and linting, such as JavaScript, TypeScript, Python, C++, etc.
  • Cross-platform support (Windows, macOS, Linux).
  • Built-in code formatting, refactoring, and debugging capabilities.
  • Task definitions using tasks.json, such as compiling and running.
  • A rich ecosystem of extensions (unsupported syntax? Just install an extension!).
  • SSH remote development with port forwarding support.
  • Integration with WSL for Linux development on Windows
  • A variety of customizable themes.

The content is extensive and requires some time to learn, but it can also serve as a basic text editor for beginners.

We’ll discuss more about VS Code operations in the future.

To install, download from the official Microsoft website or via winget:

1
winget install Microsoft.VisualStudioCode

After installation, you can open VS Code and start editing folders (projects) or individual files. If you open a folder containing Git-related files, VS Code will automatically parse the Git status.

For example, when writing Hugo articles on Linux, I connect remotely to a Linux server from Windows using SSH and open directories on the Linux system. By switching to VS Code’s built-in Git management, I can see which files have been added, edited, or deleted. Additionally, I have installed the Git Graph extension, which allows me to view the current Git branch status graphically.

Writing Hugo articles with VS Code (SSH remote)

WinCompose

For special characters, the system does not have a compose key like macOS. With the open-source WinCompose, you can quickly type special characters.

Previously, I used to refer to a Unicode table, and even printed out a list of commonly used Unicode characters, to type special symbols.

First, switch to the New Zhuyin input method, press the leading character ` on the keyboard, then press U to indicate Unicode, followed by entering the character code (e.g., 2605) and pressing the spacebar to output the special symbol.

For example: `u2605 outputs ★ | `u2606 outputs ☆ | `u00b0 outputs °

Typing special symbols with a leading character

With WinCompose, you can use the compose key (Right Alt) + defined characters to quickly type special symbols.

For example:

  • ♥: Press Right Alt once, then type <3 to get a heart (type < using Shift + ,).
  • ♢: Press Right Alt once, then type <> to get a diamond.
  • √: Press Right Alt once, then type sq (rt is omitted).
  • ★: Press Right Alt once, then type ** (type * using Shift + 8).
  • ¼: Press Right Alt once, then type 14 to get ¼.

Typing special symbols with the compose key

You can install WinCompose via winget in the command prompt or download it from the WinCompose Release page:

1
winget install -e --id SamHocevar.WinCompose

After installation, the WinCompose icon will appear in the bottom-right corner of your screen. Right-click the icon and select “Show Compose Key” to view the predefined rules.

WinCompose Predefined Rules

In the bottom-left corner, you can customize your compose key. The usage is straightforward, so we won’t go into further detail here.

Windows Sandbox

Windows Sandbox provides a lightweight desktop environment to safely run applications in isolation. It is very useful for testing software in a clean OS environment, checking files for viruses, or temporarily installing trial software.

Once you close the sandbox, all the data is removed. Every time you open a new sandbox, it is as clean as a fresh Windows installation.

Key points to note:

  1. Virtualization must be enabled in the BIOS.
  2. Windows Sandbox is not supported on Windows Home edition (you can bypass this limitation).
  3. A minimum of 4 GB of RAM is required, but 8 GB or more is recommended.

To install, open cmd and enter the following command to enable the Windows Sandbox feature, then restart your computer.

1
Enable-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -All -Online

Searching for “Sandbox” in the Start menu

After executing the command and restarting your computer, you will be able to see a clean version of Windows when you open Windows Sandbox.

Execute Windows Sandbox

Windows Subsystem for Linux

There are several ways to develop Linux on Windows, such as:

  1. Using a virtual machine (VM), by installing a complete operating system through tools like the built-in Hyper-V or VirtualBox.
  2. Dual boot, by setting up multiple boot options to install both Windows and Linux. You can choose which system to boot into during startup. (Highly discouraged due to the high risk of damaging the overall system and its complexity.)
  3. Remote development, by setting up a Linux host machine and connecting remotely for development.
  4. Windows Subsystem for Linux (WSL), which allows you to create a Linux development environment without the need for a virtual machine or dual boot setup.

The advantage of WSL is that it uses fewer resources than a virtual machine, and you can use both Windows and Linux simultaneously. Additionally, various Linux distributions can be installed and run, such as Ubuntu, Debian, Kali, etc.

The installation process is divided into two parts: installing WSL and installing a Linux distribution.

First, enter the following command in cmd to install WSL:

1
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

After installation, reboot your system. Once rebooted, enter cmd again and type wsl –help to check if WSL is enabled:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
PS C:\Users\wells> wsl --help
Copyright (c) Microsoft Corporation. All rights reserved.
For privacy information regarding this product, please visit https://aka.ms/privacy.

Usage: wsl.exe [Arguments] [Options...] [CommandLine]

Arguments for running Linux binary files:

   If no command line is provided, wsl.exe will launch the default shell.

...

Next, to install a Linux distribution, you can list the available Linux versions with the following command:

1
wsl --list --online

You will see many different distributions available.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
PS C:\Users\wells> wsl --list --online
Below is a list of valid distributions that can be installed.
Use `wsl.exe --install <Distro>` to install.

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed

My development environment requires Ubuntu 18.04, so I will install the corresponding version.

1
wsl --install -d Ubuntu-18.04

The installation process takes about 5 minutes. During the installation, you will be prompted to enter a Linux username and password.

If you encounter the error “Unable to resolve server name or address” during the installation, try switching networks or using a VPN to resolve the issue.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
PS C:\Users\wells> wsl --install -d Ubuntu-18.04
Installing: Ubuntu 18.04 LTS
Ubuntu 18.04 LTS is installed.
Launching Ubuntu 18.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: wells
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

wells@server:~$

At this point, WSL and the corresponding Ubuntu version have been successfully installed. Entering wsl will open the Ubuntu bash terminal.

If you have Windows Terminal installed, you will see a new Ubuntu 18.04 profile added when you create a new tab.

New profile added in terminal

If you already have VS Code installed, you can access it by connecting to WSL. Once VS Code sets up the necessary resources on Linux, you can browse files in WSL and integrate the bash terminal. The usage is essentially the same as installing VS Code on a native Ubuntu system.

Windows Terminal

Windows Terminal is a cross-platform terminal application developed by Microsoft, often referred to simply as “Terminal.” It supports multiple shell environments, including cmd, PowerShell, and the Windows Subsystem for Linux (WSL). Additionally, it supports tabbed and split-pane displays, as well as the Acrylic material in Windows 11.

To install Windows Terminal, you can download it from the Windows Store or use winget:

1
winget install Microsoft.WindowsTerminal

After installation, find Terminal in the Start menu and launch it to begin using it.

Find Terminal

Click the drop-down arrow (ˇ) at the top of the window to find settings, where you can modify the default configuration. For instance, you can set the default profile to PowerShell or any other preferred shell.

You can change the default terminal application to Windows Terminal, so that any future openings of cmd or other shells will be done through Terminal.

Windows Terminal Settings

For additional settings, refer to the official detailed documentation to customize the font, appearance, and achieve a better and more aesthetic terminal experience.

Moreover, you can customize configuration files to automatically connect to SSH or perform other operations when opening a new tab.

Other Software

Additional software is classified as non-essential but can be very useful in certain development scenarios. However, since not everyone requires these tools, they are categorized here.

Detailed download or installation processes are not provided; only the official links for reference are given so you can download them as needed.

For Personal Use

Software NameDescription
7-ZipFree, commercial-use compression software.
AutorunsA tool to detect which programs are automatically loaded at Windows startup, and allows deletion or temporary disabling.
CopyTransHEICforWindowsConverts HEIC images to the more widely used JPG format via right-click.
DLL Export ViewerViews exported function names, addresses, and descriptions in DLL files, aiding in quick debugging.
ExplorerPatcherOpen-source software that restores some Windows 10 features on Windows 11, such as the appearance of the taskbar and toolbar.
Fiddler ClassicA free HTTP proxy tool for recording and analyzing network requests. Direct link provided as the official site promotes subscription-based Fiddler Everywhere.
iPerfTests network bandwidth, latency, and throughput performance parameters.
K-Lite Codec Pack (Full)A free multimedia codec pack that resolves video playback issues.
Node.jsA JavaScript runtime environment that allows server-side programming in JavaScript.
PowerPoint Shortcut ToolsProvides additional shortcut tools for PowerPoint, such as aligning two objects and quickly inserting frames.
RufusCreates USB boot media for installing and repairing operating systems.
Tera TermAn open-source terminal communication software used to connect and control various devices like microcontrollers and embedded systems.
WinDirStat / SpaceSnifferVisualizes folder space usage.
X-Mouse Button ControlCustomizes mouse button functions and settings, potentially replacing the bulky Logitech Options for Logitech mice.
x64dbgAn open-source dynamic analysis tool for decompiling and debugging.

Below are some options for paid software, most of which require a license purchase.

Software NameCommercial Use?Description
HWiNFOPersonal Use OnlyRequires a license for commercial use; personal use is free. It monitors computer hardware parameters such as CPU, memory, and GPU temperature and frequency.
Internet Download Manager (IDM)Paid SoftwareLicensed IDM allows for commercial use. It is a download manager that can increase download speeds by up to 5 times and provides resume and scheduling capabilities.
MathtypePaid SoftwareA software for entering mathematical formulas in Word documents.
PichonPartially FreeProvides over 135,000 high-quality icons in various sizes and formats. Paying unlocks more icons.
TyporaPaid SoftwareA popular Markdown editor that supports multiple themes and a clean interface, and is cross-platform.
WinRARPaid SoftwareSoftware for compressing and decompressing RAR file formats. However, with Windows 11’s built-in decompression capabilities, the necessity for this software has decreased.

Conclusion

The recommended software mentioned above can significantly enhance our development, collaboration, and productivity.

The table below summarizes each tool’s official website and provides information on whether they are open-source and suitable for commercial use.

Tool/ApplicationOpen Source?Commercial Use?Description
EverythingNoYesQuickly searches for files or folders based on their names.
GitYesYesDistributed version control system, widely used in software development.
NotionNoYesCross-platform work collaboration tool that supports notes, task management, and more.
PowerShell 7YesYesCommand-line shell and scripting language for Windows.
PowerToysYesYesProvides additional tools for the Windows desktop, enhancing system experience and productivity.
ShareXYesYesOpen-source screenshot and screen recording tool with rich features and custom settings.
Visual Studio CodeYesYesCross-platform code editor supporting multiple languages and rich extensions, integrated with Git tools.
WinComposeYesYesProvides an easy way to input special characters, supporting customizable key combinations.
Windows SandboxNoYesProvides a lightweight, isolated environment to safely run untrusted applications and clears the virtual environment upon exit.
Windows Subsystem for LinuxNoYesAllows using Windows and Linux environments simultaneously on the same machine.
Windows TerminalYesYesModern command-line application that combines multiple command-line tools, offering tabs and highly customizable appearance.
WingetYesYesWindows package manager for quickly installing, upgrading, and managing applications.

If any information is incorrect, please let me know. Thank you.

References

  1. Use the winget tool to install and manage applications
  2. Everything support
  3. About - Git
  4. What is Notion?
  5. Microsoft Developer
  6. ShareX
  7. Compose key
Theme Stack designed by Jimmy