about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorArseniy Seroka <jagajaga@users.noreply.github.com>2015-03-11 11:10:51 +0300
committerArseniy Seroka <jagajaga@users.noreply.github.com>2015-03-11 11:10:51 +0300
commit1c58c3a7728e578a004060e7e0cf700d18fafe14 (patch)
tree648244c7f72d2b4a8470e44fc019a59a90d3fb48 /nixos
parente6716cba0d25800d1c6335d4c44e1554f179229c (diff)
parent28a9ed618fd0ec26ca1425892498ae8f77a4b480 (diff)
Merge pull request #6345 from puffnfresh/feature/mtrack-options
Add more options to multitouch (mtrack) module
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/x11/hardware/multitouch.nix44
1 files changed, 41 insertions, 3 deletions
diff --git a/nixos/modules/services/x11/hardware/multitouch.nix b/nixos/modules/services/x11/hardware/multitouch.nix
index 6e6e88e672180..f8386b5e333bf 100644
--- a/nixos/modules/services/x11/hardware/multitouch.nix
+++ b/nixos/modules/services/x11/hardware/multitouch.nix
@@ -2,9 +2,15 @@
 
 with lib;
 
-let cfg = config.services.xserver.multitouch; in
-
-{
+let cfg = config.services.xserver.multitouch;
+    disabledTapConfig = ''
+      Option "MaxTapTime" "0"
+      Option "MaxTapMove" "0"
+      Option "TapButton1" "0"
+      Option "TapButton2" "0"
+      Option "TapButton3" "0"
+    '';
+in {
 
   options = {
 
@@ -30,6 +36,33 @@ let cfg = config.services.xserver.multitouch; in
         description = "Whether to ignore touches detected as being the palm (i.e when typing)";
       };
 
+      tapButtons = mkOption {
+        type = types.bool;
+        default = true;
+        example = false;
+        description = "Whether to enable tap buttons.";
+      };
+
+      buttonsMap = mkOption {
+        type = types.listOf types.int;
+        default = [3 2 0];
+        example = [1 3 2];
+        description = "Remap touchpad buttons.";
+        apply = map toString;
+      };
+
+      additionalOptions = mkOption {
+        type = types.str;
+        default = "";
+        example = ''
+          Option "ScaleDistance" "50"
+          Option "RotateDistance" "60"
+        '';
+        description = ''
+          Additional options for mtrack touchpad driver.
+        '';
+      };
+
     };
 
   };
@@ -46,12 +79,17 @@ let cfg = config.services.xserver.multitouch; in
           Identifier "Touchpads"
           Driver "mtrack"
           Option "IgnorePalm" "${if cfg.ignorePalm then "true" else "false"}"
+          Option "ClickFinger1" "${builtins.elemAt cfg.buttonsMap 0}"
+          Option "ClickFinger2" "${builtins.elemAt cfg.buttonsMap 1}"
+          Option "ClickFinger3" "${builtins.elemAt cfg.buttonsMap 2}"
+          ${optionalString (!cfg.tapButtons) disabledTapConfig}
           ${optionalString cfg.invertScroll ''
             Option "ScrollUpButton" "5"
             Option "ScrollDownButton" "4"
             Option "ScrollLeftButton" "7"
             Option "ScrollRightButton" "6"
           ''}
+          ${cfg.additionalOptions}
         EndSection
       '';