I have only one Windows device, the Surface Go. I work on it occasionally, especially on short trips. I prefer Surface Go because of handwriting. I have a simple setup to meet my work requirements.
I spend the most time on a computer in three apps: terminal, text editor and web browser. I use Windows Terminal, Visual Studio Code and Chrome in Windows.
Since I don’t do heavy development locally, I use PowerShell as default in the Windows Terminal. The command
echo $profile will print the PowerShell config file path. The essential PowerShell config is enabling the Emacs style keybinding (full version here).
Set-PSReadLineOption -EditMode emacs
Scoop is very handy to install essential command line utilities, for example:
scoop install mingit ripgrep
I use the OpenSSH Client component in Windows, which can be enabled in “Settings / Apps / Manage optional features”. I used to set an SSH passphrase, but the ssh agent service is disabled. It can be enabled in PowerShell ran as admin:
# Run once as admin Get-Service ssh-agent | Set-Service -StartupType manual
I have set the startup type to manual, so if I want to load the key, I have to start the service first:
Start-Service ssh-agent ssh-add
However, the git installed by scoop uses its own bundled ssh client by default. It is easy to fix it by setting an environment variable
# Run once as logged in user $SSHPath = (Get-Command -Name 'ssh.exe').Source [Environment]::SetEnvironmentVariable('GIT_SSH', $SSHPath, 'User')
Restart Windows Terminal and now git will use the key in ssh agent.
Git has the same issue with GPG. Use
git config to tell where the GPG program is:
git config --global gpg.program (Get-Command -Name 'gpg.exe').Source
Following is a list of other apps I used in Windows:
- XMind: Mindmap tool.
- Drawboard PDF: PDF reading and annotation.
- Leonardo: an infinite canvas painting app.
- Nebo: Handwriting notebook.
- Clash for Windows
- OneDrive and Google Keep for quickly synchronize data with other devices.