I’ve grown so accustomed to some of Neal Ford’s The Productive Programmer “power tools” that each time I install a new OS or get a new laptop, I start with my list of cant-live-without tools. I don’t usually switch between OSes a lot, but my recent switch of work environment has opened up the possibility to boot Linux again, next to Windows 10 or of course my beloved own laptop with OSX.
Problem is, none of those tools seem to be 100% cross-platform or work exactly the same as I expect them to work. That can be a pain if I work on Ubuntu at work but on OSX at home, or if I need to switch to Windows for a student project. Alternatives almost always exist, so here’s a short overview of my tooling usage with their counterparts on each OS.
Don’t forget to take a look at the publication date of this page as especially Unix tools have the bad habit of dying within a few years… I will try to keep this up to date when I adopt another tool.
100% Cross-platform tools
- IDEA IDEs like CLion, PyCharm and IntelliJ
- Any great editor: Sublime Text, Visual Studio Code, GVim
The newer version of Opera has built-in adblock support and reduces battery drain for up to an hour compared to (lots of) open tabs with Chrome! My Macbook Air’s battery is slowly giving up so that’s a major factor for me. Opera’s JS eninge uses the same one as Chrome by the way.
Shortcut usage in IDEs or editors can be confusing if you’re used to the CMD or ALT keys of a Mac (or vice versa).
OSX: CMD+Space is all you need. There are tools that enhance the experience but I find them unneeded since El Capitan.
Ubuntu: Unity’s “dash” thing does almost what I want: it searches in possible software and files and it’s (a bit) customizable. The only problem is mapping it to CMD (or CTRL)+Space. This can be done in the Keyboard shortcut settings, but after choosing CTRL+Space I had to revert to Super+Space: the latter key combination has already been heavily used to autocomplete statements in IDEs!
Same ALT+TAB behavior
Linux’ virtual desktops makes for a very configurable environment but that also means ALT+TAB might or might not include windows in the current active desktop. I simply like to “have them all” in there, meaning I again had to modify some settings. I had to install the CompizConfig Settings Manager and go to Desktop -> Ubuntu Unity Plugin -> Launcher to fiddle with the available key options in subtab “switcher”.
OSX: built-in. Of course…
Ubuntu: Again a bit of a pain, even if it comes with a lot of flexibility. Scrolling with both fingers works out of the box, but swiping combined with a browser does not - ALT+LEFT/RIGHT need to be mapped to swiping. Fusuma is a small Ruby tool that monitors input and executes things based on a config file. It does not work with 2 finger motions meaning I have to do an unnecessary context switch between OSX and Ubuntu…
After a week working with Fusuma and alternatives, I’m a bit disappointed by the lack of a solid implementation. Scrolling to the next virtual window for example works but without releasing the touch pad, scrolling back to the previous (by swiping up again) doesn’t: after a motion is recognized, touch input needs to be interrupted.
Windows: Happy CLCL user for years.
OSX: ClipMenu is free and works well.
Ubuntu: Diodon does exactly what I need after mapping ALT+C to command
If GMail isn’t an option, like my current work address, a mail client that emulates a threaded view is the next best thing. Again OSX wins here with the built-in Mail application that works exactly as I want it to work.
As an alternative, on any OS, there’s Mozilla Thunderbird. It is a hassle to get calendars and threaded views working though, I had to follow these steps to show sent messages in thread view and that still isn’t what I want. There are “gmail conversation”-alike plugins like this one that come as close as they can get to what I’m aimnig for. Don’t forget the Lightning Calendar extension.
Windows: Install Cmder and never look back. The cygwin toolchain can also be installed, I’m not sure if GCC is included with Cmder.
OSX: Install iTerm2 and never look back.
Ubuntu: Still evaluating whether the default gnome-terminal is sufficient for me. You have to remap the creation of a new tab to CTRL+T in the settings if you’re used to iTerm. Guake and Terminator seem like good fits, but the default terminal isn’t that far away with CTRL+ALT+T.
That’s simply a matter of configuring your
.bash_profile files - given you think the bash shell is good enough. I’ve used the Z shell for years but for what I do now, Bash is more than enough. I’m not a big fan of installing a lot of power tools for the sake of installing them.
Misc OS Things
Quick access to development folder
OSX’s Finder makes it easy to create shortcuts for directories that have been heavily used, like my
~/development dir where all repositories live. Luckily, Ubuntu’s file manger also has this feature:
Taking screenshots of areas
Emulating OSX’s CMD+ALT+4 on Ubuntu works by mapping CTRL+ALT+4 in the Keyboard shortcut manager to
For Windows 10, if ALT+Screenshot or Win+Screenshot don’t suffice (the problem is uniformity with other OSes here!), the snipping tool will work but doesn’t have a shortcut bind to it. In the windows menu, rightclick on snipping tool after searching for it and set a shortcut key in tab “Shortcut”. CTRL+Screenshot then creates a new screenshot for an area.
Auto-expand directories when hovering files
Very annoying but it seems that Gnome has this option disabled by default and you have to re-enable it with
gsettings set org.gnome.nautilus.preferences open-folder-on-dnd-hover true in a CLI.
Window movement shortcuts
This can get very far, I have used Fvwm once and spent weeks on perfecting my shortcut configuration for windows and window management. Luckily that time of fiddling about is over and I must say that the Win+Left/Right key combination in Windows (and Ubuntu) works quite well. Win+Up does nothing in Ubuntu though, so get ready to fiddle again if you want them to work exactly like in Windows…
For OSX, Spectacle is a requirement.