External Trackpad recognized as Mouse instead of Touchpad

I have just purchased an external trackpad/touchpad and successfully paired it via Bluetooth. The problem is that there's no pointer; it only has scrolling and dragging functionalities. I have also paired it with an Android smartphone, and there the pointer is present. I ran sudo libinput list-devices and in the Capabilities section, it shows only "touch" and "pointer" is missing. In the bluetooth setting, the touchpad is listed as “mouse”, that's why it doesn't have the pointer capabilities. Maybe I need to modify the udev rules?
48 Replies
manzilla
manzillaOP4w ago
Device: Function Trackpad Touchpad Kernel: /dev/input/event258 Id: bluetooth:045e:0040 Group: 11 Seat: seat0, default Size: 250x178mm Capabilities: touch Tap-to-click: n/a Tap-and-drag: n/a Tap button map: n/a Tap drag lock: n/a Left-handed: n/a Nat.scrolling: n/a Middle emulation: n/a Calibration: identity matrix Scroll methods: none Scroll button: n/a Scroll button lock: n/a Click methods: none Clickfinger button map: n/a Disable-w-typing: n/a Disable-w-trackpointing: n/a Accel profiles: n/a Rotation: 0.0 Area rectangle: n/a Update1: Thanks to @皇家海星 and based on the documentation in here https://wayland.freedesktop.org/libinput/doc/latest/device-quirks.html , I have attempted to write the quarks file for my device (placed in /etc/libinput/local-overrides.quirks). This is its content: [My Bluetooth Touchpad Keyboard] MatchName=Function Trackpad Keyboard MatchUSBId=045e:0040 AttrTapping=1 AttrNaturalScrolling=1 AttrClickMethod=clickfinger AttrAccelProfile=flat AttrAccelSpeed=0.0 AttrPointerAcceleration=1.0 AttrPointerThreshold=1.0 AttrScrollMethod=twofinger AttrScrollButton=2 AttrMiddleEmulation=1 AttrCalibrationMatrix=1 0 0 0 1 0 0 0 1 AttrArea=0 0 250 178 [My Bluetooth Touchpad Touchpad] MatchName=Function Trackpad Touchpad MatchUSBId=045e:0040 AttrTapping=1 AttrNaturalScrolling=1 AttrClickMethod=clickfinger AttrAccelProfile=flat AttrAccelSpeed=0.0 AttrPointerAcceleration=1.0 AttrPointerThreshold=1.0 AttrScrollMethod=twofinger AttrScrollButton=2 AttrMiddleEmulation=1 AttrCalibrationMatrix=1 0 0 0 1 0 0 0 1 AttrArea=0 0 250 178 Update2: I have also created a 40-libinput.conf file and placed in /etc/X11/xorg.conf.d This is its content: Section "InputClass" Identifier "libinput keyboard catchall" MatchIsKeyboard "on" MatchUSBId "045e:0040" Driver "libinput" Option "Tapping" "on" Option "NaturalScrolling" "true" Option "ClickMethod" "clickfinger" Option "AccelProfile" "flat" Option "AccelSpeed" "0.0" Option "PointerAcceleration" "1.0" Option "PointerThreshold" "1.0" Option "ScrollMethod" "twofinger" Option "ScrollButton" "2" Option "MiddleEmulation" "on" Option "CalibrationMatrix" "1 0 0 0 1 0 0 0 1" Option "Area" "0 0 250 178" EndSection Section "InputClass" Identifier "libinput touchpad catchall" MatchIsTouchpad "on" MatchUSBId "045e:0040" Driver "libinput" Option "Tapping" "on" Option "NaturalScrolling" "true" Option "ClickMethod" "clickfinger" Option "AccelProfile" "flat" Option "AccelSpeed" "0.0" Option "PointerAcceleration" "1.0" Option "PointerThreshold" "1.0" Option "ScrollMethod" "twofinger" Option "ScrollButton" "2" Option "MiddleEmulation" "on" Option "CalibrationMatrix" "1 0 0 0 1 0 0 0 1" Option "Area" "0 0 250 178" EndSection Still it doesn't work.
皇家海星
皇家海星4w ago
x11 won't work because we aren't using x11 as for the quirk, I'm afraid I can't help you as I'm not familiar with this either
manzilla
manzillaOP4w ago
Ok, nevermind, thanks anyway 👍🏻
皇家海星
皇家海星4w ago
best of luck though, you may want to look elsewhere (maybe something is up with bluetooth, or try a wired connection if possible) before messing around with quirks since from experience libinput usually works
manzilla
manzillaOP4w ago
Yeah, the trackpad has 3 ways of connection: bluetooth, 2.4ghz dongle and wired, but in linux (I have tried both on Bazzite and in Arch), only BT is recognized) while in Android and Windows there's no restrictions.
antheas
antheas4w ago
Sounds like this needs a kernel patch depending on what driver loads
manzilla
manzillaOP4w ago
It would be great! Let me know if I can provide some device specifics
manzilla
manzillaOP4w ago
I have found a thread on reddit (https://chk.me/l4y5Wd1) that should point in the right direction and it involves in adding (as I was guessing) a udev rule, but still I cannot get it to work. I think I'm almost there, but I'm missing something. This is the udev rule they suggest: KERNEL=="0003:05AC:0265.*", \ PROGRAM="/bin/sh -c 'echo -n %k > /sys/bus/hid/drivers/magicmouse/unbind;\ echo -n %k > /sys/bus/hid/drivers/hid-multitouch/bind'".
Reddit
From the Fedora community on Reddit: A better way of getting Bosto ...
Explore this post and more from the Fedora community
manzilla
manzillaOP4w ago
Update: I have added the udev rule to an Arch installation, and there it is working flawlessly. For some reason, in Bazzite the rule isn't applied. I placed the file with the udev rule in /etc/udev/rules.d/ I have also noticed that there's another location for various udev rules in /usr/lib/udev/rules.d , but it's read only. @antheas @皇家海星 , please, any suggestion?
antheas
antheas4w ago
This means you need a kernel patch Because the mouse driver incorrectly does not report it under group generic So multi touch does not bind
manzilla
manzillaOP4w ago
So, I need to patch it myself for that to work? If that's the case, I don't even know where to start
antheas
antheas4w ago
I will try to in a few days If I don't ping me
manzilla
manzillaOP3w ago
Thank you, much appreciated! 👍🏻 Hi there, did you have any chance to take a look into it?
antheas
antheas3w ago
not yet but im on the computer so might as well 0003:05AC:0265
manzilla
manzillaOP3w ago
Great, thanks!
antheas
antheas3w ago
so what does the magicmouse driver do? display battery? what if you blacklist it? according to the driver using only magicmouse it should work great
manzilla
manzillaOP3w ago
I'm quoting the guy who nade the udev rule: "But this damn touchpad has the USB PID/VID of Apple's Magic Trackpad 2. So, when I plug it in, the kernel assigns hid-magicmouse to it automatically. How do I get it to use my test driver? Apparently, by using udev rules! sysfs exposes driver bind and unbind functions for devices, and this udev rule takes advantage of that by 1) unbinding device from default driver and 2) binding to target driver whenever it is triggered with a specific device name. This means that you can override drivers with this single line of code!"
antheas
antheas3w ago
so its not a magic trackpad 2?
manzilla
manzillaOP3w ago
I guess, the Apple's Magic Trackpad 2 has the hid-magicmouse drivers, I don't know...
antheas
antheas3w ago
whats the device? a magic trackpad 2 knockoff?
manzilla
manzillaOP3w ago
yeah, a chinese one
antheas
antheas3w ago
rip
manzilla
manzillaOP3w ago
No description
No description
No description
antheas
antheas3w ago
i dont know how to fix this via kernel best thing to do is a udev rule for now...
manzilla
manzillaOP3w ago
problem is that the udev rule doesn't work in Bazzite ...it works in Arch and other distros
antheas
antheas3w ago
udev rules work on bazzite
manzilla
manzillaOP3w ago
I placed the rule in the udev rule in /etc/udev/rules.d/
antheas
antheas3w ago
it should work, i made udev rules many times perhaps you need to name the file with e.g. 80 so that it is pushed up but the easiest thing you can do is blacklist magicmouse /etc/modprobe.d
manzilla
manzillaOP3w ago
you mean changin from 99 to 80?
antheas
antheas3w ago
oh its already 99
manzilla
manzillaOP3w ago
yep I can try by blacklisting the magicmouse: just put in the file "blacklist magicmouse"?
antheas
antheas3w ago
yes
manzilla
manzillaOP3w ago
Just tried to blacklist the magicmouse and still it doesn't work (I have tried both with and without the udev rule). Could it be that the udev rule doesn't have enough permissions to execute the bind/unbind operation?
antheas
antheas3w ago
i was looking into the kernel and its kind of hardcoded to load the special driver
manzilla
manzillaOP3w ago
because of the immutable nature of Bazzite?
antheas
antheas3w ago
no, nothing is specific to bazzite its weird it works on other distros, udev rules work fine in my experience
manzilla
manzillaOP3w ago
yeah, strange Does it looks correct to you?: KERNEL=="0003:05AC:0265.*", \ PROGRAM="/bin/sh -c 'echo -n %k > /sys/bus/hid/drivers/magicmouse/unbind;\ echo -n %k > /sys/bus/hid/drivers/hid-multitouch/bind'"
antheas
antheas3w ago
yeah, depending on what %k is
manzilla
manzillaOP3w ago
I don't have idea, sorry. I will try to seek help also on the Bazzite github, what do you think?
antheas
antheas3w ago
you wont get more help there its a very weird issue thats hard to fix its easier for everyone to get a better touchpad or figure out a hack that semi works
manzilla
manzillaOP3w ago
damn, ok Apple trackpad works fine in Bazzite, right? ...but I won't give up on this one
manzilla
manzillaOP3w ago
I'm using Gnome Deck, and I noticed that something appears in the taskbar for brief moment when I connect this trackpad (second icon from the left).
No description
antheas
antheas3w ago
it works the same as other distros its supported by the magic mouse driver that is causing you grief
manzilla
manzillaOP3w ago
Ok, got it, thanks. And thank you for helping me and if something new comes up on your mind, please don't hesitate to share it! ...I have a couple of old installation of Bazzite on microsd cards, tomorrow I want to try also there ...just to have more confirmation I just did more attempts and I think blacklisting magicmouse isn't working, If I run "sudo modprobe -r hid-magicmouse" I get "modprobe: FATAL: Module hid_magicmouse is builtin."
antheas
antheas3w ago
unfortunate
manzilla
manzillaOP3w ago
So, is that the main reason?
antheas
antheas3w ago
if its compiled as =y you cant remove it
manzilla
manzillaOP3w ago
😭

Did you find this page helpful?