Web developers and MacBooks
I got my first MacBook Pro in 2011. I bought it used because a new one would be impossible to afford at the time. What captivated me about Apple computers was that nice and well thought UI, with that bash terminal thanks to the FreeBSD roots. On top of that: hardware; I haven’t seen a trackpad as good as the ones on Apple laptops.
Being a web developer I would have access to (at the time great) TextMate and Photoshop, two important tools in my development workflow at the time. I tried going full Ubuntu a couple of times before the MacBook, but no access to Photoshop for example made me go back to Windows over and over.
Web developers working on Ruby, JS or related tech, usually go with Apple. It is a de facto standard, and for good reasons.
Fast forward to the present day. My workflow does not require Photoshop nor Sketch. I can get by working on web projects involving some backend language (if it is not Java) and frontend JS just fine. I might need to peek at images for some specific task, but no need to edit or move layers around.
My old MacBook Pro (late 2013) had some water damage and is not very usable. So I had a PC laying around (mostly used for gaming) that can be re used as a powerful workstation! Time to pick a distro.
Picking a Distro
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.
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
In order to install a package (let’s say GIT) you simply:
sudo apt install git
brew install git
If you want something more AppStore-ish, Mint has a Software Manager app:
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.
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.
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.
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.
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.