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

support xorg-x11-drv-libinput #133

Closed
raveit65 opened this Issue Dec 15, 2014 · 36 comments

Comments

Projects
None yet
7 participants
@raveit65
Member

raveit65 commented Dec 15, 2014

There is a new change proposal for fedora 22.

On Fri, Dec 12, 2014 at 03:38:04PM +0100, Rave it wrote:
> Am Fri, 12 Dec 2014 12:00:07 +0000
> schrieb devel-announce-request@lists.fedoraproject.org:
>   
> > Message: 1
> > Date: Thu, 11 Dec 2014 14:42:11 +0100
> > From: Jaroslav Reznik <jreznik@redhat.com>
> > To: devel-announce@lists.fedoraproject.org
> > Subject: F22 System Wide Change: Change xorg input stack to use
> >     libinput
> > Message-ID: <4092034.fSnsvv0Gs3@dhcp-0-163.brq.redhat.com>
> > Content-Type: text/plain; charset="us-ascii"
> > 
> > = Proposed System Wide Change: Change xorg input stack to use libinput =
> > https://fedoraproject.org/wiki/Changes/LibinputForXorg
> > 
> > Change owner(s): Hans de Goede <hdegoede@redhat.com>
> > 
> > Replace the current (low-level) input xorg drivers with libinput using the 
> > xorg-x11-drv-libinput wrapper. 
> > 
> > == Detailed Description ==
> > Currently xorg uses different input drivers depending on the device type. This 
> > makes it impossible to do things like middle button scrolling on the 
> > trackpoint on laptops where the trackpoint buttons are software-emulated 
> > buttons on the touchpad. Besides this the xf86-input-synaptics driver was 
> > never really designed for multi-touch touchpads and this causes various 
> > issues.
> > 
> > For Wayland we've been working on a new improved input stack, which is to be 
> > shared by all compositors and lives inside libinput. We plan to replace the 
> > current (low-level) input xorg drivers with libinput using the xorg-x11-drv-
> > libinput wrapper. 
> > 
> > == Scope ==
> > Besides xorg changes, this will also require changes to the control panel 
> > applets for mouse / touchpad configuration in the various desktop environments, 
> > as those all are hardcoded to use the xorg-x11-drv-synaptics specific 
> > interfaces.
> > 
> > * Proposal owners:
> > Package libinput and xorg-drv-input-libinput (done), make sure that xorg-drv-
> > input-libinput has the necessary config interfaces for control panel 
> > mouse/touchpad config applets (wip). Write patches for gnome-control-center 
> > mouse/touchpad capplet. Coordinate with other desktop environments.
> > 
> > * Other developers:
> > GNOME: merge the gnome-control-center patches. KDE: limits itself to standard 
> > X11 mouse config interfaces, no changes needed. Other Desktop Environments: 
> > adjust control-panel code to deal with xorg-x11-drv-libinput, merge these 
> > changes.
> > 
> > * Release engineering: N/A
> > * Policies and guidelines: N/A  
> 
> I would be very helpful if you could target a x-server version when
> control-center apps should be ready for this change, to help upstreams.
> Can we expect that those x-server changes also land in other distro later?
> Or is this limited to fedora only?  

The X server version is independent of this change. You can install
and use xorg-x11-drv-libinput right now and while I haven't tested it, the
driver probably works with anything newer than F18 or so.

Cheers,
   Peter

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/7038259-support-xorg-x11-drv-libinput?utm_campaign=plugin&utm_content=tracker%2F559197&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F559197&utm_medium=issues&utm_source=github).
@infirit

This comment has been minimized.

Show comment
Hide comment
@infirit

infirit Dec 15, 2014

Contributor

sigh, we do not have enough input frameworks already 😭

Do you have a link to the gnome-control-center patch?

Contributor

infirit commented Dec 15, 2014

sigh, we do not have enough input frameworks already 😭

Do you have a link to the gnome-control-center patch?

@infirit infirit changed the title from feature request: support xorg-x11-drv-libinput to support xorg-x11-drv-libinput Dec 29, 2014

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Jan 4, 2015

Member

the libinput patches itself i found here
http://lists.freedesktop.org/archives/wayland-devel/2014-April/014311.html
but i found nothing for control-center.
general infos:
http://lwn.net/Articles/624776/

Member

raveit65 commented Jan 4, 2015

the libinput patches itself i found here
http://lists.freedesktop.org/archives/wayland-devel/2014-April/014311.html
but i found nothing for control-center.
general infos:
http://lwn.net/Articles/624776/

@raveit65

This comment has been minimized.

Show comment
Hide comment
@alxpl

This comment has been minimized.

Show comment
Hide comment
@alxpl

alxpl May 27, 2015

Hi, I have just filed
https://bugzilla.redhat.com/show_bug.cgi?id=1225629

I don't know if the missing touchpad tab has anything to do with libinput, but my settings not taking effect, probably has.

Let me know if you need any more information.

alxpl commented May 27, 2015

Hi, I have just filed
https://bugzilla.redhat.com/show_bug.cgi?id=1225629

I don't know if the missing touchpad tab has anything to do with libinput, but my settings not taking effect, probably has.

Let me know if you need any more information.

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 May 27, 2015

Member

@alxpl
Does the issue exists if you don't use gdm as display-manager.
Please try out lightdm.

Member

raveit65 commented May 27, 2015

@alxpl
Does the issue exists if you don't use gdm as display-manager.
Please try out lightdm.

@alxpl

This comment has been minimized.

Show comment
Hide comment
@alxpl

alxpl May 27, 2015

Do you prefer to continue the conversation here or at rhbz?

alxpl commented May 27, 2015

Do you prefer to continue the conversation here or at rhbz?

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 May 28, 2015

Member

The issue here is that libinput driver is prefered in xorg configuration with fedora 22.

[rave@satellite ~]$ ls /usr/share/X11/xorg.conf.d/
10-evdev.conf   50-synaptics.conf  50-wacom.conf
10-quirks.conf  50-vmmouse.conf    90-libinput.conf

I could fixed that with shiping a 99-synaptics-mate.conf via mate-desktop package.
http://pkgs.fedoraproject.org/cgit/mate-desktop.git/commit/
This will not break the gnome-shell configuration tool , i tested it.
But it would be nice if mate-mouse-properties will support libinput driver before next fedora release.
It is posible that synaptics driver will removed for next release, and this is definetly a breakage for mate desktop in fedora.

Member

raveit65 commented May 28, 2015

The issue here is that libinput driver is prefered in xorg configuration with fedora 22.

[rave@satellite ~]$ ls /usr/share/X11/xorg.conf.d/
10-evdev.conf   50-synaptics.conf  50-wacom.conf
10-quirks.conf  50-vmmouse.conf    90-libinput.conf

I could fixed that with shiping a 99-synaptics-mate.conf via mate-desktop package.
http://pkgs.fedoraproject.org/cgit/mate-desktop.git/commit/
This will not break the gnome-shell configuration tool , i tested it.
But it would be nice if mate-mouse-properties will support libinput driver before next fedora release.
It is posible that synaptics driver will removed for next release, and this is definetly a breakage for mate desktop in fedora.

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 May 23, 2016

Member

https://bugzilla.redhat.com/show_bug.cgi?id=1338585
Looks like that gnome have dropped support with gnome-3.20 in f24.
https://git.gnome.org/browse/gnome-settings-daemon/log/?qt=grep&q=libinput
So, it isn't possible anymore to install both desktops on the same system.
In other words mate isn't compatible anymore to gnome or vice versa.
As libinput comes from Xorg and not from gnome it is our problem and not a gnome problem.
@monsta @flexiondotorg @clefebvre
We need support for libinput in the foreseeable future.

Member

raveit65 commented May 23, 2016

https://bugzilla.redhat.com/show_bug.cgi?id=1338585
Looks like that gnome have dropped support with gnome-3.20 in f24.
https://git.gnome.org/browse/gnome-settings-daemon/log/?qt=grep&q=libinput
So, it isn't possible anymore to install both desktops on the same system.
In other words mate isn't compatible anymore to gnome or vice versa.
As libinput comes from Xorg and not from gnome it is our problem and not a gnome problem.
@monsta @flexiondotorg @clefebvre
We need support for libinput in the foreseeable future.

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta May 23, 2016

Member

Damn... and I'll have to keep synaptics support for LMDE 2 which doesn't have Xorg's libinput package yet. 😕

Member

monsta commented May 23, 2016

Damn... and I'll have to keep synaptics support for LMDE 2 which doesn't have Xorg's libinput package yet. 😕

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 May 23, 2016

Member

well, it shouldn't be a prob to support both, see my link.
2016-01-04 mouse: Remove support for non-libinput mouse configurations
This is the culprit commit in gnome-3.20, before this gnome did support both drivers.

Member

raveit65 commented May 23, 2016

well, it shouldn't be a prob to support both, see my link.
2016-01-04 mouse: Remove support for non-libinput mouse configurations
This is the culprit commit in gnome-3.20, before this gnome did support both drivers.

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 May 23, 2016

Member

It looks like that Xorg have forced gnome to remove support for synaptic driver.
https://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=59e5db025307404fbfbc82f2fb3fe91d6a3005d7

Member

raveit65 commented May 23, 2016

It looks like that Xorg have forced gnome to remove support for synaptic driver.
https://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=59e5db025307404fbfbc82f2fb3fe91d6a3005d7

@whot

This comment has been minimized.

Show comment
Hide comment
@whot

whot May 23, 2016

It looks like that Xorg have forced gnome to remove support for synaptic driver.

I'm not sure how that commit can be interpreted that way. The synaptics driver is already overridden by libinput on every install, the commit above simply removes the need for the symlink dance. If synaptics is installed, it will be used. If it isn't installed, it won't be used and we fall back to libinput.

whot commented May 23, 2016

It looks like that Xorg have forced gnome to remove support for synaptic driver.

I'm not sure how that commit can be interpreted that way. The synaptics driver is already overridden by libinput on every install, the commit above simply removes the need for the symlink dance. If synaptics is installed, it will be used. If it isn't installed, it won't be used and we fall back to libinput.

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 May 23, 2016

Member

Yes, but until synaptic driver isn't removed from default workstation installation in fedora, using a priority than libinput driver is a problem for gnome.
As far i can see the comps report is open.
Beside from this it is imposible to use Mate and gnome on a same system now in f24.

Member

raveit65 commented May 23, 2016

Yes, but until synaptic driver isn't removed from default workstation installation in fedora, using a priority than libinput driver is a problem for gnome.
As far i can see the comps report is open.
Beside from this it is imposible to use Mate and gnome on a same system now in f24.

@willysr

This comment has been minimized.

Show comment
Hide comment
@willysr

willysr May 26, 2016

Member

libinput is not going to be added in Slackware soon (at least not in 14.2), so i was hoping if it should be considered optional and NOT a mandatory package for MATE

Member

willysr commented May 26, 2016

libinput is not going to be added in Slackware soon (at least not in 14.2), so i was hoping if it should be considered optional and NOT a mandatory package for MATE

@whot

This comment has been minimized.

Show comment
Hide comment
@whot

whot Sep 12, 2016

fwiw, I've had a look at adding libinput support to mate-settings-daemon today and it's going to be a fairly time-consuming task due to the amount of cleanup work required to hook the bits in. And some functionality will be lost because libinput doesn't allow for some configuration settings that you currently expose. Do you have a branch currently tracking the libinput work? I can probably find the odd spare cycle to contribute, but I won't write the whole mate support.

whot commented Sep 12, 2016

fwiw, I've had a look at adding libinput support to mate-settings-daemon today and it's going to be a fairly time-consuming task due to the amount of cleanup work required to hook the bits in. And some functionality will be lost because libinput doesn't allow for some configuration settings that you currently expose. Do you have a branch currently tracking the libinput work? I can probably find the odd spare cycle to contribute, but I won't write the whole mate support.

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Sep 12, 2016

Member

No, we still didn't start working on this. The team is too small and busy with other issues, not to mention the amount of work on GTK+3 support... We'd appreciate some help with this.

I'd like to keep synaptics supported (for distros that have it) while adding libinput support.

Member

monsta commented Sep 12, 2016

No, we still didn't start working on this. The team is too small and busy with other issues, not to mention the amount of work on GTK+3 support... We'd appreciate some help with this.

I'd like to keep synaptics supported (for distros that have it) while adding libinput support.

@whot

This comment has been minimized.

Show comment
Hide comment
@whot

whot Sep 12, 2016

what's the gist on the GTK+3 support - will settings-daemon be ported to gtk3?

whot commented Sep 12, 2016

what's the gist on the GTK+3 support - will settings-daemon be ported to gtk3?

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Sep 13, 2016

Member

Eventually yes, but not right now. Just like other apps, it has GTK+3 support, you can build it with it. It's just that GTK+2 is the default one.

Member

monsta commented Sep 13, 2016

Eventually yes, but not right now. Just like other apps, it has GTK+3 support, you can build it with it. It's just that GTK+2 is the default one.

@whot

This comment has been minimized.

Show comment
Hide comment
@whot

whot Sep 13, 2016

right. main reason I'm asking is that cinnamon was relatively simple because they already have a lot of the code cleanups that the gnome guys did for gnome3. those are missing in mate and it makes the task rather daunting, because a lot of code has to be shuffled around and tested before we can add the libinput hooks...

whot commented Sep 13, 2016

right. main reason I'm asking is that cinnamon was relatively simple because they already have a lot of the code cleanups that the gnome guys did for gnome3. those are missing in mate and it makes the task rather daunting, because a lot of code has to be shuffled around and tested before we can add the libinput hooks...

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Sep 15, 2016

Member

We backport fixes and cleanups from gnome apps from time to time, so we can get on it. We're near 1.16 release already though, so all work will probably go in the next dev phase...

Member

monsta commented Sep 15, 2016

We backport fixes and cleanups from gnome apps from time to time, so we can get on it. We're near 1.16 release already though, so all work will probably go in the next dev phase...

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Oct 25, 2016

Member

@whot: linuxmint/cinnamon-settings-daemon#131 seems to be fairly easy to port to m-s-d. Or do we need to pick some more commits from gnome? I might miss something.

Member

monsta commented Oct 25, 2016

@whot: linuxmint/cinnamon-settings-daemon#131 seems to be fairly easy to port to m-s-d. Or do we need to pick some more commits from gnome? I might miss something.

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Oct 25, 2016

Member

Forgot to tell that we're moving to GTK+3 only code for 1.18, so current mess of #ifs won't be a problem 😄

Member

monsta commented Oct 25, 2016

Forgot to tell that we're moving to GTK+3 only code for 1.18, so current mess of #ifs won't be a problem 😄

@whot

This comment has been minimized.

Show comment
Hide comment
@whot

whot Oct 25, 2016

@monsta yes, it's fairly easy to port in terms of implementation, you pretty much do exactly the same thing. But the problem is that mate is lacking a whole bunch of general cleanup that cinnamon got before forking, the code is more spaghetti-like and you can't just slot the new bits in as easily. so the large part of the mate work would be to clean bits up, factor them out into helpers, etc. so that something like the patch linked to can go on top.

whot commented Oct 25, 2016

@monsta yes, it's fairly easy to port in terms of implementation, you pretty much do exactly the same thing. But the problem is that mate is lacking a whole bunch of general cleanup that cinnamon got before forking, the code is more spaghetti-like and you can't just slot the new bits in as easily. so the large part of the mate work would be to clean bits up, factor them out into helpers, etc. so that something like the patch linked to can go on top.

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Oct 26, 2016

Member

Aha... I thought the cleanup done in some commits of linuxmint/cinnamon-settings-daemon#131 would be enough.

Member

monsta commented Oct 26, 2016

Aha... I thought the cleanup done in some commits of linuxmint/cinnamon-settings-daemon#131 would be enough.

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Oct 26, 2016

Member

Ok, found some differences and some pieces apparently not ported from gnome... will try to fix that.

Member

monsta commented Oct 26, 2016

Ok, found some differences and some pieces apparently not ported from gnome... will try to fix that.

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Nov 2, 2016

Member

Almost there... had to backport some new touchpad settings as well.
Since we'll have to modify both m-s-d and m-c-c, I've decided to create a separate issue for discussing m-s-d changes: mate-desktop/mate-settings-daemon#160.

Member

monsta commented Nov 2, 2016

Almost there... had to backport some new touchpad settings as well.
Since we'll have to modify both m-s-d and m-c-c, I've decided to create a separate issue for discussing m-s-d changes: mate-desktop/mate-settings-daemon#160.

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Jan 3, 2017

Member

Ok, m-s-d has libinput support now. Now on to UI changes...

I've made dev-libinput branch here for testing m-c-c with libinput. So far, it should detect libinput touchpads and enable the touchpad settings tab.

All UI elements are enabled now, we need to think what and how to disable when libinput is used instead of Synaptics...

Member

monsta commented Jan 3, 2017

Ok, m-s-d has libinput support now. Now on to UI changes...

I've made dev-libinput branch here for testing m-c-c with libinput. So far, it should detect libinput touchpads and enable the touchpad settings tab.

All UI elements are enabled now, we need to think what and how to disable when libinput is used instead of Synaptics...

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Jan 20, 2017

Member

@flexiondotorg @raveit65 libinput commits rebased and merged to master, 678aa95 and 9d6f50f.
I'll leave this open for reasons stated above...

Member

monsta commented Jan 20, 2017

@flexiondotorg @raveit65 libinput commits rebased and merged to master, 678aa95 and 9d6f50f.
I'll leave this open for reasons stated above...

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Jan 25, 2017

Member

All UI elements are enabled now, we need to think what and how to disable when libinput is used instead of Synaptics...

@monsta
I recall during testing that we need to revert some commits from clem for using libinput?
If yes, tell me which ones. I will try to create patches for fedora and ubuntu.

Member

raveit65 commented Jan 25, 2017

All UI elements are enabled now, we need to think what and how to disable when libinput is used instead of Synaptics...

@monsta
I recall during testing that we need to revert some commits from clem for using libinput?
If yes, tell me which ones. I will try to create patches for fedora and ubuntu.

@clefebvre

This comment has been minimized.

Show comment
Hide comment
@clefebvre

clefebvre Jan 27, 2017

Member

Hi @raveit65 if I remember well, I made it possible to enable/disable edge and two-finger scrolling independently, and that isn't possible with libinput.

Member

clefebvre commented Jan 27, 2017

Hi @raveit65 if I remember well, I made it possible to enable/disable edge and two-finger scrolling independently, and that isn't possible with libinput.

@clefebvre

This comment has been minimized.

Show comment
Hide comment
@clefebvre
Member

clefebvre commented Jan 27, 2017

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Jan 27, 2017

Member

Hi @clefebvre
I guess this one from m-s-d needs revert too ?
mate-desktop/mate-settings-daemon@02ef9ca

Member

raveit65 commented Jan 27, 2017

Hi @clefebvre
I guess this one from m-s-d needs revert too ?
mate-desktop/mate-settings-daemon@02ef9ca

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Jan 27, 2017

Member

Imo best way to handle that should be a configure option to use it with libinput or synaptics.

Member

raveit65 commented Jan 27, 2017

Imo best way to handle that should be a configure option to use it with libinput or synaptics.

@whot

This comment has been minimized.

Show comment
Hide comment
@whot

whot Jan 29, 2017

do you actually have a use-case for enabling edge and two-finger scrolling at the same time?
likewise with the separate horiz scrolling - do you have a use-case where someone has e.g. horiz edge scrolling but vert two-finger scrolling? because if not, having a single "horiz enabled" toggle is a lot easier to handle...

whot commented Jan 29, 2017

do you actually have a use-case for enabling edge and two-finger scrolling at the same time?
likewise with the separate horiz scrolling - do you have a use-case where someone has e.g. horiz edge scrolling but vert two-finger scrolling? because if not, having a single "horiz enabled" toggle is a lot easier to handle...

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Feb 14, 2017

Member

@whot: I'm not even sure there was a demand for that feature... maybe @clefebvre remembers more than me

Member

monsta commented Feb 14, 2017

@whot: I'm not even sure there was a demand for that feature... maybe @clefebvre remembers more than me

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Jan 21, 2018

Member

I think we'll have to redesign some parts of UI and possibly make some new m-s-d settings to better handle both libinput and synaptics. Besides the mentioned scrolling settings thing, there's also an issue with clickfinger setting (mate-desktop/mate-settings-daemon#183 and #289). This is getting outside of scope of just one bug report, so I'll probably create a team discussion for that. Anyway, it's a work for 1.22, as we're close to releasing 1.20 now.

Member

monsta commented Jan 21, 2018

I think we'll have to redesign some parts of UI and possibly make some new m-s-d settings to better handle both libinput and synaptics. Besides the mentioned scrolling settings thing, there's also an issue with clickfinger setting (mate-desktop/mate-settings-daemon#183 and #289). This is getting outside of scope of just one bug report, so I'll probably create a team discussion for that. Anyway, it's a work for 1.22, as we're close to releasing 1.20 now.

@monsta monsta closed this Jan 21, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment