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.
This commit is contained in:
worldofpeace 2020-01-18 19:57:10 -05:00
parent 5f594c6a7c
commit afe27e517b
6 changed files with 7 additions and 139 deletions

View file

@ -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

View file

@ -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
];

View file

@ -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
'';
};
}

View file

@ -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;
};
}

View file

@ -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

View file

@ -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 { };