Feeling at home in Linux coming from MacOS
This post was initially written out of my necessity to move from OS X to Linux 5 years ago. I’m happy to inform you that Apple is in a completely different place now, and Apple Silicon chips are great. I’m writing this update from an M2 Pro, which I love. However, I didn’t want to erase history, so this post will remain informative if you want to feel “at home” using Linux, especially if you come from MacOS.
Picking a Distro
I started looking for a good balance between UI/UX stable enough to make me not miss the beautiful OSX interface. I tried Ubuntu, Lubuntu, pure Debian, Elementary and finally Mint.
I won’t go on great detail of all of them, but I had some experiences that were better than others. Ubuntu’s shortcomings are mostly UI related. Lubuntu’s lack of everything out of the box (not even make
was included on the base image) which is kind of the point but it made things to laborious. Debian in it’s pure form was on the same camp.
Elementary gave me great hopes. It was basically a ver nice looking UI, linux on top. Even the shortcuts list the “Super” key with the Command symbol. In practice it was kind of awful, the UI was sluggish. The installation of a wifi dongle (which requires driver compilation) didn’t go well.
Finally I looked into Mint. The codename for this release is Sylvia, and I downloaded the 64b Cinammon edition.
I’ve used KDE, Unity, Xfce, Gnome and MATE over the years. I wanted to give Cinammon a try and I’m glad I did. The speed and solid performance of this desktop environment is superb.
Installing Linux
After the ISO is downloaded it is time to flash a USB key to boot up the destination machine. I’ve seen many methods to do that; but now there’s a solution that is extremely easy: Etcher.
After flashing your USB drive, plug it in into the destination machine and boot from it.
I started a fresh hard drive installation that took my entire hard disk, but it is possible to leave existent systems (ie: Windows) installed alongside linux using different partitions. This process of selecting the destination partitions is now pretty straightforward and easy to understand with the installer.
First time booting Linux Mint
The first thing you note is a classic Windows-like taskbar at the bottom.
This is looking good… now the main tool on a day to day life of a developer is the terminal. You can see a little terminal icon on the lower left corner.
A few thoughts here:
- Nice animation to pop up the terminal!
- Solid UI elements
- Stylish drop shadow!
I was hooked! after some tine playing around I found out I missed one of the most used key shortcuts. Command + Tab. Time to customize.
Bringing Command back
I went with mapping Super(CMD on OSX, Win on Windows) to Ctrl:
Later I modified the cycling of windows shortcut:
And now I was feeling more at home.
Replacing Spectacle (window tiling)
I’ve been doing Desktop tiling on OSX through Spectacle. It is a great app and I got used to the key combos that allow me to push windows left and right or maximize. On my Ergodox I have a dedicated key to deal with Spectacle shortcuts, It emulates the Ctrl + Alt + CMD.
Turns out that is already included as a default in Cinammon. And since Command is Ctrl now, I can reuse the same key and it works. Just needed to assign the key strokes to the actions here:
A good app launcher
As a long time user of Alfred I’m a fan of app launchers. Mint comes with something that is not quite there, but a little googling led me to Kupfer. Is not as pretty but does the job.
Missing homebrew?
Linux Mint uses Ubuntu’s software repositories and APT package manager. So the transition there from Homebrew to APT is not hard at all.
In order to install a package (let’s say GIT) you simply:
sudo apt install git
vs
brew install git
If you want something more AppStore-ish, Mint has a Software Manager app:
Editing code
I’m usually on VIM or VScode (lately due to the perfect integration with JS debugging tools). VIM is *nix native and VSCode runs on pretty much anything, so you’ll find .deb
packages to install on your Mint.
Surfing the web
Going to Chrome’s web page you’ll find another .deb
to install. Mint comes with Firefox already baked in. I’ve been using both browsers with 0 problems, same performance as usual.
Communication
Slack has a version for linux. It says is beta but works without problems. Skype also has a linux version if you are into that kind of thing.
I also have found some guides to have google hangouts in a very native-ish way.
Screenshots and screencasts
This post is being written on linux Mint, so I faced new requirements. I often point out things annotating with MonoSnap. Looking around I’ve found some interesting options, but the annotation part is still a little cumbersome. The best option so far has been Shutter.
When describing something requires some video my favorite tool on OSX is Recordit. Sadly Recordit has no linux version, but a good alternative is Peek.
Image Preview
Browsing folders with Finder on OSX I use a cool shortcut to see images: Spacebar. It allows you to see mockups, pictures, etc.
I can easily do it using that same key on Mint out of the box. No extra configuration needed.
Terminal
Guake is a very nice terminal replacement. It works like the Quake game terminal (hence the name) and is very practical. Combined with tmux I can jump from normal terminal windows to Guake if I need to.
If the need is a common terminal, the one that comes by default is pretty customizable and reliable.
Final Thoughts
With the mentioned replacements and customizations I can jump from my macbook to my linux without any problems. My Ergodox configuration performs the same actions, improving my productivity.
Is not all perfect on linux world tho. Some things need polishing and sometimes you see some apps are not as stable as we would like, but often we are speaking about open source products that do not have the quality control of commercial versions. For example I tried to take a screenshot of the screenshot tool (Shutter), and I created some sort of dimensional vortex that hung up my UI.
Putting that aside other tools work better on linux, like Docker.
So far the experience has been mostly positive and I’ll keep updating this post to reflect that.
Comments