From afe27e517b33110b84cc6d1562fa299fc204dad1 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sat, 18 Jan 2020 19:57:10 -0500 Subject: [PATCH] nixos/multitouch: remove On numerous occasions I have seen users mistake this module as libinput because it being called "multitouch" and them being unaware that the actually module they want is libinput. They then run into several decrepit bugs due to the completely out-of-date nature of the underlying package. The underlying package hasn't been changed to an up-to-date fork in a period of 8 years. I don't consider this to be production quality. However, I'm not opposed for the module being readded to NixOS with new packaging, and a better name. --- nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 5 + .../services/x11/hardware/multitouch.nix | 94 ------------------- .../linux/xf86-input-mtrack/default.nix | 42 --------- pkgs/top-level/aliases.nix | 2 + pkgs/top-level/all-packages.nix | 2 - 6 files changed, 7 insertions(+), 139 deletions(-) delete mode 100644 nixos/modules/services/x11/hardware/multitouch.nix delete mode 100644 pkgs/os-specific/linux/xf86-input-mtrack/default.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index aaff8dcb3301..979b38e3465f 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -871,7 +871,6 @@ ./services/x11/display-managers/xpra.nix ./services/x11/fractalart.nix ./services/x11/hardware/libinput.nix - ./services/x11/hardware/multitouch.nix ./services/x11/hardware/synaptics.nix ./services/x11/hardware/wacom.nix ./services/x11/hardware/digimend.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 94b5530192e3..26de8a18d922 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -29,6 +29,11 @@ with lib; (mkRemovedOptionModule [ "services.fourStoreEndpoint" ] "The fourStoreEndpoint module has been removed") (mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " + "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html")) + (mkRemovedOptionModule [ "services" "xserver" "multitouch" ] '' + services.xserver.multitouch (which uses xf86_input_mtrack) has been removed + as the underlying package isn't being maintained. Working alternatives are + libinput and synaptics. + '') # Do NOT add any option renames here, see top of the file ]; diff --git a/nixos/modules/services/x11/hardware/multitouch.nix b/nixos/modules/services/x11/hardware/multitouch.nix deleted file mode 100644 index c03bb3b494fb..000000000000 --- a/nixos/modules/services/x11/hardware/multitouch.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ config, lib, pkgs, ... }: - -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 = { - - services.xserver.multitouch = { - - enable = mkOption { - default = false; - description = "Whether to enable multitouch touchpad support."; - }; - - invertScroll = mkOption { - default = false; - type = types.bool; - description = "Whether to invert scrolling direction à la OSX Lion"; - }; - - ignorePalm = mkOption { - default = false; - type = types.bool; - description = "Whether to ignore touches detected as being the palm (i.e when typing)"; - }; - - tapButtons = mkOption { - type = types.bool; - default = true; - 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. - ''; - }; - - }; - - }; - - config = mkIf cfg.enable { - - services.xserver.modules = [ pkgs.xf86_input_mtrack ]; - - services.xserver.config = - '' - # Automatically enable the multitouch driver - Section "InputClass" - MatchIsTouchpad "on" - Identifier "Touchpads" - Driver "mtrack" - Option "IgnorePalm" "${boolToString cfg.ignorePalm}" - 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 - ''; - - }; - -} diff --git a/pkgs/os-specific/linux/xf86-input-mtrack/default.nix b/pkgs/os-specific/linux/xf86-input-mtrack/default.nix deleted file mode 100644 index 2897e9200fd7..000000000000 --- a/pkgs/os-specific/linux/xf86-input-mtrack/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - stdenv -, fetchurl -, utilmacros -, pkgconfig -, mtdev -, xorgserver -, xorgproto -, pixman -, autoreconfHook -}: - -stdenv.mkDerivation { - name = "xf86-input-mtrack-0.3.0"; - - buildInputs = [ - utilmacros - pkgconfig - mtdev - xorgserver - xorgproto - pixman - autoreconfHook - ]; - - CFLAGS = "-I${pixman}/include/pixman-1"; - - src = fetchurl { - name = "xf86-input-mtrack.tar.gz"; - url = "https://github.com/BlueDragonX/xf86-input-mtrack/tarball/v0.3.0"; - sha256 = "174rdw7gv0wsnjgmwpx4pgjn1zfbylflda4k2dzff6phzxj9yl6v"; - }; - - meta = { - homepage = https://github.com/BlueDragonX/xf86-input-mtrack; - - description = "An Xorg driver for multitouch trackpads"; - - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 68dfe49545a4..b45ddc6f5065 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -475,6 +475,8 @@ mapAliases ({ xbmcPlugins = kodiPlugins; # added 2018-04-25 xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01 xf86_video_nouveau = xorg.xf86videonouveau; # added 2015-09 + xf86_input_mtrack = throw ("xf86_input_mtrack has been removed from nixpkgs as it hasn't been maintained" + + "and is broken. Working alternatives are libinput and synaptics."); xlibs = xorg; # added 2015-09 xpraGtk3 = xpra; # added 2018-09-13 youtubeDL = youtube-dl; # added 2014-10-26 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 37829bedefbf..b407fa483f35 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17217,8 +17217,6 @@ in xf86_input_cmt = callPackage ../os-specific/linux/xf86-input-cmt { }; - xf86_input_mtrack = callPackage ../os-specific/linux/xf86-input-mtrack { }; - xf86_input_multitouch = callPackage ../os-specific/linux/xf86-input-multitouch { }; xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };