MonthAugust 2014

OS X to Fedora 20: The User Experience, Part 2

Just tuning in? Have a look at Part 1 to find out how I installed Fedora 20 on a MacBook Air and why I am so interested in trying to duplicate or even surpass the user experience that I previously enjoyed with OS X.

The Cloud

Cloud-based mail, calendaring and file synching have really levelled the playing field between the desktop OSes. It doesn’t matter if you are using OS X or Linux if you read your e-mail in a web browser. Cloud-based services are also the foundation of another important aspect of my day-to-day life: my “gadgets ecosystem”. Even though I’m spending most of my time on Fedora 20 now, my phone and tablet still run iOS. As you will see, this strongly influenced the way that I’ve leveraged the cloud in my system setup.

Here are the services that I needed to put in the cloud:

  • Mail
  • Address Book
  • Calendar
  • To-Do List(s)
  • Notes
  • Files (read: a small number of files that would be handy to all of my devices)
  • Password Management

Some of these were no-brainers, others drove me to try and end up loving some interesting new services…


People don’t normally think of mail as a cloud service, but for most folks, it is. I could run my own mail server but I like the fact that my e-mail stuff is being handled by someone who’s full time job is e-mail, and that the service is configured for high availability. That said, part of the reason that I use a native mail client rather than just using my mail service’s web client is so that I can also have a local copy of all of the e-mail. This makes for faster searches and I always have those e-mails on hand if the mail service goes offline.

That all said, mail is pretty much the original cloud service and IMAP keeps everything in sync for me, so problem solved.

Address Book

It may seem odd to think of an address book as being separate from a mail service, but in the cloud, they are. If you use Gmail, Hotmail, Yahoo mail, or any of the other popular free e-mail services, you never have to worry about this distinction. This is because Fedora and OS X both understand the concept of bundled internet accounts. You tell your computer “I have a Google account” and then your computer asks you which services to use from the bundled list.

But I don’t use Gmail for mail, and furthermore I actually dislike Google’s approch to putting every last e-mail address and Google Plus profile in my address book without my consent. For a long time I used iCloud’s address book, but that’s a no-go from a Linux system. So, enter ownCloud.

ownCloud could actually be the answer to a few of the questions in this post, but in my setup I use it expressly for my address book. This lives on an ownCloud server hosted on OpenShift. Advantages:

  • Use of the industry-standard CardDAV protocol makes this solution work for my Linux laptop and my mobile iOS devices
  • Two-factor authentication for heightened security
  • Hosting on OpenShift means that:
    • My app is monitored and restarted if necessary
    • I can automate backups with the rhc utility


I have to grudgingly give a nod to Google on this one. By solving calendaring and then building a social network with built-in event scheduling, they’ve created a siituation where it is hard to use anything else. ownCloud supports calendaring, but scheduling events across different calendaring systems seems very spotty.

I threw up my hands on this one; too many folks that I need to share my non-work plans with are all on Google, so I have to live with Google for this as well.

To-Do Lists

Apple’s “Reminders” app adds a lot of value beyond making lists. Probably the strongest feature there is the ability to geotag a task (e.g. Remind about picking up milk when I get to the grocery store). What “Reminders” doesn’t do is enable me to quickly create tasks from the Terminal, which is where I am working most of the time.

I’ve ended up splitting the difference on this one. If I need to geotag a task, I’ll create it in Reminders app on my iPhone. Otherwise, I have found an awesome task list solution in Todo.txt.

Todo.txt is great for a few reasons:

  • Available from the command line
  • Can be cloud-enabled via Dropbox integration1
  • Data is stored in a plain text file
  • Native apps exist for getting at your lists from iOS / Android devices

There’s a blog post idea in my future where I talk more about why plain text file formats are so great, but for now, the takeaway is that todo.txt uses a winning combination of simplicity and optional cloud availability.


Finding an alternative to can be dirt simple depending on what you want out of the app. At a minimum, you could simply designate a folder in your DropBox for notes and voila, problem solved. This is particularly true in Fedora 20 and OS X, both of which come with automatic file indexing.

However, I wanted faster navigation between notes and more targeted searching, and that led me to try out nvpy. This oddly-named Python of Notational Velocity makes use of global hotkeys and a very complete set of app-wise key combinations to provide a note-keeping and note-searching powerhouse. It can sync with SimpleNote’s API but it also does perfectly well writing Notes to text files, which brings us back into DropBox territory.

nvpy also runs on OS X, but nvALT looks a little slicker on OS X and can handle the same DropBox-synced note files as nvpy. There is one difference: nvALT will allow you to create notes with whitespace in the titles while nvpy will not, so get into the habit of putting underscores in the first line of the note.

The main benefit to this approach is that I can still get at those same notes from iOS. Elements for DropBox is a Markdown-friendly notes app that has no trouble displaying the notes that I create in nvpy.

As an aside, ownCloud has a plugin for Notes, but the only way to see / use the notes is through the web UI or the native ownCloud apps. If I really wanted to solve this I’d go with the “just use text files” solution, but we get access from Fedora, OS X, and iOS with DropBox.


By now I think you can guess which direction I took. With DropBox and ownCloud to choose from, I’ve gone with DropBox simply because so many more apps can get at those files. If I had very sensitive data to store, I could use ownCloud at the cost of less ease of access.

Password Management

On OS X I am huge fan of 1Password. However, that’s not going to help me on Fedora. The best solution that I could find was LastPass, which runs as a browser plugin under OS X, Linux, and anything else that can run modern builds of FireFox, Chrome or Safari.

LastPass is free for basic services, but if you want a native mobile app, you need to subscribe. My cheapskate workaround is simply to log into LastPass with my account and manually copy passwords when I need to use them on iOS.

The TL;DR on Cloud Services

Cloud services offer a great way to level the playing field between Fedora 20 and OS X. By shifting my cloud usage to apps that could leverage DropBox or presented well-know web services APIs, I was able to create a setup that makes Fedora 20 work as well as OS X and still be able to get at the same data from my iOS-based mobile devices.

  1. DropBox shows up a lot in this article. The main reason is that DropBox offers ubiquitous file storage with widely adopted support. Many iOS apps continue to offer DropBox-based syncing as an alternative to iCloud, and DropBox runs on Linux systems as well. This has inadvertantly placed DropBox as the best low-level cloud storage option for a wide variety of uses. ↩︎

OS X to Fedora 20: The User Experience, Part 1

A little background here: I have been a Mac enthusiast for a number of years now. I would not say that I am religious about OS X, but if the OS X user experience is a philosophical application of “opinionated software”, then I find myself in agreement with most of the opinions that the Apple UX team has expressed.

However, I am also an open source developer. I’d like to believe that it is possible to create a similar and possibly even superior experience with a Linux-based desktop environment. And lo, this is what lead me, a few weeks ago, to get Fedora 20 running on a MacBook Air. If you’re interested in trying the same thing, check out Matt Hicks’ invaluable blog post on setting things up.

Over a series of blog posts I am digging into my impressions of the Fedora 20 user experience as I work through this total switch-over.

The Important Desktop Apps

I spend 95% of my computer time in front of the same 5 apps:

  • A text editor
  • A web browser
  • A mail client
  • A calendar client
  • A chat client (specifically for IRC)

I typically also have several helper apps that I call upon and I usually have music going in the background, but I cover “Cloud stuff” in the next part of this series.

The Same-Same Stuff

For my text editor and web browser, I’m using the same tools on both platforms: vim for text and Firefox for web. The experience of these between OS X and Fedora 20 is 99% identical. Not much else to say there.

Now as you read on you may be thinking: “hey, you could have identical experiences all the way through if you just used <open_source_tool> in place of <os_x_native_tool>”. And you’d be right. But in the cases below, I really feel like the OS X native tool is a little better, and in each case I will attempt to explain why.

The Mail Client: vs. Thunderbird

I don’t always think that the right answer is to make Linux match OS X, but when OS X does something really well, I wish the open-source equivalent could do the same. In the case of Thunderbird, the functionality that I desire is frustratingly close, but not quite there. Specifically, I am talking about the way that handles threaded e-mail discussions, both in the e-mails list and the email display field.

To Thunderbird’s credit, you can edit the columns displayed in the e-mails list, turn on threaded views, and Thuderbird even kinda sorta shows an all-discussion view of the thread. But’s multi-line mail list entries make for a narrower emails listing field, and the all-discussion view still shows complete, distinct e-mails from the thread – including your own e-mails which may have gone to the Sent folder but still count as part of the conversation1. Thunderbird doesn’t do this even though someone first raised this issue in 2003 and people have periodically asked for it ever since.

But while the threaded views leave something to be desired, I will be the first to say that Thunderbird’s e-mail search is awesome. It is very fast, includes a cool chart of word hits by year, and shows enough of each e-mail in the search result to give better context for the word being searched.

Thunderbird isn’t the only mail client for Fedora; in fact, it isn’t even the default client for Fedora. But while Evolution offers a very Outlook-like experience, the Outlook that it emulates is Outlook 2003. I don’t want to get into a colors and buttons argumnt, but Evolution looks pretty dated and has similar problems to Thunderbird with regard to offering an information-dense layout. Moreover:

  • Evolution lacks the sort of plugin ecosystem that Thunderbird has. These plugins add a ton of value and help Thunderbird to stay current as new kinds of web services arise.

  • Evolution doesn’t allow you to map mail boxes to known roles, like for instance having an Archive folder. So if you aren’t using Gmail and you want Archive-like behavior, Evolution isn’t for you.

The Calendar Client: vs. Lightning

I’d love to be proven wrong, but as far as I can tell, nothing in the open-source space can even come close to what Apple, Google and Microsoft have done with their calendaring apps. I understand that doing calendaring correctly is a really hard problem, but the net result is that on the client side, open source systems seem to be limited to only the most basic functionality.

If you only keep calendars for yourself, this is probably not an issue. But for anyone who wants to schedule a meeting or have access to delegate calendars, you are going to run into problems. For this reason, and because I’d already chosen Thunderbird over Evolution, it seemed logical to pick Lightning for e-mail. Lightning is “good enough” for showing me my schedule at a glance, but doesn’t distinguish itself as being a more functional calendar app than any of the other Linux options (like Evolution, or even the nascent California).

The IRC Chat Client: LimeChat vs. HexChat

I use ZNC as a proxy server for several IRC servers where I hang out on a daily basis. ZNC’s primary job is to keep a log of the discussion on the channels that I follow so that if I miss something, I can read about it and follow up later. In order for my ZNC server to know which real IRC server I want to connect to, I need use a log name of the form:


Well, you’d be surprised to find out how many IRC clients can’t tolerate a / in your username. On OS X, this drove me right into the arms of LimeChat. I’m really glad it did, too, because the information density jammed into LimeChat’s subdued interface is totally amazing.

Many IRC clients on Fedora 20 suffer the same username handling problem, but HexChat stands out for being able to connect to VNC. Additionally it can be configured to look almost identical to LimeChat, save for LimeChat’s awesome extra window pane that shows you a continuous stream of all of the convos from the IRC room you aren’t currently looking at.

The Upshot on Native Apps

From my perspective, Thunderbird, Lightning and HexChat provide a workable experience on Fedora 20. The more time I spend using them, the more I can work around or otherwise just accept those little bits of polish that are lacking compared to OS X. In a few cases, as with Thunderbird’s search, I can even see myself missing that functionality when I’m in front of the OS X native app equivalent. But there’s room for improvement on the Linux side and I’d love to see some open source projects that can close the gap.

Next up in this series, I’ll be talking aout the cloud services that I use and how I modifed things to use them from both OS X and this Fedora 20 system.