mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-03-23 06:10:38 +01:00
Compare commits
7 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff5186651b | ||
|
|
68f124b979 | ||
|
|
e1fe0cd5c5 | ||
|
|
ba29b3a96c | ||
|
|
3320c6df90 | ||
|
|
168aad057d | ||
|
|
156e53dc12 |
14 changed files with 46 additions and 28 deletions
2
COPYING
2
COPYING
|
|
@ -31,4 +31,4 @@ This copy is provided to provide consistent behavior regardless which kernel
|
||||||
version libinput is compiled against. The header is used during compilation
|
version libinput is compiled against. The header is used during compilation
|
||||||
only, libinput does not link against GPL libraries.
|
only, libinput does not link against GPL libraries.
|
||||||
|
|
||||||
[1] http://cgit.freedesktop.org/wayland/libinput/tree/include/linux/input.h
|
[1] https://gitlab.freedesktop.org/libinput/libinput/blob/master/include/linux/input.h
|
||||||
|
|
|
||||||
22
README.md
22
README.md
|
|
@ -40,19 +40,19 @@ Source code
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
The source code of libinput can be found at:
|
The source code of libinput can be found at:
|
||||||
http://cgit.freedesktop.org/wayland/libinput
|
https://gitlab.freedesktop.org/libinput/libinput
|
||||||
|
|
||||||
For a list of current and past releases visit:
|
For a list of current and past releases visit:
|
||||||
http://www.freedesktop.org/wiki/Software/libinput/
|
https://www.freedesktop.org/wiki/Software/libinput/
|
||||||
|
|
||||||
Build instructions:
|
Build instructions:
|
||||||
http://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html
|
https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html
|
||||||
|
|
||||||
Reporting Bugs
|
Reporting Bugs
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Bugs can be filed in the libinput component of Wayland:
|
Bugs can be filed on freedesktop.org GitLab:
|
||||||
https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=libinput
|
https://gitlab.freedesktop.org/libinput/libinput/issues/
|
||||||
|
|
||||||
Where possible, please provide the `libinput record` output
|
Where possible, please provide the `libinput record` output
|
||||||
of the input device and/or the event sequence in question.
|
of the input device and/or the event sequence in question.
|
||||||
|
|
@ -62,19 +62,19 @@ See @ref reporting_bugs for more info.
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
- Developer API documentation: http://wayland.freedesktop.org/libinput/doc/latest/modules.html
|
- Developer API documentation: https://wayland.freedesktop.org/libinput/doc/latest/modules.html
|
||||||
- High-level documentation about libinput's features:
|
- High-level documentation about libinput's features:
|
||||||
http://wayland.freedesktop.org/libinput/doc/latest/pages.html
|
https://wayland.freedesktop.org/libinput/doc/latest/pages.html
|
||||||
- Build instructions:
|
- Build instructions:
|
||||||
http://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html
|
https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html
|
||||||
- Documentation for previous versions of libinput: https://wayland.freedesktop.org/libinput/doc/
|
- Documentation for previous versions of libinput: https://wayland.freedesktop.org/libinput/doc/
|
||||||
|
|
||||||
Examples of how to use libinput are the debugging tools in the libinput
|
Examples of how to use libinput are the debugging tools in the libinput
|
||||||
repository. Developers are encouraged to look at those tools for a
|
repository. Developers are encouraged to look at those tools for a
|
||||||
real-world (yet simple) example on how to use libinput.
|
real-world (yet simple) example on how to use libinput.
|
||||||
|
|
||||||
- A commandline debugging tool: https://cgit.freedesktop.org/wayland/libinput/tree/tools/libinput-debug-events.c
|
- A commandline debugging tool: https://gitlab.freedesktop.org/libinput/libinput/tree/master/tools/libinput-debug-events.c
|
||||||
- A GTK application that draws cursor/touch/tablet positions: https://cgit.freedesktop.org/wayland/libinput/tree/tools/libinput-debug-gui.c
|
- A GTK application that draws cursor/touch/tablet positions: https://gitlab.freedesktop.org/libinput/libinput/tree/master/tools/libinput-debug-gui.c
|
||||||
|
|
||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
|
|
@ -88,5 +88,5 @@ libinput is licensed under the MIT license.
|
||||||
> and/or sell copies of the Software, and to permit persons to whom the
|
> and/or sell copies of the Software, and to permit persons to whom the
|
||||||
> Software is furnished to do so, subject to the following conditions: [...]
|
> Software is furnished to do so, subject to the following conditions: [...]
|
||||||
|
|
||||||
See the [COPYING](http://cgit.freedesktop.org/wayland/libinput/tree/COPYING)
|
See the [COPYING](https://gitlab.freedesktop.org/libinput/libinput/tree/master/COPYING)
|
||||||
file for the full license information.
|
file for the full license information.
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ process below. A successful build requires the @ref
|
||||||
building_dependencies to be installed before running meson.
|
building_dependencies to be installed before running meson.
|
||||||
|
|
||||||
@code
|
@code
|
||||||
$> git clone git://anongit.freedesktop.org/git/wayland/libinput
|
$> git clone https://gitlab.freedesktop.org/libinput/libinput
|
||||||
$> cd libinput
|
$> cd libinput
|
||||||
$> meson --prefix=/usr builddir/
|
$> meson --prefix=/usr builddir/
|
||||||
$> ninja -C builddir/
|
$> ninja -C builddir/
|
||||||
|
|
@ -189,7 +189,7 @@ requires the @ref building_dependencies to be installed at configure
|
||||||
time.
|
time.
|
||||||
|
|
||||||
@code
|
@code
|
||||||
$> git clone git://anongit.freedesktop.org/git/wayland/libinput
|
$> git clone https://gitlab.freedesktop.org/libinput/libinput
|
||||||
$> cd libinput
|
$> cd libinput
|
||||||
$> ./autogen.sh --prefix=/usr --libdir=/usr/lib64
|
$> ./autogen.sh --prefix=/usr --libdir=/usr/lib64
|
||||||
$> make
|
$> make
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ the udev property <b>MOUSE_DPI</b> for this information. This property is usuall
|
||||||
set via the <a
|
set via the <a
|
||||||
href="http://cgit.freedesktop.org/systemd/systemd/tree/hwdb/70-mouse.hwdb">udev hwdb</a>.
|
href="http://cgit.freedesktop.org/systemd/systemd/tree/hwdb/70-mouse.hwdb">udev hwdb</a>.
|
||||||
The "mouse-dpi-tool" utility provided by <a
|
The "mouse-dpi-tool" utility provided by <a
|
||||||
href="http://freedesktop.org/wiki/Software/libevdev/">libevdev</a> should be
|
href="https://freedesktop.org/wiki/Software/libevdev/">libevdev</a> should be
|
||||||
used to measure a device's resolution.
|
used to measure a device's resolution.
|
||||||
|
|
||||||
The format of the property for single-resolution mice is:
|
The format of the property for single-resolution mice is:
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
@page reporting_bugs Reporting bugs
|
@page reporting_bugs Reporting bugs
|
||||||
|
|
||||||
A new bug can be filed here:
|
A new bug can be filed here:
|
||||||
https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=libinput
|
https://gitlab.freedesktop.org/libinput/libinput
|
||||||
|
|
||||||
When reporting bugs against libinput, please follow the instructions below
|
When reporting bugs against libinput, please follow the instructions below
|
||||||
and provide the required data. You will need:
|
and provide the required data. You will need:
|
||||||
|
|
@ -182,7 +182,7 @@ E: USEC_INITIALIZED=5463031
|
||||||
@note Where available, the @ref libinput-record tools should be used instead
|
@note Where available, the @ref libinput-record tools should be used instead
|
||||||
of evemu
|
of evemu
|
||||||
|
|
||||||
<a href="http://www.freedesktop.org/wiki/Evemu/">evemu</a> records the
|
<a href="https://www.freedesktop.org/wiki/Evemu/">evemu</a> records the
|
||||||
device capabilities together with the event stream from the kernel. On our
|
device capabilities together with the event stream from the kernel. On our
|
||||||
side, this allows us to recreate a virtual device identical to your device
|
side, this allows us to recreate a virtual device identical to your device
|
||||||
and re-play the event sequence, hopefully triggering the same bug.
|
and re-play the event sequence, hopefully triggering the same bug.
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ even though some hardware can distinguish between that many fingers.
|
||||||
@section tapping_default Tap-to-click default setting
|
@section tapping_default Tap-to-click default setting
|
||||||
|
|
||||||
Tapping is **disabled** by default on most devices, see [this
|
Tapping is **disabled** by default on most devices, see [this
|
||||||
commit](http://cgit.freedesktop.org/wayland/libinput/commit/?id=2219c12c3aa45b80f235e761e87c17fb9ec70eae)
|
commit](https://gitlab.freedesktop.org/libinput/libinput/commit/2219c12c3aa45b80f235e761e87c17fb9ec70eae)
|
||||||
because:
|
because:
|
||||||
- if you don't know that tapping is a thing (or enabled by default), you get
|
- if you don't know that tapping is a thing (or enabled by default), you get
|
||||||
spurious button events that make the desktop feel buggy.
|
spurious button events that make the desktop feel buggy.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
project('libinput', 'c', 'cpp',
|
project('libinput', 'c', 'cpp',
|
||||||
version : '1.11.0',
|
version : '1.11.1',
|
||||||
license : 'MIT/Expat',
|
license : 'MIT/Expat',
|
||||||
default_options : [ 'c_std=gnu99', 'warning_level=2' ],
|
default_options : [ 'c_std=gnu99', 'warning_level=2' ],
|
||||||
meson_version : '>= 0.40.0')
|
meson_version : '>= 0.40.0')
|
||||||
|
|
|
||||||
|
|
@ -2253,6 +2253,9 @@ tp_pair_lid_switch(struct evdev_device *touchpad,
|
||||||
if ((lid_switch->tags & EVDEV_TAG_LID_SWITCH) == 0)
|
if ((lid_switch->tags & EVDEV_TAG_LID_SWITCH) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (touchpad->tags & EVDEV_TAG_EXTERNAL_TOUCHPAD)
|
||||||
|
return;
|
||||||
|
|
||||||
if (tp->lid_switch.lid_switch == NULL) {
|
if (tp->lid_switch.lid_switch == NULL) {
|
||||||
evdev_log_debug(touchpad,
|
evdev_log_debug(touchpad,
|
||||||
"lid_switch: activated for %s<->%s\n",
|
"lid_switch: activated for %s<->%s\n",
|
||||||
|
|
@ -2278,6 +2281,9 @@ tp_pair_tablet_mode_switch(struct evdev_device *touchpad,
|
||||||
if (tp->tablet_mode_switch.tablet_mode_switch)
|
if (tp->tablet_mode_switch.tablet_mode_switch)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (touchpad->tags & EVDEV_TAG_EXTERNAL_TOUCHPAD)
|
||||||
|
return;
|
||||||
|
|
||||||
evdev_log_debug(touchpad,
|
evdev_log_debug(touchpad,
|
||||||
"tablet_mode_switch: activated for %s<->%s\n",
|
"tablet_mode_switch: activated for %s<->%s\n",
|
||||||
touchpad->devname,
|
touchpad->devname,
|
||||||
|
|
|
||||||
|
|
@ -299,10 +299,17 @@ create_pointer_accelerator_filter_trackpoint(int max_hw_delta)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
filter->history_size = ARRAY_LENGTH(filter->history);
|
filter->history_size = ARRAY_LENGTH(filter->history);
|
||||||
filter->scale_factor = 1.0 * TRACKPOINT_DEFAULT_RANGE / max_hw_delta;
|
|
||||||
filter->max_accel = TRACKPOINT_DEFAULT_MAX_ACCEL;
|
filter->max_accel = TRACKPOINT_DEFAULT_MAX_ACCEL;
|
||||||
filter->max_delta = TRACKPOINT_DEFAULT_MAX_DELTA;
|
filter->max_delta = TRACKPOINT_DEFAULT_MAX_DELTA;
|
||||||
|
|
||||||
|
filter->scale_factor = 1.0 * TRACKPOINT_DEFAULT_RANGE / max_hw_delta;
|
||||||
|
|
||||||
|
/* Crop to a maximum 1.0 for the scale factor, otherwise we scale up
|
||||||
|
* events from low-res trackpoints when really we should just take
|
||||||
|
* those as-is.
|
||||||
|
*/
|
||||||
|
filter->scale_factor = min(1.0, filter->scale_factor);
|
||||||
|
|
||||||
filter->base.interface = &accelerator_interface_trackpoint;
|
filter->base.interface = &accelerator_interface_trackpoint;
|
||||||
|
|
||||||
return &filter->base;
|
return &filter->base;
|
||||||
|
|
|
||||||
|
|
@ -991,7 +991,7 @@ main(int argc, char **argv)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
li = tools_open_backend(backend, seat_or_device, verbose, grab);
|
li = tools_open_backend(backend, seat_or_device, verbose, &grab);
|
||||||
if (!li)
|
if (!li)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -958,7 +958,7 @@ main(int argc, char **argv)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
li = tools_open_backend(backend, seat_or_device, verbose, grab);
|
li = tools_open_backend(backend, seat_or_device, verbose, &grab);
|
||||||
if (!li)
|
if (!li)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -251,7 +251,7 @@ static const struct libinput_interface interface = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct libinput *
|
static struct libinput *
|
||||||
tools_open_udev(const char *seat, bool verbose, bool grab)
|
tools_open_udev(const char *seat, bool verbose, bool *grab)
|
||||||
{
|
{
|
||||||
struct libinput *li;
|
struct libinput *li;
|
||||||
struct udev *udev = udev_new();
|
struct udev *udev = udev_new();
|
||||||
|
|
@ -261,7 +261,7 @@ tools_open_udev(const char *seat, bool verbose, bool grab)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
li = libinput_udev_create_context(&interface, &grab, udev);
|
li = libinput_udev_create_context(&interface, grab, udev);
|
||||||
if (!li) {
|
if (!li) {
|
||||||
fprintf(stderr, "Failed to initialize context from udev\n");
|
fprintf(stderr, "Failed to initialize context from udev\n");
|
||||||
goto out;
|
goto out;
|
||||||
|
|
@ -285,12 +285,12 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct libinput *
|
static struct libinput *
|
||||||
tools_open_device(const char *path, bool verbose, bool grab)
|
tools_open_device(const char *path, bool verbose, bool *grab)
|
||||||
{
|
{
|
||||||
struct libinput_device *device;
|
struct libinput_device *device;
|
||||||
struct libinput *li;
|
struct libinput *li;
|
||||||
|
|
||||||
li = libinput_path_create_context(&interface, &grab);
|
li = libinput_path_create_context(&interface, grab);
|
||||||
if (!li) {
|
if (!li) {
|
||||||
fprintf(stderr, "Failed to initialize context from %s\n", path);
|
fprintf(stderr, "Failed to initialize context from %s\n", path);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -315,7 +315,7 @@ struct libinput *
|
||||||
tools_open_backend(enum tools_backend which,
|
tools_open_backend(enum tools_backend which,
|
||||||
const char *seat_or_device,
|
const char *seat_or_device,
|
||||||
bool verbose,
|
bool verbose,
|
||||||
bool grab)
|
bool *grab)
|
||||||
{
|
{
|
||||||
struct libinput *li;
|
struct libinput *li;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ int tools_parse_option(int option,
|
||||||
struct libinput* tools_open_backend(enum tools_backend which,
|
struct libinput* tools_open_backend(enum tools_backend which,
|
||||||
const char *seat_or_device,
|
const char *seat_or_device,
|
||||||
bool verbose,
|
bool verbose,
|
||||||
bool grab);
|
bool *grab);
|
||||||
void tools_device_apply_config(struct libinput_device *device,
|
void tools_device_apply_config(struct libinput_device *device,
|
||||||
struct tools_options *options);
|
struct tools_options *options);
|
||||||
int tools_exec_command(const char *prefix, int argc, char **argv);
|
int tools_exec_command(const char *prefix, int argc, char **argv);
|
||||||
|
|
|
||||||
|
|
@ -220,6 +220,11 @@ libinput:mouse:b0003v04B3p3109*
|
||||||
libinput:mouse:b0003v17EFp6049*
|
libinput:mouse:b0003v17EFp6049*
|
||||||
LIBINPUT_MODEL_LENOVO_SCROLLPOINT=1
|
LIBINPUT_MODEL_LENOVO_SCROLLPOINT=1
|
||||||
|
|
||||||
|
# Lenovo Thinkpad X41 Tablet has lid buttons to be used in tablet mode
|
||||||
|
# (#103749)
|
||||||
|
libinput:name:AT Translated Set 2 keyboard:dmi:*svnIBM:*pvrThinkPadX41Tablet:*
|
||||||
|
LIBINPUT_MODEL_TABLET_MODE_NO_SUSPEND=1
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# LENOVO
|
# LENOVO
|
||||||
##########################################
|
##########################################
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue