February 1, 2019

495 words 3 mins read

Reuse Old MacBook Air (late 2010) as a Linux Machine (Fixing Touchpad)

Reuse Old MacBook Air (late 2010) as a Linux Machine (Fixing Touchpad)

I tried reusing my old MacBook Air late 2010 (MacBookAir3,1) as it got quite slow running on MacOS X. The distribution I chose is Ubuntu Studio 18.10. Although installation of OS is easy, some points that have to be fixed exist and are covered in this article.

Default touchpad is far from good usability

Default touchpad works, but is never useful. There is limited flexibility in setting. For example, multi-touch cannot be enabled. This should be resolved.

Installing mtrack

mtrack could be installed to improve usability. Although the touch pad gets no better than MacOS, it gets still better than default.

Installation procedure is as follows.

$ git clone https://github.com/p2rkw/xf86-input-mtrack.git
$ cd xf86-input-mtrack
$ ./configure --with-xorg-module-dir=/usr/lib/xorg/modules
$ make
$ sudo make install

Then, put a setting file at the following location.

$ sudo vi /usr/share/X11/xorg.conf.d/50-mtrack.conf 

The setting I have made is as follows:

Section "InputClass"
        MatchIsTouchpad "on"
        Identifier      "Touchpads"
        MatchDevicePath "/dev/input/event*"
        Driver          "mtrack"
        # Tweak cursor movement speed with this
        Option          "Sensitivity" "0.10"
        # Pressure at which a finger is detected as a touch
        Option          "FingerHigh" "10"
        # Pressure at which a finger is detected as a release
        Option          "FingerLow" "10"
        # I often use thumb to press down the physical button, so let's not ignore it
        Option          "IgnoreThumb" "true"
        Option          "ThumbRatio" "70"
        Option          "ThumbSize" "25"
        # Ignore palm, with palm takes up to 30% of your touchpad
        Option          "IgnorePalm" "true"
        Option          "PalmSize" "30"
        # Trigger mouse button when tap: 1 finger - left click, 2 finger - right click, 3 - middle click
        Option          "TapButton1" "0"
        Option          "TapButton2" "0"
        Option          "TapButton3" "0"
        Option          "TapButton4" "0"
        Option          "ClickTime" "25"
        Option          "EdgeBottomSize" "25"
        # Disable tap-to-drag, we're using three finger drag instead
        Option          "TapDragEnable" "false"
        # While touching the touchpad with fingers, press the touchpad physical click button
        Option          "ClickFinger0" "1"
        Option          "ClickFinger1" "1"
        Option          "ClickFinger2" "3"
        Option          "ClickFinger3" "2"
        Option          "ButtonMoveEmulate" "false"
        Option          "ButtonIntegrated" "true"
        # The momentum after scroll fingers released
        Option          "ScrollCoastDuration" "300"
        Option          "ScrollCoastEnableSpeed" ".1"
        # Natural scrolling with two fingers
        Option          "ScrollSmooth" "true"
        Option          "ScrollUpButton" "5"
        Option          "ScrollDownButton" "4"
        Option          "ScrollLeftButton" "7"
        Option          "ScrollRightButton" "6"
        # Tweak scroll sensitivity with ScrollDistance, don't touch ScrollSensitivity
        Option          "ScrollDistance" "150"
        Option          "ScrollClickTime" "10"
        # Three finger drag
        Option          "SwipeDistance" "1"
        Option          "SwipeLeftButton" "1"
        Option          "SwipeRightButton" "1"
        Option          "SwipeUpButton" "1"
        Option          "SwipeDownButton" "1"
        Option          "SwipeClickTime" "0"
        Option          "SwipeSensitivity" "1000"
        # Four finger swipe, 8 & 9 are for browsers navigating back and forth respectively
        Option          "Swipe4LeftButton" "9"
        Option          "Swipe4RightButton" "8"
        # Mouse button >= 10 are not used by Xorg, so we'll map them with xbindkeys and xdotool later
        Option          "Swipe4UpButton" "11"
        Option          "Swipe4DownButton" "10"
        # Mouse buttons triggered by 2-finger pinching gesture
        Option          "ScaleDistance" "300"
        Option          "ScaleUpButton" "12"
        Option          "ScaleDownButton" "13"
        # Mouse buttons trigger by 2-finger rotating gesture, disabled to enhance the pinch gesture
        Option          "RotateLeftButton" "0"
        Option          "RotateRightButton" "0"
EndSection

The setting will be reflected after log-out. Fine adjustment of cursor speed can be done at Settings Manager > Mouse and Touchpad.