anchor.diff:          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.
  +        '';
  +      };
  +
       };
   
     };
  
positive.code:           Identifier "Touchpads"
            Driver "mtrack"
            Option "IgnorePalm" "${if cfg.ignorePalm then "true" else "false"}"
            ${optionalString cfg.invertScroll ''
              Option "ScrollUpButton" "5"
              Option "ScrollDownButton" "4"
              Option "ScrollLeftButton" "7"
              Option "ScrollRightButton" "6"
            ''}
          EndSection
        '';
  
  
negative.code: 
  with lib;
  
  let cfg = config.services.xserver.multitouch;
      disabledTapConfig = ''
        Option "MaxTapTime" "0"
        Option "MaxTapMove" "0"
        Option "TapButton1" "0"
        Option "TapButton2" "0"
        Option "TapButton3" "0"
      '';
  in {
  
    options = {
  
  