2014-06-08

Running Linux on the Sony Vaio Flip 15A

The Vaio Flip 15A is a sleek and powerful laptop an attractive option for artists due to its large, high-resolution, stylus-enabled screen. I have installed Kubuntu 13.10 and 14.04 on this machine and will describe here what worked immediately, what required some effort to fix, and what still does not work.

Suggestions welcome!

What works:  Basically all hardware! 

  • Touch and stylus both work immediately, including pressure sensitivity  (try gimp, onboard, xournal)
  • Wireless, ethernet networking
  • Screen brightness controls and backlit keyboard
  • Both nVidia and Intel graphics (using nvidia-prime package)
  • 4-core I7 processor
  • Sound works fine, but the mixer controls are confusing (see below)

What can be fixed:

Difficult to use stylus when touch is enabled

Add a script to disable touch when the stylus is in proximity:
 
#!/usr/bin/python
import time, subprocess, os

def stylusProximity():
    """Return True if the stylus is in proximity"""
    state = subprocess.check_output(['/usr/bin/xinput', 'query-state', 'N-trig DuoSense Pen'])
    line = state.split('\n')[7]
    return line.endswith('=In')
  
def touchEnabled():
    """Return True if touch is enabled"""
    state = subprocess.check_output('xinput list-props "N-trig DuoSense" | grep 155', shell=True)
    return state.strip().endswith('1')

def disableTouch():
    subprocess.check_output(['/usr/bin/xinput', 'disable', 'N-trig DuoSense'])

def enableTouch():
    subprocess.check_output(['/usr/bin/xinput', 'enable', 'N-trig DuoSense'])

lastProxOut = None
lastProx = None

while True:
    prox = stylusProximity()
    if prox != lastProx:
        if prox:
            disableTouch()
            print "disable"
        else:
            lastProxOut = time.time()
    lastProx = prox
  
    if prox is False and lastProxOut is not None and time.time() > lastProxOut + 2.:
        lastProxOut = None
        enableTouch()
        print "enable"
    time.sleep(0.1)
   

Accidental touchpad clicks while typing

The touchpad is large, which means many accidental clicks while typing.
If using KDE:
System Settings -> Input Devices -> Touchpad -> Enable/Disable Touchpad -> Disable touchpad when typing (I use timeout = 2000 ms)

For other environments, you can use syndaemon to correct this:


syndaemon -R -t -k -i 2 &

However, I have found that syndaemon randomly stops working at times.




Fonts are too small by default

On KDE:
System Settings -> Application Appearance -> Fonts -> Force fonts DPI: 150

See: askubuntu.com/questions/197828/how-to-find-and-change-the-screen-dpi


Issues:

Dual boot is broken

I repartitioned the disk when installing Kubuntu, but Windows 8 fails to boot with the message"windows failed to start" 0xc000000e

Touch does not work in KDE

Although touch works via the "N-trig DuoSense" input device, KDE Plasma does not register touches as clicks. See: https://www.kubuntuforums.net/showthread.php?65296-Getting-N-trig-touch-screen-to-work-with-plasma-vaio-flip-15A&highlight=vaio+flip

Random display freezing

About every two hours, the display will completely freeze including the cursor. To fix, just do a quick VT switch each time it freezes (press ctrl-alt-f1 followed by ctrl-alt-f7).

If you have no sound

Check your mixer controls. You may need to unmute several channels simultaneously: Master, PCM, Headphone, and Speaker.