mkaz.blog

Code

Ubuntu Guide for Mac Converts

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

Package Management

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.

Screen Capture

Screenshot

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

Animated GIF

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

Video

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

Color Picker

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

gpick-screenshot

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.

First, install the KDE Connect app on your Android device, and then the GSConnect extension in Ubuntu. See this article for more or visit the GSConnect extension page.

Time Savers and Shortcuts

Albert Launcher is a great utility for launching apps, performing calculations, and quick productivity actions. It is the Linux equivalent of the Alfred tool on OS X.

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 Geeqie which is quick and works well. For importing, I use Rapid Photo Downloader, which is a powerful tool for importing.

For photo editing, I'll use a mix of different apps depending on the need. For RAW files, I'll use RawTherapee, but I rarely shoot RAW. Often, I'll just use Google Photos for simple edits, or if I need a bit more I'll use the Polarr app. Polarr started on mobile but is now available on Linux too.

For vector drawing, Inkscape is a good alternate to Sketch, at least for the limited vector work I do.

Applications

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

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

Cloud Integration

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.

Peripherals

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.

Bonus

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.

Published: