Adventures with Linux
A quick search for strace osx gave me this four year old blog post. It should be easy to find other alternatives using the same search. It should be easy to find other alternatives using the same search. Post-it® App brings the simplicity of Post-it® Notes to your Mac, iPhone and iPad. Whether you use Post-it® Notes for collaboration, in education or for personal note taking, the Post-it® App helps you keep the momentum going. Post-it® Notes, both analog and digital, are a great tool for organizing. Apple created the XQuartz project as a community effort to further develop and support X11 on Mac. The XQuartz project was originally based on the version of X11 included in Mac OS X v10.5. There have since been multiple releases of XQuartz with fixes, support for new features, and additional refinements to the X11 experience.
This is the second in my series on finding an alternative to Mac OS X. Part 1 was aboutevaluating 13 alternative operating systems and then choosing one to use fulltime. The selected OS was elementary OS. The motivation for this change is toget access to better hardware since Apple is neglecting the Maclineup.
If video is more your style I gave a short (10 min) talkat work on my adventures with Linux that covers the core content of thispost.
It's been nearly a month since the first post, which garnered a lot moreattention than I expected. There's quite a lot of unrest amongst Apple usersat the moment about the current state of the Mac. A lot of the responses werealong these lines:
- I've been considering the same thing, interested to see how it goes.
- What about Windows? Or, Windows 10 is better than previous versions and hasthe Windows Subsystem for Linux (WSL) now.
- You should try Linux distribution X.
- Did you try KDE?
Based on this feedback I did go back and reevaluate Solus OS as well as tryout a KDE based distribution, KaOS, and install Plasma on my Arch install.This didn't change my mind on the best candidate for me to try: elementary OS.
Regarding Windows, I should say that I am strongly biased towards *nix styleoperating systems and find it unlikely that I'd be happy using Windows fulltime. However, in the interests of keeping an open mind I will give it a try inthe next few months. I have backed the Eve V campaign. The Eve V is a2-in-1 laptop tablet that will come with Windows 10. For now Windows is off thetable.
Installing elementary
I closed the first post with:
I plan to resize the Arch partition on my work PC and installelementary alongside. I'll aim to do all my work duties on just that machine.
That's exactly what I did. That machine is a custom built PC running Arch Linux that I was previously sshing intofrom my Mac.
I installed elementary 0.4, 'Loki', which is derived from Ubuntu 16.04 LTS.Installation was straightforward. I was pleased that the live environmentincluded tools like GParted that let me resize and add partitions to allow dualbooting with the existing Arch installation. A secondary benefit of dual bootingwas that I could mount the Arch partition in elementary and copy over code andconfig to get set up quickly.
My priority after installation was getting my development environment set up:
- Password manager
- Browser
- Slack
- Text editor
- ruby environment
Password Manager
In preparation for this move I set up Enpass on my Mac and iPhone withsyncing via Dropbox. I imported all my passwords from 1Password. Enpass lackssome of the finesse of 1Password but overall it works well and includes reliablebrowser integration.
It was pointed out to me that I should be using an open source passwordmanager, which is a valid point. However I didn't have a problem with1Password being closed source and I'm not aware of any open source optionsthat are: cross platform (at least Linux, and iOS), have browser integration,and can remain synced across devices. Unless I've missed such a product,it's closed source for now.
Downloading Enpass for Linux yields a Debian package (.deb
file).Installing this required using dpkg -i
on the command line. I thinkinstalling third-party software is something the system needs to handlegracefully. The elementary folks could make installing it a lot simpler.
Setting up Enpass syncing was easy since it uses the Dropbox API soI didn't even need to install Dropbox.
Browser
The default elementary browser is a tweaked version of Epiphany. It feelsquite similar to my Mac browser of choice, Safari (and is also WebKit based).However in my brief usage I found it to be unstable. I encountered WebKitcrashes and stalls loading pages for no particular reason. The deal breakerthough is that it does not support extensions (for Enpass password filling).
Firefox and Chromium, the open source version of Chrome are available in AppCenter, elementary's app store. I personally avoid Google products wherepossible so chose Firefox.
Setting up my work Google Apps email in the default Email app was simple,not much to say here.
Slack
Things did not go as smoothly with Slack. Again they supply a .deb
packageon their download page so I resorted to dpkg -i
again to install it. Howeverit complained about missing dependencies. Attempting to add said dependencieswith Slack in it's half installed state resulted in more errors about missingdependencies. In the end the solution turned out to be remove Slack, installthe dependencies, then install Slack.
Clearly there is some user error at fault here and there must be a better wayto install downloaded packages like this. One option looks to be Gdebi. Thisfeels like something that is harder than it needs to be in elementary.Especially since it is a simple double click on a stock Ubuntu installation.
Text Editor
Post It For Mac Os X 10 11 Download Free
Installing my text editor of choice, Neovim, also proved annoying. Theinstallation instructions suggest using either Linuxbrew (a port ofHomebrew to Linux) or Personal Package Archive (PPA). Having had goodexperiences with Homebrew on my Mac I decided to give Linuxbrew a try. Howeverit turns out Linuxbrew manages it's own version of all the packages it tracks(makes sense I guess). This end up duplicating many of the packages availableor already installed by the system package manager. This works on macOS sincethere is no system package repository but did not sit well with me on a Linuxsystem.
The other other listed option, the ppa, was a daily, 'unstable', build. My texteditor is one of the most important tools for getting my job done. I'm notabout to install an unstable version of it, so that left building from source.I'm not averse to this but it means the onus is now on me to keep track of, andbuild new releases. It also means that you lose the easy uninstallation andclean upgrades of system packages. To address these drawbacks this I resorted toa handy tool I've used before: GNU stow.
Update: As I was writing this post Neovim announced a stable ppa.
A Diversion
The experience up to this point had soured my feelings towards elementarysomewhat and I wondered if I'd just be better off sticking with Arch. Afterall, most parts of the elementary desktop environment (pantheon) are inthe Arch User Repository (AUR).
I set about building and installing all of the AUR packages fora full pantheon environment. The end result was a pale imitation of the realthing. Light DM, the display manager elementary uses was crashing so I hadto swap it for gdm just to be able to log in. Once logged in, it did not lookright since it was running on GTK+ 3.22 and the elementary theme onlyworks properly on GTK+ up to 3.18.
I'll omit all the details, but at this point I tried both GNOME 3 and KDEPlasma 5 on Arch but both left me wanting the well designed, uncluttered, andintegrated elementary environment. I rebooted back into elementary and justaccepted I'd have to work around the limitations of its Ubuntu base.
Making Myself at Home
Over the course of the next few days I brought more of my tools andcustomisations over. Some like tig
were easy, others like ripgrep
and fzf
required building and installing from source. I expected installing mypreferred monospace font, Pragmata Pro, to be a real chore but it was supereasy: Just download, click the font file, then click 'Install' in the fontviewer.
Getting the terminal to use Pragmata Pro required installing GNOME Tweak Tool,which let me change the system monospace font. This had a side effect that bringsme joy anytime it happens: Any application that renders monospace text using thesystem default font, does so in Pragmata Pro. I especially like seeing it in email.
The elementary desktop environment is pleasant to use. It has a familiar dock,(Plank) and generally does what you expect. There are customisable keyboardshortcuts for many common actions.
Interestingly elementary almost completely removes menus. As a heavy keyboardshortcut user this makes discovering shortcuts difficult. I ended up resortingto searching the elementary Stack Exchange and reading the, 'Learning TheBasics', guide to discover some of them. This removal of menus issomething largely inherited from GNOME. In GNOME 3.20 (the version afterelementary is built upon) GNOME introduced shortcut windowsto address the discoverability problem. It would be great to see elementarysupport these too.
One of the things I was concerned I would miss from macOS was the consistencyof the UI. I think my fears in this area were unfounded. So far I have foundthe built-in applications as well as most others built using GTK+ 3 to be welldesigned, consistent and pleasant to use.
The first few days went well enough that I also installed elementary on a Macmini at home (more on that in another post). In the subsequent weeks I'vehardly used macOS.
HiDPI
One of the benefits of desktop hardware is the ability to upgrade. This is anaspect of computing that is sadly missing in the Apple lineup these days. I'vebeen wanting to get a high-resolution display for a while now but my MacBookPro was incapable of driving one at 60Hz. Now that I'm using Linux on my PCthis is no longer a problem — just install a better graphics card! I boughtthe following:
- Gigabyte GeForce GTX 1050 Windforce OC, 2GB graphics card — AU$199
- Dell P2415Q 23.8inch 4K (3840 × 2160) display — AU$665
Keep in mind these are Australia dollars which are worth less than those fancyAmerican dollars and are no doubt also inflated by the, 'Australia Tax'.
I chose an NVIDIA GPU because they publish (proprietary) drivers for Linuxand FreeBSD, making their hardware well supported. At first I installedthe drivers in the Ubuntu apt repos but the graphical environment failedto start — the drivers were too old and did not support the GTX 1050 chipset.So off I went to NVIDIA and installed the latest version manually.
With the right drivers installed I was back in action and was able to use thefull resolution of the display @ 60Hz. Retina aka HiDPI is reasonably wellsupported on Linux but requires some manual steps to enable it. In the GTK+based elementary OS this boils down to:
The end result is stunning. Pragmata Pro looks especially great. So good that Isplurged on buying the whole font family (bold + italic). Previously I'd onlypurchased the regular variant.
Most things work but I did run into some rough edges:
- 'Whole Screen' shots have an extra black area in HiDPI
- The screen is placed in the upper quadrant, the rest of the image is black.
- Notifications are half the width they should be.
- When switching apps Plank shrinks more than it should.
Cracks Start to Show
My point of comparison for software installation is: the Mac App Store,Homebrew and Arch Linux. With each of these it's a simple matter to installthe latest version of a tool or application. On elementary I ran into anumber of cases where software I wished to install did not exist in theUbuntu repos or were outdated enough to be a problem:
- Neovim (Homebrew and main Arch repos)
- fzf (Homebrew and main Arch repos)
- ripgrep (Homebrew and main Arch repos)
- Nvidia graphics drivers (version 367 in Ubuntu, 375 in Arch)
This is obviously something that can be worked around but it adds friction thatI did not have on macOS.
Furthermore, whilst I was generally enjoying the elementary desktop and apps,as time went on I started running into more bugs. Bugs are bound to happen andit was excellent to be able to search a public bug tracker to see the status ofan issue or create a ticket if it was new. However this didn't change the factthat they were affecting me on a daily basis. Here are some of the morefrustrating ones I ran into:
- dbus bug that prevents the desktop from appearing after log in.
- Fixed upstream in Jul 2016.
- Ctrl-C doesn't work in Mail.
- Fix committed Dec 2016 but yet not released. Milestone is set to nextelementary release, Juno.
- Plank uses high CPU while idle after running for more than a day or so.
- Unfixed but basically means you have to kill the
plank
process everyday you remain logged in.
- Unfixed but basically means you have to kill the
- Unable to open new applications because the X server has reached the maximumnumber of connections. See Ask Ubuntu question
- Note: As I was writing this post I encountered this issue on Arch aswell. It appears that Enpass is the cause.
- Events shown in the calendar are off by a day.
- Bug has been open for over a year and remains unfixed. Seems kind ofimportant for a calendar app to show stuff on the right day.
- gnome-keyring bug that prevents the ssh agent functionality working,resulting in prompts for ssh key passphrases when interracting with remoteservers and git repos, which I do a lot for work.
- Fixed upstream in v3.20, Nov 2015 (Note: Despite the bug title, it wasn'tlimited to just Wayland sessions)
The accumulation of this friction finally came to a head with the last bugabove. I tried to start writing this very follow up post (on the Mac mini athome) by cloning the git repo that stores this blog and I was prompted for thepassword to my ssh key. This is not supposed to happen. Previously the systemhad shown a nice graphical dialog prompting for this password and an offer tostore it for future use. Desk edge molding. Some more digging revealed I'd run into agnome-keyring bug that was fixed in Nov 2015 :-(
Post It For Mac Os X 10 12 Download
At this point the system was actively harming my productivity so I did what anyrational person would do: blew it away and installed Arch Linux. I thencompounded my lost productivity by constructing a GNOME environment I was happywith:
It still didn't feel quite right so I burnt more time and swapped out the GNOMEShell for the Budgie Desktop from Solus OS, which I've been using since:
After I was happy with the set up at home I rebooted into Arch on the work PCand replicated the environment there, which fortunately was much quicker.
Text Input and Keyboard Customisation
As the days rolled on I addressed a few more of the things I was missing frommacOS: Using GNOME Tweak Tool I remapped Caps Lock to Control and swapped Super(⌘) and Alt so the keyboard layout was more familar.
At some point I had occasion to type an em dash (—). A Linux using colleaguesuggested typing Ctrl-Shift-u
then the hexidecimal Unicode codepoint as one way to do this. Whilst this does work, there was noway I was going to attempt to remember the code points for all the symbols Iwanted to type — especially since this is simply Option-Shift-dash
on a Mac.
My search for a better method yielded the Compose Key. When enabled via GNOMETweak Tool this allows many non-ASCII characters to be typed by tapping thecompose key then typing two or more other keys. I assigned itto Right Super
. Often the keys are obvious, such as: !
-?
for ‽, |
-c
for ¢, t
-m
for ™, or O
-c
for ©. I think these are actually better thanmacOS's Option
combinations as they're more guessable. Incidentally em dashis Compose
then three dashes.
Replacements For macOS Apps
Terminal
I've been using Tilix as my terminal, which has proved to be a great replacementfor iTerm.
I prefer a native mail client to web mail. After switching to Arch I've beenusing Geary, which elementary Mail is based on. It's quite good for readingmail, rendering all messages I've encountered correctly, even rich HTMLnewsletters. It has a three pane UI that groups related emails together intoconversations like Mail.app on mac OS.
It is less competent for composing email as the editor is quite limited:
- There is no way to insert images inline (they can only be attached).
- Dragging and dropping an image or file onto the editor just pastesthe path into the text instead of attaching the file.
- There is no way to insert a bulleted or numbered list.
I might need to explore other options such as Evolution or Thunderbird if theselimitations become annoying.
Firefox
On macOS Firefox has always felt a little off to me. There's leaky abstractionsthat reveal it's doing its own thing, and that it isn't a Mac first app likeSafari. Some have been fixed like the scrolling physics not quite matchingsystem scrolling. Others remain, like not using the system spelling service ormissing standard contextual menu items on text fields such as Services andTransformations.
On Linux Firefox feels at home. It adapts to the GTK+ theme in use andgenerally feels like a Linux app should. I've been liking Firefox Sync, whichsyncs my history, open tabs etc. between home, work and Firefox Mobile on myiPhone. The iPhone app also provides a neat share action accessible from theshare sheet of any application, 'Send Tab', that allows you to open the page onany other synced Firefox.
File Management
'Files' aka Nautilus has handled all my file management needs well so far.These include:
- Double clinking a file to open it in an application.
- Moving and copying files with drag and drop.
- Double clicking an archive to have it extract automatically, without prompts orother noise.
- Files on elementary used File Roller to extract files. This addedunnecessary dialogs and decisions when what I want 99% of the time isextract everything, into a directory inside the the same directory as thearchive.
- Pressing Space with a file selected to show a preview, like Quick Look inFinder.
- 'Mounting' my MacBook over ssh to browse, view and copy files from it.
- Opening the current directory in the terminal with
xdg-open .
- Dragging and dropping a file onto a terminal to paste the path.
There is something nice about being about to completely close Filesunlike Finder, which is always running and present in your Dock.
Videos
All the videos I've encountered so far online and offline have played fine.Unlike QuickTime X player on macOS the GNOME video player has speed controls!
Still To Do
I mentioned in the first post that I was unsure how I would replace tools likeKarabiner and Alfred.
The main thing that I'm missing from Karabiner is simultaneous keys. Theseallow holding s
and d
to access the arrow keys on the hjkl
keys (I.e.access arrow keys without leaving the home row). I haven't looked into whetherthis is possible to replicate because I've ordered a programmable replacementcontroller for my Filco mechanical keyboard. I plan tobuild home row arrows into it so they work on any computer. This will alsoallow me to move the Caps Lock, Super and Alt config from earlier into thekeyboard.
My three most common uses for Alfred are:
- App launching
- Clipboard history
- Snippets
For app launching I used slingshot, built into elementary and later thelauncher (Alt-F2
) built into Budgie. I've remapped that to ⌘-Space
forconvenience. I've not looked into a replacement for clipboard history yet but Iam aware of some options. For snippets the only comparable tool appears to beAutoKey-Py3. I tried it but it was unreliable. It doesn't appear to work atall in Firefox, was unreliable in the terminal and worked ok in gEdit. I'mkicking around the idea of building my own (in Rust of course).
Closing Thoughts
I'm going to continue using Arch at work and home. I'll also keep an eye on, andcontinue to support elementary. I think the elementary team isdefinitely on the right track but they probably need to give some thought tothe base it's built upon. Adobe cs6 for mac. A Long Term Support (LTS) release makes sense forservers but for a desktop I think it's the wrong choice.
Video drivers for mac. The next frontier is Linux on my MacBook. I think that will be more of a test,particularly with hardware support (especially WiFi and trackpad).
This experiment has consumed days of my time at this point and the result isnot in any way as polished as macOS. For the type of work I do and how I liketo do it, it is still a productive environment though. Plus there is the addedbenefit of access to much more up-to-date, varied hardware than Apple isoffering at the moment.
I may still have the shine of novelty attached to my experience so far. Timewill tell if that fades and it becomes frustrating or remains a productiveenvironment. I'll continue to attempt to shift my computing needs to Arch. Asalways I'll be posting as I go. Subscribe to the feed or follow me onTwitter for updates. If you enjoyed this post consider supporting meon GitHub Sponsors.
This is part 2 in a series. Read Part 3