LinkedIn Sourceforge

Vincent's Blog

Pleasure in the job puts perfection in the work (Aristote)

Better Touchpad Management with Ghost BSD on Lenovo T14s

Posted on 2025-05-29 19:16:00 from Vincent in FreeBSD

After installing GhostBSD a few months ago, I decided to investigate why, in some cases, my mouse mouvement acts like a drag/drop instead of a simple move. This is really annoying when you have to click on webbrowsers's tabs. Instead of moving the mouse, it moves the webbrowser's tab in another window.


Introduction

I've installed GhostBSD a few months ago and it worked immediately on my Lenovo T14s. Amazed by ZFS, I decided that this would become my daily machine.
Over tilme, GhostBSD had prompted me to perform updates. All these upgrade processes have been smooth and transparent.

However, mouse gestures via touchpad were unusual and despite modifying parameters proposed by the graphical config panel, I was not able to solve this problem.

Synaptics: Touchpad driver

After investigation on internet, I've discovered that the libinput driver is a newer and better driver for touchpads than synaptics.

Moreover, having both active could generate issues like the drag and drop problem.

Here after is an extract of my xorg.log file showing that we have both libinput and synaptics.

~> grep -i driver /var/log/Xorg.0.log

[    13.447]    X.Org Video Driver: 25.2
[    13.447]    X.Org XInput driver : 24.4
[    13.504] (==) Matched ati as autoconfigured driver 0
[    13.504] (==) Matched modesetting as autoconfigured driver 1
[    13.504] (==) Matched scfb as autoconfigured driver 2
[    13.504] (==) Matched vesa as autoconfigured driver 3
[    13.504] (==) Assigned the driver to the xf86ConfigLayout
[    13.505] (II) Loading /usr/local/lib/xorg/modules/drivers/modesetting_drv.so
[    13.507]    Module class: X.Org Video Driver
[    13.507]    ABI class: X.Org Video Driver, version 25.2
[    13.507] (II) Loading /usr/local/lib/xorg/modules/drivers/scfb_drv.so
[    13.507]    ABI class: X.Org Video Driver, version 25.2
[    13.507] (II) Loading /usr/local/lib/xorg/modules/drivers/vesa_drv.so
[    13.507]    Module class: X.Org Video Driver
[    13.507]    ABI class: X.Org Video Driver, version 25.2
[    13.507] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[    13.507] (II) scfb: driver for wsdisplay framebuffer: scfb
[    13.507] (II) VESA: driver for VESA chipsets: vesa
[    13.507] (--) Using syscons driver with X support (version 2.0)
[    13.778] (II) modeset(0): [DRI2]   DRI driver: radeonsi
[    13.778] (II) modeset(0): [DRI2]   VDPAU driver: radeonsi
[    13.817]    Module class: X.Org XInput Driver
[    13.817]    ABI class: X.Org XInput driver, version 24.4
[    13.817] (II) Using input driver 'libinput' for 'System keyboard multiplexer'
[    13.843] (II) Using input driver 'libinput' for 'System mouse'
[    13.845] (II) Using input driver 'libinput' for 'Power Button'
[    13.848] (II) No input driver specified, ignoring this device.
[    13.848] (II) Using input driver 'libinput' for 'Sleep Button'
[    13.850] (II) Using input driver 'libinput' for 'AT keyboard'
[    13.855] (II) Using input driver 'libinput' for 'Generic PS/2 mouse'
[    13.858] (II) Using input driver 'libinput' for 'ELAN901C:00 04F3:2EA3 TouchScreen'
[    13.862]    Module class: X.Org XInput Driver
[    13.862]    ABI class: X.Org XInput driver, version 24.4
[    13.862] (II) Using input driver 'synaptics' for 'SYNA8018:00 06CB:CE67 TouchPad'
[    13.864] (II) Using input driver 'libinput' for 'SYNA8018:00 06CB:CE67 Mouse'

Solution

We need to force Xorg to use one of the two drivers. I decided to use libinput.

To do this, create a specific config file at /usr/local/etc/X11/xorg.conf.d/40-libinput.conf with the following content:

Section "InputClass"
    Identifier "Touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "Tapping" "true"
    Option "TappingDrag" "false"
    Option "AccelSpeed" "-0.4"
EndSection

After, restart your Xorg or reboot the laptop. This should resolve the problem.

The Xorg.log file looks now like this:

~> grep -i driver /var/log/Xorg.0.log

[     8.316]    X.Org Video Driver: 25.2
[     8.316]    X.Org XInput driver : 24.4
[     8.368] (==) Matched ati as autoconfigured driver 0
[     8.368] (==) Matched modesetting as autoconfigured driver 1
[     8.368] (==) Matched scfb as autoconfigured driver 2
[     8.368] (==) Matched vesa as autoconfigured driver 3
[     8.368] (==) Assigned the driver to the xf86ConfigLayout
[     8.369] (II) Loading /usr/local/lib/xorg/modules/drivers/modesetting_drv.so
[     8.371]    Module class: X.Org Video Driver
[     8.371]    ABI class: X.Org Video Driver, version 25.2
[     8.371] (II) Loading /usr/local/lib/xorg/modules/drivers/scfb_drv.so
[     8.372]    ABI class: X.Org Video Driver, version 25.2
[     8.372] (II) Loading /usr/local/lib/xorg/modules/drivers/vesa_drv.so
[     8.372]    Module class: X.Org Video Driver
[     8.372]    ABI class: X.Org Video Driver, version 25.2
[     8.372] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[     8.372] (II) scfb: driver for wsdisplay framebuffer: scfb
[     8.372] (II) VESA: driver for VESA chipsets: vesa
[     8.372] (--) Using syscons driver with X support (version 2.0)
[     8.674] (II) modeset(0): [DRI2]   DRI driver: radeonsi
[     8.674] (II) modeset(0): [DRI2]   VDPAU driver: radeonsi
[     8.714]    Module class: X.Org XInput Driver
[     8.714]    ABI class: X.Org XInput driver, version 24.4
[     8.714] (II) Using input driver 'libinput' for 'System keyboard multiplexer'
[     8.736] (II) Using input driver 'libinput' for 'System mouse'
[     8.739] (II) Using input driver 'libinput' for 'Power Button'
[     8.742] (II) No input driver specified, ignoring this device.
[     8.742] (II) Using input driver 'libinput' for 'Sleep Button'
[     8.744] (II) Using input driver 'libinput' for 'AT keyboard'
[     8.749] (II) Using input driver 'libinput' for 'Generic PS/2 mouse'
[     8.752] (II) Using input driver 'libinput' for 'ELAN901C:00 04F3:2EA3 TouchScreen'
[     8.756] (II) Using input driver 'libinput' for 'SYNA8018:00 06CB:CE67 TouchPad'
[     8.771] (II) Using input driver 'libinput' for 'SYNA8018:00 06CB:CE67 Mouse'

Conclusion

I don't know if this is a universal solution, but it solved the problem in my specific case.
So, do you own research before applying it to your machine.
²
Hope it helps ;)



0, 0
displayed: 813



What is the second letter of the word Python?