Go to file
Peter Hutterer a3922cf7f0 Allow compile-time selection of a fallback input driver
A new --with-fallback-input-driver=foo option allows selecting a
fallback driver for the server if the driver configured for the device
is not found.  Note that this only applies when the device has a driver
assigned and that module fails to load, devices without a driver are
ignored as usual.

This avoids the situation where a configuration assigns e.g. the
synaptics driver but that driver is not available on the system,
resulting in a dead device. A fallback driver can at least provides some
functionality.

This becomes more important as we move towards making other driver true
leaf nodes that can be installed/uninstalled as requested. Specifically,
wacom and synaptics, a config that assigns either driver should be
viable even when the driver itself is not (yet) installed on the system.

It is up to the distributions to make sure that the fallback driver is
always installed. The fallback driver can be disabled with
--without-fallback-input-driver and is disabled by default on non-Linux
systems because we don't have generic drivers on those platforms.
Default driver on Linux is libinput, evdev is the only other serious
candidate here.

Sample log output:
[  3274.421] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event4)
[  3274.421] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad weird driver"
[  3274.421] (II) LoadModule: "banana"
[  3274.422] (WW) Warning, couldn't open module banana
[  3274.422] (II) UnloadModule: "banana"
[  3274.422] (II) Unloading banana
[  3274.422] (EE) Failed to load module "banana" (module does not exist, 0)
[  3274.422] (EE) No input driver matching `banana'
[  3274.422] (II) Falling back to input driver `libinput'
.. server proceeds to assign libinput, init the device, world peace and rainbows
everywhere, truly what a sight. Shame about the banana though.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit c69bd15e00)
2016-09-01 16:32:58 +10:00
composite composite: Factor out backing store transition 2015-09-24 13:01:51 -04:00
config config: remove 10-evdev.conf, let the evdev driver install that file 2015-05-18 13:41:09 +10:00
damageext Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
dbe Convert top level extensions to new *allocarray functions 2015-04-21 16:57:08 -07:00
dix dix: Work around non-premultiplied ARGB cursor data 2016-07-19 13:13:36 -04:00
doc doc: Convert an \fP pair into appropriate tags. 2015-09-23 10:32:53 -04:00
dri3 dri3: Refuse to work for remote clients (v2) 2016-03-11 13:14:32 -05:00
exa EXA: Honour op parameter to exaGlyphs even if maskFormat == NULL 2016-07-06 13:21:27 -04:00
fb Fix alphamap interactions with wfb 2015-09-29 12:21:34 -04:00
glamor glamor: Translate solid text background region after clipping 2016-07-19 13:14:39 -04:00
glx glx: avoid memory leak when using indirect rendering 2016-07-06 13:35:30 -04:00
hw Allow compile-time selection of a fallback input driver 2016-09-01 16:32:58 +10:00
include Allow compile-time selection of a fallback input driver 2016-09-01 16:32:58 +10:00
m4 configure.ac: remove remaining TLS references 2015-03-24 17:20:26 +00:00
man Xserver.man: document more transports for -nolisten & -listen options 2015-10-28 14:16:28 -04:00
mi mi: Correct a miscall of abs() to instead call fabs() 2015-10-19 11:49:52 -04:00
miext rootless: Fix bogus handling of broken root clip 2015-09-21 17:44:48 -04:00
os os: Use strtok instead of xstrtokenize in ComputeLocalClient 2016-07-19 13:25:35 -04:00
present present: Fix presentation of flips out of order 2016-06-21 12:08:30 +02:00
pseudoramiX Convert top level extensions to new *allocarray functions 2015-04-21 16:57:08 -07:00
randr randr/provider: only allow slave gpu to be offload sources. 2016-06-21 12:10:21 +02:00
record record: don't call RecordDeleteContext when AddResource fails 2016-03-11 13:14:33 -05:00
render exa: only draw valid trapezoids 2016-06-21 12:08:12 +02:00
test vidmode: move to a separate library of its own 2016-03-11 13:14:32 -05:00
Xext shm: Also censor images returned by ShmGetImage 2016-07-19 13:14:16 -04:00
xfixes xfixes: avoid double free if AddResource fails 2016-03-11 13:14:33 -05:00
Xi Xi: don't deliver emulated motion events for non-emulating touches 2016-06-21 12:09:10 +02:00
xkb xkb: add a cause to the xkb indicator update after a keymap change 2016-07-06 13:35:30 -04:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore .gitignore: Add new autotools file 'test-driver' 2014-04-21 13:41:42 -07:00
autogen.sh autogen: Set a default subject prefix for patches 2016-03-11 13:14:30 -05:00
configure.ac Allow compile-time selection of a fallback input driver 2016-09-01 16:32:58 +10:00
COPYING modesetting: Merge modesetting's COPYING into the xserver's. 2014-09-15 12:46:02 -07:00
devbook.am doc: Create a script to filter xmlto output 2015-01-05 14:24:06 -08:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
Makefile.am DIST_SUBDIRS needs to include glamor, even if it isn't built 2014-02-13 15:25:56 -08:00
manpages.am Xorg: Add a suid root wrapper 2014-03-12 08:50:05 +01:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: clarify documentation 2012-11-05 13:24:57 -06:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage