Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Touchpad Settings (Request) #405

Closed
intialonso opened this issue May 10, 2014 · 72 comments
Closed

Touchpad Settings (Request) #405

intialonso opened this issue May 10, 2014 · 72 comments
Assignees

Comments

@intialonso
Copy link

This is more a request than a bug.

In the mouse settings theres no options for touchpads (vertical and horizontal scroll, tap, etc). It will be great if the option could be included in the settings app.

@jleclanche
Copy link
Member

Accepted

@fedelibre
Copy link

+1, this would be very nice to have

@PCMan
Copy link
Member

PCMan commented Jul 13, 2015

Does anyone know how to do that?

@fedelibre
Copy link

perhaps you can get some ispiration from gnome-control-center

@Vladimir-csp
Copy link

A humble request: while taking ideas from gnome stuff, try to avoid oversimplification. Some time ago I've tried to convince them to make decent mouse speed and acceleration settings. In the end they changed two non-working sliders into one which does magic with no way to tell where speed setting ends and acceleration setting begins.

@jleclanche
Copy link
Member

@Vladimir-csp When making UX decisions I try to make the interface as simple as possible without removing actual functionality.

@Atalanttore
Copy link
Contributor

Can you please turn off tapping by default? It's annoying and unnecessary.

@Vladimir-csp
Copy link

Touchpad settings are usually just xinput properties of the device. No need for any special treatment. IMHO this should be merged into #337

@RalfJung
Copy link
Contributor

Is there any other configuration tool one could use? I tried the one from GNOME, but enabling "tap to click" there does nothing. I tried the one from KDE, but so far I was unable to even load it:

$ kcmshell5 kcm_touchpad
"kcm_touchpad" should not be loaded.
Could not find module 'kcm_touchpad'. See kcmshell5 --list for the full list of modules.

Not being able to tap to click is a pretty severe regression, compared to the DEs I used previously.

EDIT: I solved this for now by editing the Xorg configuration. Better than nothing.

@palinek
Copy link
Contributor

palinek commented Mar 21, 2016

There is a synclient cmd line tool for the synaptics. Do we want to make a GUI based on that? (like it is with setxkbmap in lxqt-config-input)

@Vladimir-csp
Copy link

There is a synclient cmd line tool for the synaptics. Do we want to make a GUI based on that? (like it is with setxkbmap in lxqt-config-input)

IMHO, not before proper xinput frontend/daemon (#337).

...some of touchpad properties are exposed via xinput anyway.

@pmattern
Copy link
Contributor

Tools synclient as well as syndaemon are geared towards xf86-input-synaptics only. They don't work with any other driver like e. g. xf86-input-libinput so we shouldn't rely on them.

AFAIK the common way to tweak input device settings in realtime are Device Properties so we'd better use these as backend.
Don't know whether this has to be done via binary xinput or whether there's some library or so to access them. Also, I'm not sure which Device Properties exactly should be supported as these are completely different depending on the driver in use. libinput will probably be used under Wayland as well, synaptics is providing a lot more features for the time being, supporting both would probably mean much more work.

Also, I don't know how that whole thing will be implemented in Wayland, in particular whether the concept of Device Properties will persist.
If Wayland is relying on different concepts I'm not sure whether effort should be put into the current X Window System concepts, besides a GUI to configure touchpads is for sure a feature missing badly.

@Vladimir-csp
Copy link

Breaking it apart: there is a need for input device configuration tool. This tool would work with a range of properties, grouped in profiles which would be applied to devices.

It would be logical to generalize properties and create a list of known properties with (translatable) descriptions.

The config tool would take a list of available properties, compare it to a list of known properties, then show known ones on the 'main' tab, all other on 'advanced' tab.

Where would it take all these properties? That depends on backends. Wayland is maturing, but it is still not mainstream, nor has stable interfaces. So xinput is the thing to start with (via binary or library, does not matter).

The plus side of this approach is that it would provide GUI access to any property backend can give. In case of xinput it is very impressive list, sufficient to handle a touchpad:

$ xinput list-props 14
Device 'AlpsPS/2 ALPS GlidePoint':
    Device Enabled (137):   1
    Coordinate Transformation Matrix (139): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (270): -1
    Device Accel Constant Deceleration (271):   2.500000
    Device Accel Adaptive Deceleration (272):   1.000000
    Device Accel Velocity Scaling (273):    12.500000
    Synaptics Edges (294):  300, 1700, 210, 1190
    Synaptics Finger (295): 12, 15, 0
    Synaptics Tap Time (296):   180
    Synaptics Tap Move (297):   107
    Synaptics Tap Durations (298):  180, 100, 100
    Synaptics ClickPad (299):   0
    Synaptics Middle Button Timeout (300):  75
    Synaptics Two-Finger Pressure (301):    141
    Synaptics Two-Finger Width (302):   7
    Synaptics Scrolling Distance (303): 48, 48
    Synaptics Edge Scrolling (304): 0, 0, 0
    Synaptics Two-Finger Scrolling (305):   1, 1
    Synaptics Move Speed (306): 1.000000, 1.750000, 0.081934, 0.000000
    Synaptics Off (307):    0
    Synaptics Locked Drags (308):   0
    Synaptics Locked Drags Timeout (309):   5000
    Synaptics Tap Action (310): 0, 0, 0, 0, 1, 2, 3
    Synaptics Click Action (311):   1, 1, 1
    Synaptics Circular Scrolling (312): 0
    Synaptics Circular Scrolling Distance (313):    0.100000
    Synaptics Circular Scrolling Trigger (314): 0
    Synaptics Circular Pad (315):   0
    Synaptics Palm Detection (316): 0
    Synaptics Palm Dimensions (317):    10, 100
    Synaptics Coasting Speed (318): 20.000000, 50.000000
    Synaptics Pressure Motion (319):    15, 80
    Synaptics Pressure Motion Factor (320): 1.000000, 1.000000
    Synaptics Grab Event Device (321):  0
    Synaptics Gestures (322):   1
    Synaptics Capabilities (323):   1, 1, 1, 1, 1, 1, 0
    Synaptics Pad Resolution (324): 32, 25
    Synaptics Area (325):   0, 0, 0, 0
    Synaptics Noise Cancellation (326): 12, 12
    Device Product ID (260):    2, 8
    Device Node (261):  "/dev/input/event1"

Everything I wrote here is just a clarification of the concept already described in #337

@billwx
Copy link

billwx commented May 9, 2016

Not sure if this is helpful but xfce recognizes both my laptop and usb mice. I always disable the former to avoid accidentally moving my cursor about when typing. With lxde/qt i have to be much more careful about not touching the trackpad. Such an option would be a great addition to a great desktop. Thanks for your consideration!

@tsujan
Copy link
Member

tsujan commented May 9, 2016

With lxde/qt i have to be much more careful about not touching the trackpad

Until that option is added, if your touchpad works with Synaptics driver, you could add this to your startup:

#!/bin/bash
synclient TouchpadOff=1
exit

or to keyboard shortcuts.

@josephg5
Copy link

josephg5 commented Aug 6, 2016

with xinput

$ xinput --list
$ xinput --list-props "SynPS/2 Synaptics TouchPad"

$ xinput --set-prop "SynPS/2 Synaptics TouchPad" "libinput Tapping Enabled" 1

@billwx
Copy link

billwx commented Aug 19, 2016

On my Dell Latitude e5420 running the latest (arch-based) Antergos and LxQt, xinput says unable to find SynPS/2 Synaptics TouchPad. ANy further advice? Is it possible my machine is using a different touchpad? Many thanks!


From: Joseph George [email protected]
Sent: Saturday, August 6, 2016 4:30 PM
To: lxde/lxqt
Cc: billwx; Comment
Subject: Re: [lxde/lxqt] Touchpad Settings (Request) (#92)

with xinput

$ xinput --list
$ xinput --list-props "SynPS/2 Synaptics TouchPad"

$ xinput --set-prop "SynPS/2 Synaptics TouchPad" "libinput Tapping Enabled" 1

You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/lxde/lxqt/issues/92#issuecomment-238049764, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ASXqHGUcH_hUqPVRXRhS-sUyGkgFueHVks5qdPzjgaJpZM4B5ysj.

@stefonarch
Copy link
Member

Sometimes non-synaptis touchpads are recognised only as mouse, you can see the model with
$ xinput list

Better you search on the net specific solutions for your laptop model, it's not related in any way to LQXt.

@billwx
Copy link

billwx commented Aug 22, 2016

I respectfully disagree. Certainly the way to disable a trackpad is related to one's operating system?

However, thank you for the tip on "xinput list". Using that command,and previous instructions from Joseph George, i disabled the trackpad on my Dell Latitude e5420 by...

xinput --set-prop "AlpsPS/2 ALPS GlidePoint" "Device Enabled" 0


From: Stefano Binde [email protected]
Sent: Friday, August 19, 2016 9:58 AM
To: lxde/lxqt
Cc: billwx; Comment
Subject: Re: [lxde/lxqt] Touchpad Settings (Request) (#92)

Sometimes non-synaptis touchpads are recognised only as mouse, you can see the model with
$ xinput list

Better you search on the net specific solutions for your laptop model, it's not related in any way to LQXt.

You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/lxde/lxqt/issues/92#issuecomment-241041934, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ASXqHA1jyjb_4kW-VZ4rOHuVw5iQjUB4ks5qhcSpgaJpZM4B5ysj.

@stefonarch
Copy link
Member

stefonarch commented Aug 22, 2016

I respectfully disagree. Certainly the way to disable a trackpad is related to one's operating system?

Yes, but in case the trackpad is not recognised by the kernel there is no DE which makes miracles.

@yan12125
Copy link
Member

yan12125 commented Nov 7, 2016

Following the idea of @josephg5 and description on https://bbs.archlinux.org/viewtopic.php?id=210096, this is how I change my scrolling method to edge-scrolling:

xinput --set-prop "ETPS/2 Elantech Touchpad" "libinput Scroll Method Enabled" 0, 1, 0

libinput provides some configuration APIs, which seems promising: https://wayland.freedesktop.org/libinput/doc/latest/group__config.html

@yan12125
Copy link
Member

In response to @fedelibre:

perhaps you can get some ispiration from gnome-control-center

In brief: X11-specific codes seem inevitable for implementing this

Take tap-to-click for eample: gnome-control-center sends configurations to gnome-settings-daemon (gsd) [1]. On the other hand, mutter subscribes the setting from gsd [2]. Mutter then sends an X11 Atom to Xorg server to change the setting. [3]

(PS. I'm new to GTK+/GLib. The conclusion above is from 2-hour reading of GNOME codes, which may be wrong)

libinput settings are context-wise. That is, settings in a process are independent from another process. As a result, for LXQt running on Xorg, lxqt-config needs to use the X protocol to change those settings. That's a bad news for a desktop environment aiming to support wayland.

[1] https://git.gnome.org/browse/gnome-control-center/tree/panels/mouse/gnome-mouse-properties.c#n285
[2] https://git.gnome.org/browse/mutter/tree/src/backends/meta-input-settings.c#n457
[3] https://git.gnome.org/browse/mutter/tree/src/backends/x11/meta-input-settings-x11.c#n214

@yan12125
Copy link
Member

yan12125 commented Dec 1, 2016

I have a quick implementation at #109. Hope everyone can have a test as it's highly hardware-dependent and I'm not sure if things are still working with different configurations.

@Luraktinus
Copy link

i wanna see that too, the buttons on my touchpad are broken and barely work... tapping is the only way for me (also its way more comfy)

@tsimonq2
Copy link
Member

I am assigning this to myself, because I am declaring it a feature goal for Lubuntu 19.04. Anyone is welcome to discuss the implementation or implement it (in fact, I would encourage @yan12125 to finish their PR), but I'd like to put in the work to get it mergable in time for 19.04.

@tsimonq2 tsimonq2 self-assigned this Aug 26, 2018
@tsimonq2
Copy link
Member

I'll also assign to @yan12125.

@yan12125
Copy link
Member

@tsimonq2 Is there a feature-freeze deadline for Lubuntu 19.04?

@tsimonq2
Copy link
Member

@tsimonq2 Is there a feature-freeze deadline for Lubuntu 19.04?

Mid-to-late February.

@tsujan
Copy link
Member

tsujan commented Apr 9, 2019

Could you change the "Single click to activate items" with something like "tap to click" in the ui?

I agree with this. @yan12125, is it acceptable to you? Or there's a case of single-click that's covered by it?

@agaida
Copy link
Member

agaida commented Apr 9, 2019

Guess it is swapped over from mouse configuration

@tsujan
Copy link
Member

tsujan commented Apr 9, 2019

Guess it is swapped over from mouse configuration

Most probably. It should be "Tap to click" and it's better to put "Tap to drag" below it.

@tsujan
Copy link
Member

tsujan commented Apr 9, 2019

Oh, "Tap to drag" may need be "Tap twice to drag". Confusing...

@yan12125
Copy link
Member

is it acceptable to you?

Sure! The replacement sounds more intuitive :)

Oh, "Tap to drag" may need be "Tap twice to drag". Confusing...

I guess I missed "twice" as the underlying libinput attribute is called LIBINPUT_PROP_TAP_DRAG. Feel free to add "twice"!

@tsujan
Copy link
Member

tsujan commented Apr 10, 2019

I guess I missed "twice"

@yan12125 I'm not even sure if "twice" is correct here. Dragging isn't done by a simple tapping, of course, but it isn't done by double tapping either because, the second time, the finger remains on touchpad.

The easiest way of finding correct terms is launching KDE settings. I'll do that later and make a pedantic PR ;) The important thing is that LXQt touchpad settings work well.

@tsujan
Copy link
Member

tsujan commented Apr 10, 2019

I think this prevents confusion: #460

"Tap and drag" is "Tap-and-drag" in KDE.

@tsujan
Copy link
Member

tsujan commented Apr 23, 2019

An option to disable the touchpad...

Oh, it's missing! It would be a nice addition.

@zerinoid
Copy link

Hello, sorry for the dumb question, but how do I implement this config? I've just installed lubuntu 18.10 and I have no such config entry for touchpad. this is the only place I've seen any reference to a GUI config and yet I'm not able to uncover how do it. thank you in advance

@Chiitoo
Copy link
Contributor

Chiitoo commented May 18, 2019

Hello, sorry for the dumb question, but how do I implement this config? I've just installed lubuntu 18.10 and I have no such config entry for touchpad. this is the only place I've seen any reference to a GUI config and yet I'm not able to uncover how do it. thank you in advance

What version of LXQt do you have?

I found some pictures of Lubuntu 18.10 having version 0.13.0 of PCManFM-Qt, which would mean that indeed, you'd not have the touchpad settings yet (I believe 0.14.0 would be the earliest release with it).

@agaida
Copy link
Member

agaida commented May 18, 2019

LTS means in this case that you will get the same answer longterm - it is not implemented in 0.13

@wxl
Copy link
Member

wxl commented May 20, 2019

@agaida Sounds a lot like "stable" which doesn't even have 0.12 🤣

@zerinoid 18.10 is not an LTS and actually stopped being supported in April. Upgrade to 19.04 and problem solved, at least for the basic touchpad configuration. Assuming that this finally gets implemented and released before approximately August 22nd, it will be in 19.10.

@zerinoid
Copy link

Hello, sorry for the dumb question, but how do I implement this config? I've just installed lubuntu 18.10 and I have no such config entry for touchpad. this is the only place I've seen any reference to a GUI config and yet I'm not able to uncover how do it. thank you in advance

What version of LXQt do you have?

I found some pictures of Lubuntu 18.10 having version 0.13.0 of PCManFM-Qt, which would mean that indeed, you'd not have the touchpad settings yet (I believe 0.14.0 would be the earliest release with it).

I see. Indeed, my LXQt version is 0.13.0

@zerinoid
Copy link

@agaida Sounds a lot like "stable" which doesn't even have 0.12 rofl

@zerinoid 18.10 is not an LTS and actually stopped being supported in April. Upgrade to 19.04 and problem solved, at least for the basic touchpad configuration. Assuming that this finally gets implemented and released before approximately August 22nd, it will be in 19.10.

Ah, ok. I'm starting to get what LTS means lol. thank you

@agaida
Copy link
Member

agaida commented May 20, 2019

@wxl - let me cite Jack Cohen:

There is this special biologist word we use for “stable”. It is “dead”.

Edit: sorry, mixed two bugs - the LTS answer was planned for a bug in LTS.

@wxl
Copy link
Member

wxl commented Aug 18, 2019

This is a bit of an aside but is there any way we could get more generic configuration options? I know that at least in xorg.conf, you can use `InputClass" to match a variety of devices rather than just one. Is there any way we could come up with a solution to do something similar?

@tsujan
Copy link
Member

tsujan commented Aug 18, 2019

I don't have enough knowledge on this but, IMO, "more generic" could mean "poorer". Each device has its own settings, which are most probably different from those of other devices.

@yan12125
Copy link
Member

It's possible to implement something to apply settings to all devices identified as ID_INPUT_TOUCHPAD or ID_INPUT_MOUSE. Those keywords can be found in #109.

@wxl
Copy link
Member

wxl commented Aug 18, 2019

To be clear, I think that we would have very device-specific settings is great. You'll find nearly every device has its own little quirks that others don't. That said, there are also some similarities that apply to all devices. For example, it would be nice to set natural scrolling universally, so that if one switches devices, one isn't surprised by the behavior.

@sebasarena
Copy link

An option to disable the touchpad would be most important for me.

I completely agree with you.

The only thing that it makes me stay on MATE desktop instead of using LXQt environment, is that MATE has the option to disable the touchpad permanently: https://i.imgur.com/fG5hNll.png

@sebasarena
Copy link

Hope that you could implement the option to disable the touchpad permanently, inspired by the code of MATE desktop: https://github.com/mate-desktop/mate-control-center/blob/master/capplets/mouse/mate-mouse-properties.c

@tsujan
Copy link
Member

tsujan commented May 3, 2020

@yan12125
Would you please add an option to disable a device (touchpad or not)? Does it need a lot of code? I'm not familiar with this part of lxqt-config and so, I prefer not to touch your code.

I disable my touchpad in a startup script and have assigned 2 keyboard shortcuts for enabling and disabling it.

@sebasarena
Until it's implemented in the GUI, you can find your touchpad ID with xinput list and disable it with xinput set-prop ID "Device Enabled" 0. Enabling is done by using 1 instead of 0.

@yan12125
Copy link
Member

yan12125 commented May 3, 2020

Here you go~ #621

I should refactor the code for less copy/paste for a new option if I find time :/

@tsujan
Copy link
Member

tsujan commented May 3, 2020

Very good -- and fast. Thank you!

@yan12125
Copy link
Member

In #621, we are discussing about disabling the touchpad only when a mouse is plugged. However, how the Linux kernel handles devices is less than ideal. For wireless mouse that are connected via a USB receiver, the kernel lists them even when they are out of the wireless range. Not sure if everyone plugs the receiver away when bringing their laptop out.

@tsujan
Copy link
Member

tsujan commented May 10, 2020

For wireless mouse that are connected via a USB receiver, the kernel lists them even when they are out of the wireless range.

IMHO, we can ignore that scenario when disabling touchpad with a plugged-in mouse. The mouse can also be broken or, for another reason, it may not work properly; these aren't our problem to solve. Having a mouse that's reported to be plugged-in can be the sufficient condition for disabling touchpad.

@GenNomro
Copy link

GenNomro commented Mar 26, 2021

Ok I've solved a way to enable tap to click and side of pad scrolling...

Open terminal of choice since were talking Lxqt lets say qterminal

type: xinput list

I get this:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=10 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)]

Notice my touchpad Id is 10 above

Next in terminal type: xinput enable 10

Test tap to click and pad side scrolling - mine works

Now lets make it load on startup

On the main panel menu:

Preferences >> LXQt Settings >> Session Settings

Window will open: on left click Autostart

Next on right click: Add

Give it whatever name you like

In "Command" type: xinput enable 10

I set mine to wait for system tray, no reason just did

Click: Ok

On the list find the name you gave it and make sure it is checked in the box

Done

Enjoy

@tsujan
Copy link
Member

tsujan commented May 16, 2021

Touchpad settings were added in 2018. Closing...

An option for disabling touchpad is still lacking — it seems that @yan12125 hasn't had time to complete #621 — but that's another issue.

@tsujan tsujan closed this as completed May 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests