From afe27e517b33110b84cc6d1562fa299fc204dad1 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sat, 18 Jan 2020 19:57:10 -0500 Subject: [PATCH 1/2] 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 aaff8dcb330..979b38e3465 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 94b5530192e..26de8a18d92 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 c03bb3b494f..00000000000 --- 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 2897e9200fd..00000000000 --- 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 68dfe49545a..b45ddc6f506 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 37829bedefb..b407fa483f3 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 { }; From b7b4e443fcb3b5cf69ba832e529b1bbc7e574afd Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sat, 18 Jan 2020 19:59:25 -0500 Subject: [PATCH 2/2] xf86_input_multitouch: remove The source repo doesn't exist and it hasn't been touched in 8 years. There is also no module to interface with it in NixOS. --- .../linux/xf86-input-multitouch/default.nix | 48 ------------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 3 files changed, 1 insertion(+), 50 deletions(-) delete mode 100644 pkgs/os-specific/linux/xf86-input-multitouch/default.nix diff --git a/pkgs/os-specific/linux/xf86-input-multitouch/default.nix b/pkgs/os-specific/linux/xf86-input-multitouch/default.nix deleted file mode 100644 index 71242348f68..00000000000 --- a/pkgs/os-specific/linux/xf86-input-multitouch/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ stdenv -, fetchgit -, mtdev -, pixman -, xorg -, libpciaccess -}: - -stdenv.mkDerivation { - name = "xf86-input-multitouch-20110312"; - - src = fetchgit { - url = http://bitmath.org/git/multitouch.git; - rev = "4d87c041f6a232aa30528d70d4b9946d1824b4ed"; - sha256 = "1jh52d3lkmchn5xdbz4qn50d30nild1zxvfbvwwl2rbmphs5ww6y"; - }; - - # Configuration from http://bitmath.org/code/multitouch/ - confFile = '' - Section "InputClass" - MatchIsTouchpad "true" - Identifier "Multitouch Touchpad" - Driver "multitouch" - EndSection - ''; - - buildInputs = with xorg; [ - mtdev xorgproto libpciaccess libxcb - ]; - - buildPhase = '' - make INCLUDE="$NIX_CFLAGS_COMPILE -I${xorg.xorgserver.dev}/include/xorg -I${pixman}/include/pixman-1 -Iinclude" - ''; - - installPhase = '' - make DESTDIR="$out" LIBDIR="lib" install - mkdir -p $out/include/xorg - echo -n "$confFile" > $out/include/xorg/10-multitouch.conf - ''; - - meta = { - homepage = http://bitmath.org/code/multitouch/; - - description = "Brings multitouch gestures to the Linux desktop"; - - license = stdenv.lib.licenses.gpl2; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index b45ddc6f506..c64b56dd5ce 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -477,6 +477,7 @@ mapAliases ({ 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."); + xf86_input_multitouch = throw "xf86_input_multitouch has been removed from nixpkgs."; # added 2020-01-20 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 b407fa483f3..0ed67ddd3d1 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_multitouch = callPackage ../os-specific/linux/xf86-input-multitouch { }; - xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { }; xf86_video_nested = callPackage ../os-specific/linux/xf86-video-nested { };