touchpad-indicator icon indicating copy to clipboard operation
touchpad-indicator copied to clipboard

Not working on Wayland

Open abradshaw opened this issue 7 years ago • 18 comments

Im not sure this is the right place for this, but my wifes new laptop runs F25 on Wayland and the touchpad indicator didnt seem to work - however logging into a Xwindow session it works perfectly

As I say, I dont know if this is the place to report it - so please close this if its the wrong place

PS when it worked under X - my wife was VERY happy - thanks for this extension

abradshaw avatar Jan 15 '17 12:01 abradshaw

I would like to confirm this as well, I am using Arch Linux.

scoronado12 avatar Jan 18 '17 23:01 scoronado12

fedora 25 - wayland, I can confirm it is not working.

I noticed after installing this extension that after resuming from sleep, gnome-shell crashes: cannot log back into my session and must hard power ( button ). Was able to test using different scenarios and finally i was able to isolate the issue with this extension enabled that causes gnome to crash or not respond.

But the extension works very well in disabling the touchpad or enabling it I did not test with auto disable feature.

Hope it can be fixes as it is an amazing extension that should be on default list of what to install :)

olegTarassov avatar Jan 28 '17 19:01 olegTarassov

@abradshaw The term "didnt seem to work" is quite vague. :sweat_smile: Could you tell me what exactly is not working for you?

@arcadian09 Are you suggesting that the auto-disable feature is causing problems but besides that the other functions of the extension itself works?

askmrsinh avatar May 14 '17 18:05 askmrsinh

I have a similar problem: I use it on a thinkpad laptop with ubuntu 17.10. So I have a touchpad, some buttons and the trackpoint. I want all of them disabled when a mouse is attached. It works under xorg with synclient (i also have two fields to configure: trackpoint and -pad), but when I restart the gnome session under wayland, synclient is not available and the trackpoint is NOT disabled when I attach a mouse (there is no field where I can configure the trackpoint, only the pad)

Another think is that a click on "Touchpad preference" does not open the preference, only switches the mouse pointer to a spinner which just keeps on spinning.

ghost avatar Nov 13 '17 12:11 ghost

I can confirm this issue.

I am using Ubuntu 17.10 on a Dell Latitude 5580 with a touchpad and trackpoint.

Situation with Wayland: screenshot from 2018-01-29 12-42-51 screenshot from 2018-01-29 12-42-24

$ xinput --list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer:15                     	id=6	[slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:15            	id=7	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ xwayland-keyboard:15                    	id=8	[slave  keyboard (3)]

Situation with Xorg: screenshot from 2018-01-29 12-46-09

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech Performance MX                 	id=10	[slave  pointer  (2)]
⎜   ↳ Logitech MX Master                      	id=11	[slave  pointer  (2)]
⎜   ↳ HID 046a:0023                           	id=15	[slave  pointer  (2)]
⎜   ↳ DLL07D1:01 044E:120B                    	id=16	[slave  pointer  (2)]
⎜   ↳ DualPoint Stick                         	id=17	[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)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ Integrated_Webcam_HD: Integrate         	id=12	[slave  keyboard (3)]
    ↳ HID 041e:30d3                           	id=13	[slave  keyboard (3)]
    ↳ HID 046a:0023                           	id=14	[slave  keyboard (3)]
    ↳ Intel HID events                        	id=18	[slave  keyboard (3)]
    ↳ Intel HID 5 button array                	id=19	[slave  keyboard (3)]
    ↳ Dell WMI hotkeys                        	id=20	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=21	[slave  keyboard (3)]
    ↳ Logitech MX Master                      	id=22	[slave  keyboard (3)]
    ↳ HID 046a:0023                           	id=23	[slave  keyboard (3)]

The main issue may be here that xinput under wayland gives only limited information about the actual input devices.

As you see in the screens in the debug both the trackpoint (DualPointStick) and the touchpad (DLL07D1:01 044E:120B) are given in the list. However switching to one of both it is still not able to disable it. Tring to do so the Confirm dialog with "There seems to be no other mouse device enabled" pops up. Confirming has no effect. The slider still is on on and the touchpad nor the trackpoint are disabled.

kitingChris avatar Jan 29 '18 12:01 kitingChris

On my Thinkpad T420 with Debian Buster, the extension is half-functional under Wayland: It recognizes when the mouse is disconnected and enables the touchpad, but it does not recognize when it is plugged back in.

vasyugan avatar Aug 09 '18 16:08 vasyugan

I think I have the same problem. I'm using ubuntu 18.04 with Wayland and a Microsoft all in one keyboard. When I start touchpad0-indicator it throws this error: Touchpad-Indicator version: 2.1.2-0extras18.04.0 Traceback (most recent call last): File "/usr/bin/touchpad-indicator", line 36, in <module> main() File "/usr/share/touchpad-indicator/touchpadindicator.py", line 717, in main TouchpadIndicator() File "/usr/share/touchpad-indicator/touchpadindicator.py", line 120, in __init__ self.read_preferences(is_on_start=True) File "/usr/share/touchpad-indicator/touchpadindicator.py", line 344, in read_preferences tipo = self.touchpad._get_type(self.touchpad._get_ids()[0]) IndexError: list index out of range

patchlog avatar Sep 10 '18 10:09 patchlog

I confirm, not working here either on Debian Sid, up to date. Jumper Ezbook S3 Pro. Thanks for any hint, I'm available for testing.

pcav avatar Sep 19 '18 11:09 pcav

Hi @patchlog You are using a different software package altogether.

askmrsinh avatar Feb 03 '19 20:02 askmrsinh

Hi, on Wayland I get this error: The settings of extension touchpad-indicator@orangeshirt had an error:

TypeError: this.pointingDevices.filter is not a function

Stack trace:

_filterByType@/home/angelsoul/.local/share/gnome-shell/extensions/touchpad-indicator@orangeshirt/xinput.js:147:60
_populateDebugTab@/home/angelsoul/.local/share/gnome-shell/extensions/touchpad-indicator@orangeshirt/prefs.js:181:32
TouchpadIndicatorSettings@/home/angelsoul/.local/share/gnome-shell/extensions/touchpad-indicator@orangeshirt/prefs.js:61:14
buildPrefsWidget@/home/angelsoul/.local/share/gnome-shell/extensions/touchpad-indicator@orangeshirt/prefs.js:239:20
_showPrefs@resource:///org/gnome/shell/extensionPrefs/main.js:174:38
openPrefs@resource:///org/gnome/shell/extensionPrefs/main.js:159:24
_init/<@resource:///org/gnome/shell/extensionPrefs/main.js:600:62
main@resource:///org/gnome/shell/extensionPrefs/main.js:762:23
@<main>:1:48

On Xorg the extension works great.

I am on ArchLinux running gnome 3.36

fdinardo avatar Mar 13 '20 13:03 fdinardo

Can you please tell me what is the output for xinput --list when running on Wayland? And also, how does this compare to xinput --list on Xorg? I suspect that the device is missing from the list when running on Wayland.

askmrsinh avatar Mar 13 '20 18:03 askmrsinh

On Wayland:

→ xinput --list
WARNING: running xinput against an Xwayland server. See the xinput man page for details.
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer:16                     	id=6	[slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:16            	id=7	[slave  pointer  (2)]
⎜   ↳ xwayland-touch:16                       	id=9	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ xwayland-keyboard:16                    	id=8	[slave  keyboard (3)]

On Xorg

 → xinput --list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech K400 Plus                      	id=11	[slave  pointer  (2)]
⎜   ↳ Logitech MX Anywhere 2                  	id=12	[slave  pointer  (2)]
⎜   ↳ SYNAPTICS Synaptics Large Touch Screen Mouse	id=13	[slave  pointer  (2)]
⎜   ↳ SYNAPTICS Synaptics Large Touch Screen  	id=14	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=17	[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)]
    ↳ Video Bus                               	id=8	[slave  keyboard (3)]
    ↳ Power Button                            	id=9	[slave  keyboard (3)]
    ↳ Integrated_Webcam_HD: Integrate         	id=10	[slave  keyboard (3)]
    ↳ Dell WMI hotkeys                        	id=15	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=16	[slave  keyboard (3)]
    ↳ DELL Wireless hotkeys                   	id=18	[slave  keyboard (3)]
    ↳ Logitech K400 Plus                      	id=19	[slave  keyboard (3)]
    ↳ Logitech MX Anywhere 2                  	id=20	[slave  keyboard (3)]

fdinardo avatar Mar 13 '20 19:03 fdinardo

As you can see, under Wayland, xinput provides only a list of virtual devices.

askmrsinh avatar Mar 14 '20 18:03 askmrsinh

Yeah Thanks, after you drove me on the right place to look, I saw the difference: Now the question is: How this is possible? and how can I tell Wayland that there are other devices?

I know these are not topics that can be answered here, but Can you just show the right direction to troubleshoot this?

Thanks

Also, I am not sure if this matter, but I have set as "Backend to use for enabling or disabling the Touchpad" to "GSettings" instead of "xinput".

Is there any chance to switch to "libinput" ?

fdinardo avatar Mar 14 '20 20:03 fdinardo

I have the same issue as @fdinardo. Thinkpad, Debian testing.

For what it's worth, here's the error message and stack trace. Line numbers have changed, so must have been an update I guess.

TypeError: this.pointingDevices.filter is not a function

Stack trace:
  _filterByType@/home/ian/.local/share/gnome-shell/extensions/touchpad-indicator@orangeshirt/xinput.js:147:39
  _populateDebugTab@/home/ian/.local/share/gnome-shell/extensions/touchpad-indicator@orangeshirt/prefs.js:181:25
  TouchpadIndicatorSettings@/home/ian/.local/share/gnome-shell/extensions/touchpad-indicator@orangeshirt/prefs.js:61:9
  buildPrefsWidget@/home/ian/.local/share/gnome-shell/extensions/touchpad-indicator@orangeshirt/prefs.js:239:20
  _showPrefs@resource:///org/gnome/shell/extensionPrefs/main.js:57:22
  _extensionsLoaded@resource:///org/gnome/shell/extensionPrefs/main.js:320:13
  _scanExtensions/<@resource:///org/gnome/shell/extensionPrefs/main.js:298:13
  asyncCallback@resource:///org/gnome/gjs/modules/overrides/Gio.js:132:13
  main@resource:///org/gnome/shell/extensionPrefs/main.js:707:5
  @<main>:1:43

And here's the result of running xinput --list:

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer:16                     	id=6	[slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:16            	id=7	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ xwayland-keyboard:16                    	id=8	[slave  keyboard (3)]

Would really love to get this working again.

ian-barnes avatar Mar 26 '20 09:03 ian-barnes

@fdinardo

Yup using libinput would seem the obvious solution here but it requires elevated permissions to run. Try running libinput list-devices and you will be greeted with something like this:

Failed to open /dev/input/event5 (Permission denied)
Failed to open /dev/input/event1 (Permission denied)
Failed to open /dev/input/event0 (Permission denied)
Failed to open /dev/input/event2 (Permission denied)
Failed to open /dev/input/event6 (Permission denied)
Failed to open /dev/input/event11 (Permission denied)
Failed to open /dev/input/event20 (Permission denied)
Failed to open /dev/input/event10 (Permission denied)
Failed to open /dev/input/event12 (Permission denied)
Failed to open /dev/input/event13 (Permission denied)
Failed to open /dev/input/event14 (Permission denied)
Failed to open /dev/input/event15 (Permission denied)
Failed to open /dev/input/event16 (Permission denied)
Failed to open /dev/input/event17 (Permission denied)
Failed to open /dev/input/event18 (Permission denied)
Failed to open /dev/input/event19 (Permission denied)
Failed to open /dev/input/event7 (Permission denied)
Failed to open /dev/input/event8 (Permission denied)
Failed to open /dev/input/event9 (Permission denied)
Failed to open /dev/input/event3 (Permission denied)
Failed to open /dev/input/event4 (Permission denied)

To get the list of input devices, you need to add sudo to the above command. I can not to do so within the extension for obvious reasons. Further, libinput is not a drop-in replacement for xinput (see: https://news.ycombinator.com/item?id=16406829).

So right now I am not really sure how to proceed.

askmrsinh avatar Mar 28 '20 04:03 askmrsinh

My experience with the extension, using Fedora 33, Gnome 3.38.3 and Wayland on a Lenovo Thinkpad T470 The extension works as expected the first time you install it. The extension will prevent the session to open after reboot (system freeze) between GDM to Gnome. Note that extension doesn't freeze the system on a new session under X

Yves911 avatar Jan 23 '21 10:01 Yves911

My experience with the extension, using Fedora 33, Gnome 3.38.3 and Wayland on a Lenovo Thinkpad T470 The extension works as expected the first time you install it. The extension will prevent the session to open after reboot (system freeze) between GDM to Gnome. Note that extension doesn't freeze the system on a new session under X

Same here, Ubuntu 20.4 (with kernel 5.16.x) and Gnome 3.

Anybody found solution/workaround?

doodzio avatar Feb 16 '22 18:02 doodzio