Merge pull request #146123 from thiagokokada/libinput-module-fixes

This commit is contained in:
Sandro 2021-11-18 19:44:00 +01:00 committed by GitHub
commit 4f0e1c04eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 55 additions and 6 deletions

View File

@ -13,7 +13,7 @@ let cfg = config.services.xserver.libinput;
example = "/dev/input/event0";
description =
''
Path for ${deviceType} device. Set to null to apply to any
Path for ${deviceType} device. Set to <literal>null</literal> to apply to any
auto-detected ${deviceType}.
'';
};
@ -24,8 +24,8 @@ let cfg = config.services.xserver.libinput;
example = "flat";
description =
''
Sets the pointer acceleration profile to the given profile.
Permitted values are adaptive, flat.
Sets the pointer acceleration profile to the given profile.
Permitted values are <literal>adaptive</literal>, <literal>flat</literal>.
Not all devices support this option or all profiles.
If a profile is unsupported, the default profile for this is used.
<literal>flat</literal>: Pointer motion is accelerated by a constant
@ -38,12 +38,14 @@ let cfg = config.services.xserver.libinput;
accelSpeed = mkOption {
type = types.nullOr types.str;
default = null;
example = "-0.5";
description = "Cursor acceleration (how fast speed increases from minSpeed to maxSpeed).";
};
buttonMapping = mkOption {
type = types.nullOr types.str;
default = null;
example = "1 6 3 4 5 0 7";
description =
''
Sets the logical button mapping for this device, see XSetPointerMapping(3). The string must
@ -58,9 +60,10 @@ let cfg = config.services.xserver.libinput;
calibrationMatrix = mkOption {
type = types.nullOr types.str;
default = null;
example = "0.5 0 0 0 0.8 0.1 0 0 1";
description =
''
A string of 9 space-separated floating point numbers. Sets the calibration matrix to the
A string of 9 space-separated floating point numbers. Sets the calibration matrix to the
3x3 matrix where the first row is (abc), the second row is (def) and the third row is (ghi).
'';
};
@ -68,6 +71,7 @@ let cfg = config.services.xserver.libinput;
clickMethod = mkOption {
type = types.nullOr (types.enum [ "none" "buttonareas" "clickfinger" ]);
default = null;
example = "buttonareas";
description =
''
Enables a click method. Permitted values are <literal>none</literal>,
@ -166,8 +170,9 @@ let cfg = config.services.xserver.libinput;
transformationMatrix = mkOption {
type = types.nullOr types.str;
default = null;
example = "0.5 0 0 0 0.8 0.1 0 0 1";
description = ''
A string of 9 space-separated floating point numbers. Sets the transformation matrix to
A string of 9 space-separated floating point numbers. Sets the transformation matrix to
the 3x3 matrix where the first row is (abc), the second row is (def) and the third row is (ghi).
'';
};

View File

@ -228,9 +228,10 @@ in
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
latestKernel.login = handleTest ./login.nix { latestKernel = true; };
leaps = handleTest ./leaps.nix {};
libinput = handleTest ./libinput.nix {};
libreddit = handleTest ./libreddit.nix {};
lidarr = handleTest ./lidarr.nix {};
libreswan = handleTest ./libreswan.nix {};
lidarr = handleTest ./lidarr.nix {};
lightdm = handleTest ./lightdm.nix {};
limesurvey = handleTest ./limesurvey.nix {};
litestream = handleTest ./litestream.nix {};

38
nixos/tests/libinput.nix Normal file
View File

@ -0,0 +1,38 @@
import ./make-test-python.nix ({ ... }:
{
name = "libinput";
machine = { ... }:
{
imports = [
./common/x11.nix
./common/user-account.nix
];
test-support.displayManager.auto.user = "alice";
services.xserver.libinput = {
enable = true;
mouse = {
naturalScrolling = true;
leftHanded = true;
middleEmulation = false;
horizontalScrolling = false;
};
};
};
testScript = ''
def expect_xserver_option(option, value):
machine.succeed(f"""cat /var/log/X.0.log | grep -F 'Option "{option}" "{value}"'""")
machine.start()
machine.wait_for_x()
machine.succeed("""cat /var/log/X.0.log | grep -F "Using input driver 'libinput'" """)
expect_xserver_option("NaturalScrolling", "on")
expect_xserver_option("LeftHanded", "on")
expect_xserver_option("MiddleEmulation", "off")
expect_xserver_option("HorizontalScrolling", "off")
'';
})

View File

@ -3,6 +3,7 @@
, documentationSupport ? false, doxygen, graphviz # Documentation
, eventGUISupport ? false, cairo, glib, gtk3 # GUI event viewer support
, testsSupport ? false, check, valgrind, python3
, nixosTests
}:
let
@ -76,6 +77,10 @@ stdenv.mkDerivation rec {
doCheck = testsSupport && stdenv.hostPlatform == stdenv.buildPlatform;
passthru.tests = {
libinput-module = nixosTests.libinput;
};
meta = with lib; {
description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver";
homepage = "https://www.freedesktop.org/wiki/Software/libinput/";