How I use MacOS, Linux, Windows, iOS, Android

My favorite apps and extensions

February 10, 2025 Ā· Felipe Vogel Ā·

Over the past few years Iā€™ve hopped across several devices and operating systems. Along the way, Iā€™ve collected a list of my favorite apps and extensions for each OS. This post is that list.

This post is also a snapshot of how I use my computer and phone regardless of what OS happens to be on them. I still have my preferences, of course, but Iā€™ve reached a point where I care less about which OS Iā€™m using, thanks to this set of UI enhancements.

Hereā€™s my timeline of computer OS changes:

And for phones:

Prelude: peripherals

The peripherals I use with my computer are important to me because a few years ago I suffered from RSI in my wrists. The pain went away after I got a better keyboard and pointing devices.

Another way Iā€™m now kinder to my wrists is that I stay on the keyboard as much as possible. This need for more keyboard shortcuts was the impetus that led me to much of the software listed in this post.

Before we get to the software, here are my most important peripherals:

Shell

Fish with lots of aliases, mostly for Git

Also:

Windows: WSL (Windows Subsystem for Linux)

MacOS: iTerm2

Code and text editor

VS Code. See all of my extensions here, but these are a few of my favorites:

Notes

A few long plain text files synced across devices with Dropbox.

For better readability and organization of notes, I use my own markup language that Iā€™ve made syntax highlighting for.

Web browser

Firefox Developer Edition. My favorite extensions:

Password manager

Bitwarden browser extension and mobile app

Window switcher

MacOS: AltTab

Linux/Windows: built in

Clipboard manager

MacOS: PasteBot

Linux: Parcellite

Windows: Ditto

Text expander

Espanso. I use it for links, code snippets, emojis, and shell command ā€œtemplatesā€ that I often edit or fill in before entering.

Keyboard shortcuts

MacOS:

BetterTouchTool is the easiest way Iā€™ve found to remove the plethora of otherwise uneditable MacOS keyboard shortcuts that I donā€™t care about, and replace them with more useful shortcuts.

Also, for better text editing shortcuts, I edited ~/Library/KeyBindings/DefaultKeyBinding.Dict to consist of the snippet below. In case youā€™re wondering, hereā€™s a full list of possible commands, hereā€™s more documentation, and here are a bunch of examples.

{
"\UF729"  = "moveToBeginningOfLine:"; // home
"\UF72B"  = "moveToEndOfLine:"; // end
"$\UF729" = "moveToBeginningOfLineAndModifySelection:"; // shift home
"$\UF72B" = "moveToEndOfLineAndModifySelection:"; // shift end
"@\UF729" = "moveToBeginningOfDocument:"; // cmd home
"@\UF72B" = "moveToEndOfDocument:"; // cmd end
"@$\UF729" = "moveToBeginningOfDocumentAndModifySelection:"; // cmd shift home
"@$\UF72B" = "moveToEndOfDocumentAndModifySelection:"; // cmd shift end

"@\UF702" = "moveWordBackward:"; // cmd left
"@\UF703" = "moveWordForward:"; // cmd right
"@$\UF702" = "moveWordBackwardAndModifySelection:"; // cmd shift left
"@$\UF703" = "moveWordForwardAndModifySelection:"; // cmd shift right

"@\177" = "deleteWordBackward:"; // cmd backspace
"@\UF728" = "deleteWordForward:"; // cmd delete
}

Linux: I didnā€™t feel the need for an extra tool, thanks to the extensive keyboard settings in system preferences.

Windows: AutoHotkey for keyboard shortcuts to launch apps, and pretty much anything else you can think of. AutoHotkey is the one thing from Windows that I miss in MacOS and Linux.

Mobile apps

Cross-platform

iOS

Android

šŸ‘ˆ Older: Alpine.js as a Stimulus alternative šŸš€ Back to top