Presenting the EurKEYboard: A mechanical keyboard for Europeans and coders

For several months, I’ve been using Steffen Brüntjen’s EurKEY keyboard layout. That layout combines a general US feel with special characters for most European languages and even Icelandic!

That’s fantastic for programmers. You get easy access to keyboard shortcuts that would otherwise be impossible or in weird locations — try typing Alt- on a Swiss-German keyboard for example, you’ll find it’s impossible.

When it comes to braces, most keyboard layouts in Europe are a nightmare. Some require shifting, some require alt-shift to get to the braces and quotes you need several hundred times a day as a programmer. EurKEY instead makes all  manner of braces available with one keystroke, just like on a US keyboard. This makes it much more relaxing to type, whether on the shell, in an editor or in some heavyweight IDE.

Translators are happy as well. Once they’ve memorized the positions of the special characters they can do three-way translation between e.g. Icelandic, Spanish and German without ever switching the layout or memorizing new finger chords.

The only downside? I always wanted to peek at something to see where the special characters are, and looking at a printout of the layout became tedious. So why not create a EurKEYboard in hardware, with all the glyphs printed right on it, and upgrade my plastic piece of crap to a lovely mechanical keyboard in the same step?

This is how I came to be the proud owner of the world’s first EurKEYboard. Behold:


That be still fresh in its packaging, yo.

You can have a closer look at the workmanship and some of the glyphs:


And here’s the other side, with the important braces:


Sorry about the shitty photography.

Now, I’m sure that if you’re European, a translator, a programmer or all of the above, you want to have one of these. In our usual, greedy world I’d be saying, “hand me US$200 and you can have one.” But because I believe in sharing, I’m instead saying “hand US$150 to and you can have one. Or ten.”

I’m releasing my keyboard layout for printing on their keyboards, it’s on GitHub. Just make sure to open the layout in Inkscape, enable any layers you want (you can put a Windows icon where my Debian swirl is, for example), then convert each layer to a path and boom, there you go, printable layout.

After that, proceed to, choose a custom Mechanical Keyboard V2, color all the keys the way you want them and attach the SVG of your custom layout. A few days later, the mailman will ring with a EurKEYboard for you. I’ve included two alpha layers as well, one with Mozilla’s Fira Sans font for the main keys, the other with Adobe’s Source Pro Sans.

If you find that all this keyboard ordering and vector graphics converting is too annoying for you, get in touch with me. I can do the order process for you, and I’m charging US$50 for my services if you order a EurKEYboard unmodified from what you see in the pictures. If you want any other keyboard layout customizations, I can take care of that as well since I’ve now spent enough time in Inkscape worrying things half a millimeter this way or that.

And the typing comfort, you ask? It’s like heaven. I ordered a model with Cherry MX Brown switches — you’ll have to figure out which switch type is right for you yourself. But I make less mistakes even after just two hours of use, and my fingers are a lot less exhausted, especially now that I’m typing thousands of words a day. The keys don’t feel wobbly like on rubber dome based keyboards, either. Each key is nested safely on top of its switch.


Marrying Pulseaudio to KDE’s multimedia settings

If you’re running KDE and Pulseaudio and have the problem that you can’t configure your audio sources in KDE’s multimedia settings, there might just be a component missing:

apt-get install vlc-plugin-pulse

I’m not sure if this is usually part of some KDE desktop metapackage, but for me this package had been missing and one of the symptoms was that only “alsa” and “oss” were shown as audio sources, with no sound playing at all. Those icons also had little VLC traffic cones on their heads.

Syncing Sailfish OS's native calendar/contacts with ownCloud

I just found this very helpful blog post by Alexander, listing the proper CalDAV/CardDAV URLs to use with SyncEvolution on Sailfish OS if you want to sync with ownCloud. Make sure to make backups of your contacts and calendars before you start, since setting the wrong side to be master can potentially wipe out all your data on the other end (as it should, you fool!)

An input method for Chinese in KDE 4

If you need Chinese character input in KDE (typing in pinyin and then selecting the correct word), it’s quite simple on Debian GNU/Linux:

apt-get install task-chinese-s-kde-desktop fcitx-pinyin

That’s all there is to it. Afterwards you should be able to start fcitx in KDE and you get a new icon in your system tray. Go there to configure your input methods. By default, ctrl-space will switch to another input method, if you don’t have anything else installed, that will be pinyin input. Ctrl-space again will take you back to one of your previous input methods.

This is what it looks like in Konsole:


Nice and clean.

A secure, free alternative to WhatsApp that is fully under your control

Update: Nowadays, better look into a Matrix homeserver.

With Facebook’s acquisition of WhatsApp, many people are turning to alternatives such as Threema or MyEnigma. But these alternatives, while offering better security than WhatsApp, are still based on proprietary technology and controlled by a single company. Also, they have somve privacy issues:

  • Threema requires that you have the Google apps installed on your Android phone. This is nonsense, since you can buy the .apk file directly from Threema, but cannot use it unless you have the Google apps, and in that case you could have bought it through Google Play as well.
  • Threema uses Google Cloud Messaging for notifications. That means Google still knows about your chat activity.
  • Threema and myEngima are both closed source, so you cannot be sure what they actually do. You also cannot get them through F-Droid or other app stores that carry Free Software.
  • myEngima seems to not be available through any other means than through Google Play. Update: This is wrong, myEngima customer support gave me a direct URL to the .apk file. I just don’t know if they use Google Cloud Messaging, they didn’t respond to that.

If you want to avoid these problems, you can, thanks to Free Software. You can offer your friends and family your own solution for chatting, and as a free bonus, this stuff comes with full desktop support, not just mobile. So you can transparently chat with your friends either from a mobile device, your tablet, your laptop or your desktop, and you have the full source code of all the components involved.

Did I mention it’s encrypted end to end and very simple to use? No? It’s that, too.

All you need to do is:

  1. Set up your own XMPP server. I can recommend Prosody. It’s very easy to set up and has Debian packages available.
  2. Make your friends install ChatSecure. On Android, this is also available from F-Droid. Inside Apple’s golden cage, it’s only available from Apple’s store I guess. It might be on Cydia, but I don’t know of a way to check.
  3. Create accounts for your friends on your XMPP server. Enable the ‘muc’ module if you want to allow group chat via conferences.
  4. Make everybody connect. As an extra bonus, make everybody exchange fingerprints so you can have secure end-to-end messaging.

You might want to consider restricting connections to SSL-only so all possible channels are encrypted.

If you don’t have hardware you control yourself, Prosody is very resource-friendly and runs fine even on very small virtual servers you can rent somewhere. There are services like that are reasonably protective of your privacy.

Let me know how this works out for you.

The first week with a Jolla phone and Sailfish OS

I’ve had my Jolla phone for a little over a week now and I’ve completely switched off my Android phone. Time to see how well things are going!

Some native applications I had to grab from alternative sources:

I had to install both on the terminal using rpm: devel-su rpm -i package.rpm. You can execute this either on the built-in terminal application or by SSHing into your phone. The SSH server is built right into Sailfish, by the way, all you need to do to get it is to enable developer mode in phone settings. It even helpfully tells you its own IP.

For some things, no native Sailfish applications exist and so I had to take the second-best option, running Android apps. These were:

  • aCal, a CalDAV-compatible calendar client. Jolla’s own calendar does not have CalDAV support yet.
  • K-9 Mail, a very good email client for Android. Jolla’s own client had many issues, especially problems sending SMTP messages and sorting things into IMAP folders. K-9 is a time-tested alternative.
  • Mozilla Firefox for Android. The built-in browser for Jolla is okay, but things like double-tap to zoom and reflowing of text don’t work well yet. Text would often run off the edge of the page, and because I read a lot of text-heavy pages, that won’t do.
  • TTRSS Reader, a reader application for Tiny Tiny RSS, my web-based RSS feed reader. A port of a native Harmattan app to replace this is planned, and I’m bribing the author with beer.

All the Android applications I use are Free Software and can be obtained through F-Droid, an app store for Free Software on Android. F-Droid works very well on Sailfish OS. It actually updates and downloads faster than on my old Samsung Galaxy.

I mentioned a terminal earlier: FingerTerm, which comes packaged with Sailfish as terminal emulator, is excellent. I’d say it’s better than ConnectBot as it crams a full keyboard with arrow and meta keys into only the lower half of the screen. FingerTerm also appears to be a Harmattan port, and another very good one.

What’s still missing for me

Apart from the things mentioned above, I miss offline navigation and a good ebook reader. I don’t really read ebooks, but sometimes it’s nice to have a copy of the paperback I’m reading on some portable device in case I unexpectedly have to wait for something and don’t have my book with me.

To fill that gap, I’m sure FBReader could be ported. There is actually a Meego port for Harmattan, but it’s beta and from 2011. For offline navigation, I would like to see something that uses OpenStreetMaps data. On Android I was using OsmAnd for that. On Sailfish I haven’t installed any maps system yet — I will probably use the one from Jolla for now, even though that’s online-only.

Conclusion after one week

Am I happy with my new phone? Yes, very! The software side mentioned above isn’t everything: I get around 3 – 4 days of standby time from one charge. The screen is just the right size for me to get everywhere with just one thumb, and the Sailfish UI helps with that. Some of the gestures take a little getting used to, but all in all the learning curve isn’t bad. The thing is fast despite having a “slow” 1.4 GHz processor. I guess it’s the native apps that make all the difference.

I wouldn’t recommend the phone for non-nerds at this time, but as a geek thing, it rocks. The developer community is slowly getting up to speed with the new Sailfish stuff as well, so give them half a year to fill some gaps. It also made me consider picking up C++ again. After all, if you can program for Sailfish, you have C++ and Qt knowledge, something that might land you a few jobs not just in the mobile industry.

I’m also waiting to see what can be accomplished with The Other Half, the removable back cover of the phone that could potentially give it endless expansion possibilities (hardware keyboard, proper digital camera module, barcode scanner…). No other phone has this, and people have already made all sorts of hardware hacks for it.

Finally, I really want a Finnish phone to succeed. I had a decade-long love affair with Nokia phones, and every time I bought a non-Nokia phone it ended up being a disappointment. Of course this was in the era of black and white LCD screens and antennas poking out of the phone case. But those Finns did so many things better than the competition. I hope some of them now work at Jolla and that they’ll bring us the same level of polish.

The Jolla phone is already selling better than the iPhone 5C and 5S in Finland. The future seems bright!

The slow and painful act of ungoogling yourself, part 7: Deleting your account

So you’ve found replacements for all the things you used to get from Google, and you’re ready to delete your account. Nice! Good job. I just did the same thing yesterday:


Make sure to tick every single box, otherwise they won’t let you go. Also, be sure to download any YouTube clips you may have uploaded. I had a YouTube clip with over half a million views and 3000 thumbs up, so that hurt a little bit. But it’s all good, I will be hosting that clip here in the future.

So, did you click that delete button? If you did, welcome to a tiny bit more freedom. If you didn’t: What’s keeping you with Google? I’d like to know. Feel free to comment.

The slow and painful act of ungoogling yourself, part 6: Browsers and syncing

There is something that is so basic and common to using the Internet that I perhaps overlooked it in my earlier articles: the web browser.

Google Chrome has been gaining market share at an alarming rate over the last few years. Whatever Google’s marketing is doing, it’s working, as even people who don’t know how to install a program have installed Google Chrome and are using it as their default browser. Yes, this is anecdotal evidence, but I know several people who aren’t really good around technology, who were using Internet Explorer before (!) and are now Chrome users. With no help from anyone.

Chrome is pretty fast, that’s true, but you can easily replace it with another very fast and extensible browser: Mozilla Firefox. The Mozilla Foundation especially likes to make a point of how Mozilla’s products put you, the user, in the center of everything they do, and how they value your privacy. So far, this has been true and this can’t be said about Google.

This privacy- and user-friendliness goes so far that they encrypt the things you sync to them. And if you don’t trust that, you can run your own sync server, it’s explained in great detail here:

With the whole source code to the sync server and the server machine itself under your control, any privacy issues you might have are created by you, not by Mozilla. The sync server runs perfectly behind mod_wsgi on Apache, but for people who don’t know what mod_wsgi is (or Apache, for that matter), this is impossible to set up.

If you are one of those people, maybe you have a nerd friend whose server you trust, who you could poke to set up a Mozilla Sync server for you to sync to?

I’m still running into a few configuration issues with the server and while the docs are quite okay, I think that Mozilla Firefox itself might be to blame in this case as it doesn’t seem to be able to register new users on my sync server. But other than that, it’s nice to take your synced data into your own hands.

Update: The issue was just that I was running the sync server via WSGI behind Apache, and changing the setting to allow new user registrations didn’t get through to the already spawned WSGI applications. If you run into this issue, just reload or restart Apache, it’ll magically work after that 🙂


The slow and painful act of ungoogling yourself, part 5: Translation, dictionaries and online video

After all my other posts and about a year of activity on the subject of ungoogling yourself, I have come to the point where I only depend on Google for two things:

  1. YouTube videos. Funny cat videos. Zefrank. Video game reviews and such.
  2. Translations, especially of phrases and sentences.

The former hole can’t really be plugged. For video game reviews and other fun clips, I’ve subscribed to The Escapist‘s publisher thingy. That way I get HTML5 video instead of Flash video, and they give me a higher quality as well. Eurogamer and Gamespot also have some video reviews. I only miss having the community reviews you find on YouTube.

Outside of the video game area, I try to find stuff on Vimeo, and quite often I’m successful there. Vimeo is also a European company, which makes me twice as happy when I use them. And they seem to be run by proper æsthetes, look at how pretty, clean and uncluttered everything is!

Of course I won’t be able to preview albums by listening to Vimeo clips, since most people put their music rips on YouTube, not on Vimeo. On the other hand, Vimeo is much more friendly to artists and does not suffer from the horrible community that YouTube has. So you get more signal, less noise.

Talking about previewing albums, that can be done at Grooveshark. If it’s not on Grooveshark, chances are the band itself has some clips available, or there’s always Update: And 7digital, which gives you DRM-free MP3s and previews. This can be an alternative to Amazon as well if you generally distrust very large companies.

Update: 7digital proved that they take their shit seriously. I complained about too short filenames — even ripped albums from random torrents have the complete track names in the filename, but the three albums I bought from 7digital didn’t. I complained (via Twitter), they acknowledged it was an issue on their side an released a fixed version of each of the albums less than 24 hours later. Fucking awesome.

Finally, let’s get to translations. I thought nothing could improve upon Google Translate, but now some companies have started aggregating translated pages translated by actual humans and using those to feed their translation indexes. I think this is potentially a better approach than Google’s metalanguage translation system. One of these aggregation companies is, and they also use third-party dictionaries such as the Folkets Lexkion as sources.

So these were the final building blocks. I have been mostly free of Google’s services for nearly a year now, and completely free since — uh — two hours ago. By far most of my stuff now comes from European companies, especially Switzerland, Germany, France and the UK.

In the same vein, I’ve stopped buying books and music from Amazon and now get them from Bookzilla. My vinyl comes from Supreme Chaos Records, Prophecy Productions and others.

This took me almost a year to do, and I really invested time researching things. I’m not saying that my choices are the only valid ones or that my reasoning is the soundest. But I’m sure if I could do it, you can get rid of Google in your life as well, for whatever reasons you might have.

I hope these articles gave you a shove in the right direction.

The slow and painful act of ungoogling yourself, part 4: Mobile phone operating systems

Google’s Android rules the mobile phone market like some sort of ad-flinging gorilla, and it’s not easy to escape its grasp. On a default Android phone your mouth is firmly pressed against several of Google’s teats:

  1. Google Play, their app store, which requires a Google account.
  2. Gmail
  3. Contacts (integrated with Gmail)
  4. Google Calendars
  5. Google Maps
  6. Google+
  7. Online photo galleries (integrated in Google+)
  8. Hangouts (replaces Google Talk)
  9. Currents (so they know what news you read)
  10. News and Weather

There might even be more, but those are the worst offenders. To get rid of all of those in one shot, I moved away from Android to CyanogenMod. The transition was very smooth, I didn’t even lose the data on my (virtual) SD card. Since my phone has no physical card slots, I was a bit worried. Now that I have root, I can remove those Google apps. On a normal Google-flavored Android phone, those applications are protected and can’t be removed.

My new, slimmer phone OS syncs with my own CalDAV and CardDAV servers instead of Google’s, uses my own IMAP and SMTP systems, but what about my Google Play purchases? That one hurts: If you’ve bought apps from Google’s app store, you will have to buy them again from another store if you move away from Google. And then you’re stuck with that app store.

Some authors also support alternative ways of unlocking their apps, but most of the time you’ll be forced to reinstall at least Google Play. I haven’t tried removing Google Play after installing the app, but I’m pretty sure this will break the app as the update mechanism is usually tied to the app store.

That weird practice alone is worth an entire post, but I’ll leave it at that. I’m now self-hosted and free of Google’s products and services. I might go one step further by switching from Android to SailfishOS, but that’s for the future to decide.


Update: If you want some pointers for alternative app stores, tries the Amazon Appstore, SlideMe, F-Droid and Yandex.Store. Funnily, those Russians have way less invasive terms of service than Google…