Jack Wallen addresses the state of touch screen support in Linux via a piece of stellar System76 hardware.

I recently received a review unit from System76 called Sable Touch, and it was $1,300.00 (USD) worth of touch screen goodness. Before I get into the actual state of "touch" on Linux, I want to highlight just how nice this machine is.

The specs

OS: Ubuntu 14.10 64 bit

CPU: Intel Core i5 2.8 GHz 4440S (64 MB cache -- 4 cores)

RAM: Upgraded to 8 GB

Display: 23.6 1080p Multi-touch display

128 GB mSATA solid state drive

Wi-Fi up to 867 Mbps

Bluetooth

Based on specs alone, this is a pretty sweet rig. The all-in-one form factor makes for a sexy package. And like every System76 machine I've ever used, the performance and aesthetic element seriously impress. Having Linux with touch screen support is like a child at Christmas. Sure, we've had touch screens for a long, long time -- but the first time you use Linux with such a machine of this caliber, you feel something akin to that first time you used Linux. And Ubuntu Unity really shines in the touch screen environment. Out of nowhere, you realize just what Canonical was going for when they re-invented that wheel.

Linux and touch support

And now, for the caveat in all this praise. Linux touch screen support has a ways to go. First, let's talk about the good. Besides the standard single-touch actions (tapping buttons, moving windows, etc), at the moment, Linux supports the following multi-touch gestures:

3-finger pinch to maximize/restore windows

3-finger press and drag to move window

3-finger touch to show grab handles

3-finger double tap -> switches to previous window

3-finger tap followed by 3-fingers hold -> shows window switcher drag those 3-fingers -> change selected window icon release fingers -> selects window and closes switcher

3-finger tap followed by 3-fingers hold -> shows window switcher release fingers -> switcher will kept being shown for some seconds still drag with one or three fingers -> change selected window release finger(s) -> selects window and closes switcher

3-finger tap followed by 3-fingers hold -> shows window switcher release fingers -> switcher will kept being shown for some seconds still tap on some window icon -> selects that icon and closes the switcher

4-finger swipe left/right to reveal launcher (if the dock autohide is enabled)

4-finger tap to open dash

That's a pretty solid list, and it all works really well. Now, let's take a look at a couple of issues that do not work. Understand, the following has nothing to do with the System76 Sable Touch -- this is all about Linux or third-party software.

So far, what I've found to not be working is a bit surprising:

There's no right-click touch or gesture available, without a bit of work

You can't scroll with a gesture (you have to drag the scroll bar)

Google Chrome is simply useless with touch input (unless run with --enable-pinch, and even then, you still can't switch between tabs)

Skype can't be used with touch

There is no pinch zooming

The virtual keyboard (Figure A) is not much to speak of (open with the command onboard)

Figure A

The virtual keyboard on the System76 Sable Touch.

Of the above, there's really only one that's seriously problematic -- the lack of a right-click. For most users, this effectively makes touch on Linux useless. Instead of depending on that glorious screen for the majority of your input, you still have to share time with the mouse and keyboard.

There have been some workarounds (like the gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true" workaround) that didn't really work. Another solution (from within Settings | Universal Access) was to enable the Simulated Secondary Click, which effectively triggers the secondary click. That solution sort of worked. With that set, you can do a "double-tap hold" and then release to get a right-click action ... in certain instances. For example, that right-click will bring up the desktop menu (so you can create new folders or change the wallpaper) within the file manager and in Firefox. However, that right-click does not work for quick lists on the Launcher, nor can you pin items to the Launch (you have to drag them from the Dash). Furthermore, the right-click action should be enabled by default. The average user is not going to know where to find the solution (in fact, most instructions incorrectly lead the user to Settings | Mouse | Accessibility -- a location that doesn't exist).

I understand all of this may well change when Unity 8/Mir arrives. At least it better. Ubuntu is placing a large amount of eggs in a very small basket with the release of the next iteration of Unity. If these issues aren't resolved with touch support, how do they expect Ubuntu to succeed on a touch device?

It's not like I'm talking advanced features. In fact, the advanced features -- three and four finger touch -- mostly work. It's the rudimentary features that need serious attention.

Most everyone that follows me knows my stance on Linux. I love it. I've been using it since the late 1990s. Linux is my work horse. The thing is, I really want to be able to begin the process of migrating over to touch screens, but that won't happen until Linux can actually handle the basics out of the box.

As for the System76 Sable Touch -- even with the state of touch as it is, this machine is sweet and, as soon as Linux gets touch right, I'll have one. Now that I've had the opportunity to get my hands (and fingertips) dirty with this device, I know that the touch screen is where all PC interfaces are heading (and should be heading). The Sable Touch makes using Linux on a touch screen device a thing of beauty.

Touch brings a level of versatility to PC input that the mouse and keyboard alone can't offer. To that end, the developers of Linux need to kick it up a notch and ensure the fundamental actions work out of the box -- or touch input on Linux will fail to ever coalesce into something the masses can work with.

Can the Linux platform work out the kinks and become an ideal ecosystem for touch screens -- or do you think the challenges with Xorg, Mir, and Wayland are too great to overcome? Share your thoughts in the discussion thread below.