Here are some tips and tricks to help Mac users adjust to Ubuntu and Linux. I was a die hard Mac user ever since OS X was released in 2001. The combination of a Unix core and real desktop apps was a perfect match for desktop and development. However times change, with Apple’s focus on iOS, a world of web based apps, and vast improvements in Linux; it is now easier than ever to fully embrace open source.
This guide is intended for other software engineers as myself, includes mostly pointers and tips and not necessarily step-by-step instructions.. See this Ubuntu Beginner’s Guide for a great introduction to Ubuntu and its major pieces.
To note, I now use the standard Ubuntu since 17.10 which uses the GNOME desktop environment as the default, I previously used Ubuntu GNOME which is a fine desktop. So a few items are GNOME specific.
Equivalent Command-line Utilities
The Mac has two great built in functions pbcopy and pbpaste which allows you to pipe content to and from the clipboard. So you can pipe the output of a command to pbcopy and it will place it in the clipboard, which you can paste elsewhere. Here’s the Linux equivalent, which I setup aliases to match:
alias pbcopy="xclip -selection clipboard" alias pbpaste="xclip -selection clipboard -o"
The Mac command open will open a file using its default application, the linux equivalent is simply xdg-open, used the same way. The following will open the image filename.png in the default image viewer.
$ xdg-open filename.png
Ubuntu uses apt for package management. If you used Homebrew for install and managing packages, switching from brew to apt is pretty straight-forward.
There are also two new methods for installing software, snap and flatpak. Snap was started a couple years ago by Ubuntu, and Flatpak was created as a more cross platform and open alternative to Snap. It seems to be still early days for both. The Ubuntu Software Center uses Snap which allows you to search and install newer versions than found in the core repository.
Ubuntu comes with a built-in app called screenshot which you can see the keyboard shortcuts in
Settings > Devices > Keyboard
I’ve mapped my F6 key to select area to grab and save to desktop, by setting the following shortcut command, see
-h for all options:
gnome-screenshot -a -f /home/mkaz/Desktop/screenshot.png
I use Peek to create animate gifs for screen recording, I map F7 to launch Peek. Installation is easiest by adding their apt repo, instructions below, see their Github page for more.
sudo add-apt-repository ppa:peek-developers/stable sudo apt install peek
If you want to do longer screen recordings, there is a built-in screen recorder, but it has limited options and controls. I use vokoscreen which isn’t too pretty but does a good job, it is included in standard Ubuntu repo, source is also available on Github.
sudo apt install vokoscreen
If you want to lift a color from somewhere on screen, you can use the gpick utility. The package is available in the standard repository. Install:
$ apt-get install gpick
How to Install a Font in Ubuntu
If you download a font and want to install it, the simplest way is to place the files in a
~/.fonts directory in your home. You can also use gnome-font-viewer to preview and install.
$ gnome-font-viewer FONTFILE.ttf
Connect to your Android device
There is a new GNOME Extension, GSConnect, which provides a nice integration between your desktop and Android device. You can browse files, use your device as remote control, or even receive notifications.
Time Savers and Shortcuts
TextExpander is another great Mac time saver, the Linux equivalent is AutoKey. AutoKey does a good job expanding text and is also easy to extend. For example you can use the shortcuts to trigger python scripts to do even more. Install:
apt-get install autokey-gtk
Graphics and Media
The latest release of GIMP, v2.10, was a huge leap forward in usability and now a decent replacement for Photoshop, still not quite there, but good enough to avoid the Adobe monthly tax.
Likewise for a Lightroom replacement, there isn’t one single tool as good, but enough to avoid. For photo management and browsing, I use Shotwell which is quick and works well. For importing, I use Rapid Photo Downloader, which is a powerful tool for importing. For photo editing, Shotwell and GNOME Photos have basic editing; plus a new comer from mobile Polarr app is available on Linux.
For vector drawing, Inkscape is a good alternate to Sketch, at least for the limited vector work I do.
There are plenty of cross-platform applications, either native or Electron apps, which work on both platforms. My top apps include Firefox, Simplenote, Visual Studio Code, Mailspring, and Spotify.
Development on Ubuntu is more or less the same as OS X, except much easier to setup in most cases. You can see my init script I run after a fresh install, it sets up everything automatically. For example, here is the Node and Golang install section.
# node cd $HOME/Downloads curl --silent --location https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get -y install nodejs # golang sudo apt-get -y install golang-go
I use Google Suite for Mail, Calendar, and most Office things, there is full integration with Google in GNOME. By setting up Online Accounts, you can sync your calendar, contacts, files, and more. Google Drive can also simply be mounted as a folder you can access.
I don’t use Dropbox, but looks like it’s available. For sync between computers I use Syncthing which is pretty easy to setup and use; plus it is cross-platform and more secure since everything stays local.
Drivers and support is available for most printers, scanners, and other devices. This has been a non-issue and I find setting up a printer on Linux is easier than Windows or Mac.
I use a Fujitsu ScanSnap for scanning documents and followed the instructions here for setting up which was pretty straight-forward for my model.
It’s not all about equivalence, Linux and GNOME include extra features and apps that aren’t available elsewhere. For one, dark mode themes have been around forever, doesn’t require a whole new release like Mojave.
Check out Tilix for an excellent tiling terminal app, I use this daily and it makes tiling different terminal windows a breeze.
Check out GNOME Shell Extensions for a set of customizations and applets to extend the Desktop, I use the OpenWeather app, Proxy Switcher, Places indicator, and the above mentioned Android connect.
Another important utility to install and check out is Tweak Tool, available in standard repo, install using
apt install gnome-tweak-tool It provides a nice interface into customization all sorts of different parts of Ubuntu.