trackpoint: Make the device name configurable

Changed files
+12 -3
nixos
modules
+12 -3
nixos/modules/tasks/trackpoint.nix
···
'';
};
+
device = mkOption {
+
default = "TPPS/2 IBM TrackPoint";
+
type = types.str;
+
description = ''
+
The device name of the trackpoint. You can check with xinput.
+
Some newer devices (example x1c6) use "TPPS/2 Elan TrackPoint".
+
'';
+
};
+
};
};
···
(mkIf cfg.enable {
services.udev.extraRules =
''
-
ACTION=="add|change", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/speed}="${toString cfg.speed}", ATTR{device/sensitivity}="${toString cfg.sensitivity}"
+
ACTION=="add|change", SUBSYSTEM=="input", ATTR{name}=="${cfg.device}", ATTR{device/speed}="${toString cfg.speed}", ATTR{device/sensitivity}="${toString cfg.sensitivity}"
'';
system.activationScripts.trackpoint =
''
-
${config.systemd.package}/bin/udevadm trigger --attr-match=name="TPPS/2 IBM TrackPoint"
+
${config.systemd.package}/bin/udevadm trigger --attr-match=name="${cfg.device}"
'';
})
···
services.xserver.inputClassSections =
[''
Identifier "Trackpoint Wheel Emulation"
-
MatchProduct "${if cfg.fakeButtons then "PS/2 Generic Mouse" else "ETPS/2 Elantech TrackPoint|Elantech PS/2 TrackPoint|TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"}"
+
MatchProduct "${if cfg.fakeButtons then "PS/2 Generic Mouse" else "ETPS/2 Elantech TrackPoint|Elantech PS/2 TrackPoint|TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint|${cfg.device}"}"
MatchDevicePath "/dev/input/event*"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"