support xorg-x11-drv-libinput #133

Open
raveit65 opened this Issue Dec 15, 2014 · 28 comments

Projects

None yet

6 participants

@raveit65
Member
raveit65 commented Dec 15, 2014 edited

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
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
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/

@alxpl
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
Member

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

@alxpl
alxpl commented May 27, 2015

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

@raveit65
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.

@raveit65
Member
raveit65 commented May 23, 2016 edited

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
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
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.

@raveit65
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

@whot
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
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.

@willysr
Contributor
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
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
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
whot commented Sep 12, 2016

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

@monsta
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
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
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
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
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
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
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
Member
monsta commented Oct 26, 2016

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

@monsta monsta referenced this issue in mate-desktop/mate-settings-daemon Nov 2, 2016
Closed

add libinput support #160

@monsta
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
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
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...

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