lid: track the notifier initial state internally, but not externally
[platform/upstream/libinput.git] / README.md
1 libinput
2 ========
3
4 libinput is a library that handles input devices for display servers and other
5 applications that need to directly deal with input devices.
6
7 It provides device detection, device handling, input device event processing
8 and abstraction so minimize the amount of custom input code the user of
9 libinput need to provide the common set of functionality that users expect.
10 Input event processing includes scaling touch coordinates, generating
11 pointer events from touchpads, pointer acceleration, etc.
12
13 libinput originates from
14 [weston](http://cgit.freedesktop.org/wayland/weston/), the Wayland reference
15 compositor.
16
17 Architecture
18 ------------
19
20 libinput is not used directly by applications, rather it is used by the
21 xf86-input-libinput X.Org driver or wayland compositors. The typical
22 software stack for a system running Wayland is:
23
24 @dotfile libinput-stack-wayland.gv
25
26 Where the Wayland compositor may be Weston, mutter, KWin, etc. Note that
27 Wayland encourages the use of toolkits, so the Wayland client (your
28 application) does not usually talk directly to the compositor but rather
29 employs a toolkit (e.g. GTK) to do so.
30
31 The simplified software stack for a system running X.Org is:
32
33 @dotfile libinput-stack-xorg.gv
34
35 Again, on a modern system the application does not usually talk directly to
36 the X server using Xlib but rather employs a toolkit to do so.
37
38 Source code
39 -----------
40
41 The source code of libinput can be found at:
42 http://cgit.freedesktop.org/wayland/libinput
43
44 For a list of current and past releases visit:
45 http://www.freedesktop.org/wiki/Software/libinput/
46
47 Build instructions:
48 http://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html
49
50 Reporting Bugs
51 --------------
52
53 Bugs can be filed in the libinput component of Wayland:
54 https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=libinput
55
56 Where possible, please provide an
57 [evemu](http://www.freedesktop.org/wiki/Evemu/) recording of the input
58 device and/or the event sequence in question.
59
60 See @ref reporting_bugs for more info.
61
62 Documentation
63 -------------
64
65 Developer API documentation:
66 http://wayland.freedesktop.org/libinput/doc/latest/modules.html
67
68 High-level documentation about libinput's features:
69 http://wayland.freedesktop.org/libinput/doc/latest/pages.html
70
71 Examples of how to use libinput are the debugging tools in the libinput
72 repository. Developers are encouraged to look at those tools for a
73 real-world (yet simple) example on how to use libinput.
74
75 - A commandline debugging tool: https://cgit.freedesktop.org/wayland/libinput/tree/tools/event-debug.c
76 - A GTK application that draws cursor/touch/tablet positions: https://cgit.freedesktop.org/wayland/libinput/tree/tools/event-gui.c
77
78 Build instructions:
79 http://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html
80
81 License
82 -------
83
84 libinput is licensed under the MIT license.
85
86 > Permission is hereby granted, free of charge, to any person obtaining a
87 > copy of this software and associated documentation files (the "Software"),
88 > to deal in the Software without restriction, including without limitation
89 > the rights to use, copy, modify, merge, publish, distribute, sublicense,
90 > and/or sell copies of the Software, and to permit persons to whom the
91 > Software is furnished to do so, subject to the following conditions: [...]
92
93 See the [COPYING](http://cgit.freedesktop.org/wayland/libinput/tree/COPYING)
94 file for the full license information.