2018-06-14 11:54:52 +10:00
|
|
|
# Do not edit this file, it will be overwritten on update
|
|
|
|
|
|
Implement a quirks system to replace the udev property parsing
Previously, we had all extra device information ("This is an Apple Touchpad",
"This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with
the hwdb is that updating it is nontrivial for the average user and debugging
when things go wrong is even harder. Plus, the hwdb has a matching scheme that
is unpredictable unless one is familiar with the implementation.
This patch set moves the hwdb entries into .ini style text files, with a
simple line-based parser. A new libinput list-quirks tool can list the quirks
applied to any given device, in --verbose mode it prints all matches as they
apply or not apply.
The data files are currently unused by libinput, that comes in a later patch.
They're installed though, the defaults point to the /usr/share/libinput
directory and for *temporary* local overrides the single file
/etc/libinput/local-overrides.quirks.
Failure to parse any file is a hard failure for the quirks system, but if the
local override file doesn't exist that's fine.
THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via
the libinput_device_config_* calls. There is no API guarantee for these files,
think of them as source code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21 14:28:53 +10:00
|
|
|
[Microsoft Surface 3 Lid Switch]
|
|
|
|
|
MatchName=*Lid Switch*
|
|
|
|
|
MatchDMIModalias=dmi:*svnMicrosoftCorporation:pnSurface3:*
|
|
|
|
|
AttrLidSwitchReliability=write_open
|
|
|
|
|
|
2020-12-15 12:39:23 +09:00
|
|
|
# Matches both Surface Laptop keyboards as well as type covers.
|
|
|
|
|
# i.e.
|
|
|
|
|
# - Surface 3: Microsoft Surface 3 Type Cover Keyboard
|
|
|
|
|
# - Surface Laptop 3: Microsoft Surface 045E:09AE Keyboard
|
|
|
|
|
# - Surface Book 2: Microsoft Surface Keyboard
|
|
|
|
|
[Microsoft Surface Keyboard]
|
|
|
|
|
MatchName=*Microsoft Surface *Keyboard*
|
|
|
|
|
MatchDMIModalias=dmi:*svnMicrosoftCorporation:*
|
Implement a quirks system to replace the udev property parsing
Previously, we had all extra device information ("This is an Apple Touchpad",
"This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with
the hwdb is that updating it is nontrivial for the average user and debugging
when things go wrong is even harder. Plus, the hwdb has a matching scheme that
is unpredictable unless one is familiar with the implementation.
This patch set moves the hwdb entries into .ini style text files, with a
simple line-based parser. A new libinput list-quirks tool can list the quirks
applied to any given device, in --verbose mode it prints all matches as they
apply or not apply.
The data files are currently unused by libinput, that comes in a later patch.
They're installed though, the defaults point to the /usr/share/libinput
directory and for *temporary* local overrides the single file
/etc/libinput/local-overrides.quirks.
Failure to parse any file is a hard failure for the quirks system, but if the
local override file doesn't exist that's fine.
THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via
the libinput_device_config_* calls. There is no API guarantee for these files,
think of them as source code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21 14:28:53 +10:00
|
|
|
AttrKeyboardIntegration=internal
|
|
|
|
|
|
2021-09-06 18:51:01 +02:00
|
|
|
[Microsoft Surface Cover]
|
|
|
|
|
MatchName=*Microsoft Surface *Cover*
|
|
|
|
|
MatchDMIModalias=dmi:*svnMicrosoftCorporation:*
|
|
|
|
|
AttrKeyboardIntegration=internal
|
2025-08-08 00:39:06 +01:00
|
|
|
AttrEventCode=-BTN_0;
|
2021-09-06 18:51:01 +02:00
|
|
|
|
2022-07-05 01:24:21 +02:00
|
|
|
[Microsoft Surface Laptop Studio Touchpad]
|
|
|
|
|
MatchVendor=0x045E
|
|
|
|
|
MatchProduct=0x09AF
|
|
|
|
|
MatchUdevType=touchpad
|
|
|
|
|
AttrPressureRange=25:10
|
|
|
|
|
AttrPalmPressureThreshold=500
|
|
|
|
|
|
quirks: Add quirks to improve tablet-mode on the Surface Laptop Studio
The Microsoft Surface Laptop Studio can operate in multiple postures. In
one of these, dubbed "slate/tent", the screen is angled roughly 45°,
covering the keyboard but not the touchpad. Unfortunately, this state is
(as far as we can tell) indiscernible to the display being flipped 180°
backwards (dubbed "slate/flipped"), where the keyboard points away from
the user and is now behind the screen.
Due to this, it makes sense to enable tablet-mode in this (general)
"slate" state, which is what the corresponding kernel driver currently
does. This, for example, can tell desktop environments to bring up a
touch keyboard in certain situations and to allow for automatic screen
rotation (which is required in the "flipped" mode).
Unfortunately, libinput disables all integrated peripherals, including
the touchpad, when tablet-mode is on, rendering the touchpad unusable in
the "slate/tent" state. Therefore, set ModelTabletModeNoSuspend=1 to
keep the touchpad functional. For simplicity, apply this quirk to all
input devices on the Surface Laptop Studio. Those are already disabled
by firmware in the respective postures, meaning things work well without
suspension by libinput.
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
2022-07-05 01:33:04 +02:00
|
|
|
[Microsoft Surface Laptop Studio Built-In Peripherals]
|
|
|
|
|
MatchName=*Microsoft Surface*
|
|
|
|
|
MatchDMIModalias=dmi:*svnMicrosoftCorporation:*pnSurfaceLaptopStudio
|
|
|
|
|
ModelTabletModeNoSuspend=1
|
|
|
|
|
|
Implement a quirks system to replace the udev property parsing
Previously, we had all extra device information ("This is an Apple Touchpad",
"This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with
the hwdb is that updating it is nontrivial for the average user and debugging
when things go wrong is even harder. Plus, the hwdb has a matching scheme that
is unpredictable unless one is familiar with the implementation.
This patch set moves the hwdb entries into .ini style text files, with a
simple line-based parser. A new libinput list-quirks tool can list the quirks
applied to any given device, in --verbose mode it prints all matches as they
apply or not apply.
The data files are currently unused by libinput, that comes in a later patch.
They're installed though, the defaults point to the /usr/share/libinput
directory and for *temporary* local overrides the single file
/etc/libinput/local-overrides.quirks.
Failure to parse any file is a hard failure for the quirks system, but if the
local override file doesn't exist that's fine.
THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via
the libinput_device_config_* calls. There is no API guarantee for these files,
think of them as source code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21 14:28:53 +10:00
|
|
|
[Microsoft Nano Transceiver v2.0]
|
|
|
|
|
MatchUdevType=mouse
|
|
|
|
|
MatchBus=usb
|
|
|
|
|
MatchVendor=0x045E
|
2018-09-17 20:49:03 +10:00
|
|
|
MatchProduct=0x0800
|
Implement a quirks system to replace the udev property parsing
Previously, we had all extra device information ("This is an Apple Touchpad",
"This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with
the hwdb is that updating it is nontrivial for the average user and debugging
when things go wrong is even harder. Plus, the hwdb has a matching scheme that
is unpredictable unless one is familiar with the implementation.
This patch set moves the hwdb entries into .ini style text files, with a
simple line-based parser. A new libinput list-quirks tool can list the quirks
applied to any given device, in --verbose mode it prints all matches as they
apply or not apply.
The data files are currently unused by libinput, that comes in a later patch.
They're installed though, the defaults point to the /usr/share/libinput
directory and for *temporary* local overrides the single file
/etc/libinput/local-overrides.quirks.
Failure to parse any file is a hard failure for the quirks system, but if the
local override file doesn't exist that's fine.
THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via
the libinput_device_config_* calls. There is no API guarantee for these files,
think of them as source code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21 14:28:53 +10:00
|
|
|
ModelBouncingKeys=1
|
2025-06-22 10:52:47 -04:00
|
|
|
|
|
|
|
|
[Microsoft Surface Pro 10 with Flex Keyboard Touchpad]
|
|
|
|
|
MatchVendor=0x045E
|
|
|
|
|
MatchProduct=0x0C8D
|
|
|
|
|
MatchUdevType=touchpad
|
|
|
|
|
AttrEventCode=-BTN_RIGHT
|