Archive for the ‘Tools’ category


Microsoft Terminal

This is another relatively new open source tool from Microsoft. I absolutely love it and can’t work without it. It is not exactly a terminal but provides tabs to open different terminals installed on Windows. It supports Windows console, PowerShell, all installed distributions in WSL, and Azure in a single window. If you work with embedded systems, use multiple build servers, or multiple remote machines this is a must to have tool.

This is how the Microsoft Terminal looks likes:

Customizing Profiles

Microsoft terminal has concept of profiles corresponding to each type of console it can open. By default it will detect and enable all detected consoles: Windows command prompt, PowerShell, Azure Cloud Shell, and all WSL distributions. If you don’t need to use a console, then it is possible to hide them from the Settings JSON by toggling the hidden key to false. It is also possible to change the name terminal shows in the tab list. The full set of settings provided for profiles are available at https://aka.ms/terminal-profile-settings.

Color Schemes

Microsoft terminal offers some color schemes out of the box and it is possible to create our own or customize an existing scheme by editing the JSON file. The documentation for color schemes is located at https://aka.ms/terminal-color-schemes. I am happy with the default color scheme but if you like to change, there are tons of color schemes available from https://windowsterminalthemes.dev.

Keyboard Shortcuts

Working with terminal is pretty useless without using keyboard short cuts and Microsoft terminal allows to bind keyboard shortcuts for almost all tasks. The full documentation is located at https://aka.ms/terminal-keybindings. The keyboard shortcuts are called actions and there are two types: without arguments and with arguments. Some of the important short cuts that I use are:

        { "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" },
        
        { "command": "commandPalette", "keys": "ctrl+shift+p" },
        { "command": "toggleFullscreen", "keys": "ctrl+enter" },
        { "command": "openNewTabDropdown", "keys": "ctrl+space" },
        { "command": "openSettings", "keys": "ctrl+," },
        
        { "command": "duplicateTab", "keys": "ctrl+shift+d" },
        
        { "command": "closePane", "keys": "ctrl+w" },
        { "command": { "action": "moveFocus", "direction": "down" }, "keys": "alt+down" },
        { "command": { "action": "moveFocus", "direction": "left" }, "keys": "alt+left" },
        { "command": { "action": "moveFocus", "direction": "right" }, "keys": "alt+right" },
        { "command": { "action": "moveFocus", "direction": "up" }, "keys": "alt+up" },
        { "command": { "action": "moveFocus", "direction": "previous" }, "keys": "ctrl+alt+left" }

The most interesting of these shortcuts is the command palette. It can be launched from the default key bindings of Control + Shift + P. It can search and execute any command available in the terminal.


Power toys I cannot work without

I believe every skilled worker needs to have a collection of good quality tools to achieve optimal productivity. For me, a big part of my job is to write code for software development as well as for algorithmic development, testing, debugging, and frequently for learning. As such, I have collected a number of invaluable tools for myself. In this post I am going to share the tools I use for my work.


Microsoft Power Toys

Microsoft powertoys is about about two years old and I have been using it for few months only. It is not a single tool but a collection of different tools and it is very actively maintained and developed on GitHub. If contains the following tools:

The tool I use most among these is Powertoys Run. Infact, I came across Microsoft PowerToys because I was looking for a replacement for Launchy which I have been using for more than a decade but it is not longer actively maintained. I have blogged about the transition here. The idea behind Launchy/Powertoys Run is simple. Press a keyboard shortcut (Alt+Space), and it pop a single floating text control, already focused to accept the input and you can type in a name of the program you want to run or a file or folder you are looking for. Powertoys Run can located any executable indexed by Windows search. So, if you maintain a folder of portable tools like I do, simply make sure that the folder is in Windows Search Index. It is a major productivity booster for me.

Power Toys Run

Other than Powertoys run, I use keyboard manager to remap some keys on my laptop to make them more suitable for programming/text editing. Previously, I used to use SharpKeys but now I exclusively use keyboard manager.

I have not actively used other tools but color picker looks good and in future I might replace Just Color Picker with it.


Goodbye Launchy!

I have been using Launchy for last 15 years since it was first released in 2005. I has been an awesome companion since then and saved me tons of time. Simple press Alt + Space and enter the name of the program you want execute and voila! It allowed skins and specifying directories to include in search and filter the folders based on extensions. Launchy had everything I could have asked. However, it doesn’t work with Windows 10 store apps and it was last updated in 2010 so there are no new updated or patches since then.

Recently, Microsoft released Power Toys as opensource tool on Github. One of the included tools is PowerToys Run. It has the same core functions plus more other added goodies such as “Open containing folder”, “Run as administrator”, and “Open path in console” which I fund quite useful. My only complaint with PowerToys Run is that it doesn’t allow customs paths and instead uses Windows Search Index.