Using the fingerprint scanner as middleclick mouse button

On Android, it is possible to reconfigure the fingerprint sensor to some more useful functions, for example with Fingerprint Gestures

Is this possible on Ubuntu too?

(At the moment, I use Ubuntu 18.04 on a Lenovo yoga 720-15IKB, but I would be happy to find a solution for a future Ubuntu version also)

The Fingerprint module doesn't work on Ubuntu 18.04 right now. I find no device using fprint_demo.

The Fingerprint sensor is called "Synaptics WBDI". The only device using lsusb is:

$ lsusb |grep Synap
Bus 001 Device 004: ID 06cb:0081 Synaptics, Inc. 

But that might also be the Touchpad.

There are some hits for Synaptic checking hwinfo

$ hwinfo
  ...
  P: /devices/pci0000:00/0000:00:14.0/usb1/1-6
  N: bus/usb/001/004
  E: BUSNUM=001
  E: DEVNAME=/dev/bus/usb/001/004
  E: DEVNUM=004
  E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6
  E: DEVTYPE=usb_device
  E: DRIVER=usb
  E: ID_BUS=usb
  E: ID_MODEL=0081
  E: ID_MODEL_ENC=0081
  E: ID_MODEL_ID=0081
  E: ID_REVISION=0164
  E: ID_SERIAL=06cb_0081_9413a800b66b
  E: ID_SERIAL_SHORT=9413a800b66b
  E: ID_USB_INTERFACES=:ff0000:
  E: ID_VENDOR=06cb
  E: ID_VENDOR_ENC=06cb
  E: ID_VENDOR_FROM_DATABASE=Synaptics, Inc.
  E: ID_VENDOR_ID=06cb
  E: MAJOR=189
  E: MINOR=3
  E: PRODUCT=6cb/81/164
  E: SUBSYSTEM=usb
  E: TYPE=255/16/255
  E: USEC_INITIALIZED=2015135

  P: /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0
  E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0
  E: DEVTYPE=usb_interface
  E: ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class
  E: ID_VENDOR_FROM_DATABASE=Synaptics, Inc.
  E: INTERFACE=255/0/0
  E: MODALIAS=usb:v06CBp0081d0164dcFFdsc10dpFFicFFisc00ip00in00
  E: PRODUCT=6cb/81/164
  E: SUBSYSTEM=usb
  E: TYPE=255/16/255
  E: USEC_INITIALIZED=4293294

...

50: USB 00.0: 0000 Unclassified device
  [Created at usb.122]
  Unique ID: MtLc.g9F1G8rI369
  Parent ID: k4bc.2DFUsyrieMD
  SysFS ID: /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0
  SysFS BusID: 1-6:1.0
  Hardware Class: unknown
  Model: "Synaptics Unclassified device"
  Hotplug: USB
  Vendor: usb 0x06cb "Synaptics, Inc."
  Device: usb 0x0081 
  Revision: "1.64"
  Serial ID: "9413a800b66b"
  Speed: 12 Mbps
  Module Alias: "usb:v06CBp0081d0164dcFFdsc10dpFFicFFisc00ip00in00"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #52 (Hub)

In Windows, it shows up as:

Synaptics WBDI
USB\VID_06CB&PID_0081\9413A800B66B
USB\VID_06CB&PID_0081&REV_0164
Bios name: \_SB.PCI0.XHC.RHUB.HS06
\Device\USBPDO-4
PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(6)
ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS06)
oem3.inf:542d598d9aceb7d5:Biometric_Install.NT:5.5.2603.1050:USB\VID_06CB&PID_0081
Driverkey: {53d29ef7-377c-4d14-864b-eb3a85769359}\0000

Maybe this QA will give a hint, how to address the Biometric Device.


Solution 1:

What Google did is a hack: a fingerprint reader can be considered a tiny touchpad and fingerprint gestures can be generated by the Android Kernel to then let applications act upon it.

However in the Linux Kernel, no one is working on that so if you'd want something like this it would mean:

  • Becoming a kernel developer
  • Developing this yourself so it works for you
  • Getting blasted by Linus Torvalds for breaking something else ;-)
  • Re-doing it properly
  • Nirvana!

Sorry! :-(