From fce38e454ba86b5ef3aff2f3be926033112bfa62 Mon Sep 17 00:00:00 2001 From: Kirill Elagin Date: Sun, 3 Nov 2013 13:00:49 +0400 Subject: [PATCH] Make touchpad button mapping configurable --- .../modules/services/x11/hardware/synaptics.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/x11/hardware/synaptics.nix b/nixos/modules/services/x11/hardware/synaptics.nix index 5884e9aa31c8..91e01f2e30b1 100644 --- a/nixos/modules/services/x11/hardware/synaptics.nix +++ b/nixos/modules/services/x11/hardware/synaptics.nix @@ -57,6 +57,13 @@ let cfg = config.services.xserver.synaptics; in description = "Whether to enable tap buttons."; }; + buttonsMap = mkOption { + default = [1 2 3]; + example = [1 3 2]; + description = "Remap touchpad buttons."; + apply = map toString; + }; + palmDetect = mkOption { default = false; example = true; @@ -104,10 +111,13 @@ let cfg = config.services.xserver.synaptics; in Option "MinSpeed" "${cfg.minSpeed}" Option "MaxSpeed" "${cfg.maxSpeed}" Option "AccelFactor" "${cfg.accelFactor}" - Option "TapButton1" "${if cfg.tapButtons then "1" else "0"}" - Option "TapButton2" "${if cfg.tapButtons then "2" else "0"}" - Option "TapButton3" "${if cfg.tapButtons then "3" else "0"}" ${if cfg.tapButtons then "" else ''Option "MaxTapTime" "0"''} + Option "TapButton1" "${builtins.elemAt cfg.buttonsMap 0}" + Option "TapButton2" "${builtins.elemAt cfg.buttonsMap 1}" + Option "TapButton3" "${builtins.elemAt cfg.buttonsMap 2}" + Option "ClickFinger1" "${builtins.elemAt cfg.buttonsMap 0}" + Option "ClickFinger2" "${builtins.elemAt cfg.buttonsMap 1}" + Option "ClickFinger3" "${builtins.elemAt cfg.buttonsMap 2}" Option "VertTwoFingerScroll" "${if cfg.twoFingerScroll then "1" else "0"}" Option "HorizTwoFingerScroll" "${if cfg.twoFingerScroll then "1" else "0"}" Option "VertEdgeScroll" "${if cfg.vertEdgeScroll then "1" else "0"}"