From 08588e7c3facda091c993b59613dcea67c652408 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Wed, 24 Apr 2019 20:26:45 +0200 Subject: [PATCH 1/4] mousetweaks: init at 3.32.0 Solves #39509 --- .../accessibility/mousetweaks/default.nix | 49 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 2 files changed, 53 insertions(+) create mode 100644 pkgs/applications/accessibility/mousetweaks/default.nix diff --git a/pkgs/applications/accessibility/mousetweaks/default.nix b/pkgs/applications/accessibility/mousetweaks/default.nix new file mode 100644 index 00000000000..e4fd66679a7 --- /dev/null +++ b/pkgs/applications/accessibility/mousetweaks/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, pkgconfig +, glib, gtk3, gnome3, gsettings-desktop-schemas, wrapGAppsHook +, libX11, libXtst, libXfixes, libXcursor +}: + +stdenv.mkDerivation rec { + pname = "mousetweaks"; + version = "3.32.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "005fhmvb45sa9mq17dpa23n1xnspiissx5rnpiy7hiqmy3g5rg8f"; + }; + + nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; + + buildInputs = [ + glib gtk3 gsettings-desktop-schemas + libX11 libXtst libXfixes libXcursor + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + }; + }; + + meta = with stdenv.lib; { + description = "Provides mouse accessibility enhancements for the GNOME desktop"; + longDescription = '' + Mousetweaks provides mouse accessibility enhancements for the GNOME + desktop. These enhancements are: + + - It offers a way to perform the various clicks without using any + physical mouse buttons. (Hover Click) + + - It allows users to perform a secondary click by keeping the primary + mouse button pressed for a predetermined amount of time. (Simulated + Secondary Click) + + The features can be activated and configured through the Universal Access + panel of the GNOME Control Center. + ''; + homepage = https://wiki.gnome.org/Projects/Mousetweaks; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.johnazoidberg ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9da14717aae..15737c37c10 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1660,6 +1660,10 @@ in monetdb = callPackage ../servers/sql/monetdb { }; + mousetweaks = callPackage ../applications/accessibility/mousetweaks { + inherit (pkgs.xorg) libX11 libXtst libXfixes; + }; + mp3blaster = callPackage ../applications/audio/mp3blaster { }; mp3fs = callPackage ../tools/filesystems/mp3fs { }; From 9da62cb0b362c1587af5fdd4d776c96bb8bc8dc2 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Thu, 25 Apr 2019 00:11:57 +0200 Subject: [PATCH 2/4] onboard: Depend on mousetweaks --- pkgs/applications/misc/onboard/default.nix | 7 +++++++ pkgs/applications/misc/onboard/fix-paths.patch | 11 +++++++++++ 2 files changed, 18 insertions(+) create mode 100644 pkgs/applications/misc/onboard/fix-paths.patch diff --git a/pkgs/applications/misc/onboard/default.nix b/pkgs/applications/misc/onboard/default.nix index dbd79ba3e1b..de2f86e9f9a 100644 --- a/pkgs/applications/misc/onboard/default.nix +++ b/pkgs/applications/misc/onboard/default.nix @@ -1,5 +1,6 @@ { fetchurl , stdenv +, substituteAll , aspellWithDicts , at-spi2-core ? null , atspiSupport ? true @@ -16,6 +17,7 @@ , intltool , isocodes , libcanberra-gtk3 +, mousetweaks , udev , libxkbcommon , pkgconfig @@ -38,6 +40,10 @@ in python3.pkgs.buildPythonApplication rec { }; patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit mousetweaks; + }) # Allow loading hunspell dictionaries installed in NixOS system path ./hunspell-use-xdg-datadirs.patch ]; @@ -79,6 +85,7 @@ in python3.pkgs.buildPythonApplication rec { hunspell isocodes libcanberra-gtk3 + mousetweaks udev libxkbcommon wrapGAppsHook diff --git a/pkgs/applications/misc/onboard/fix-paths.patch b/pkgs/applications/misc/onboard/fix-paths.patch new file mode 100644 index 00000000000..64acc9b138c --- /dev/null +++ b/pkgs/applications/misc/onboard/fix-paths.patch @@ -0,0 +1,11 @@ +--- a/Onboard/ClickSimulator.py ++++ b/Onboard/ClickSimulator.py +@@ -479,7 +479,7 @@ class CSMousetweaks(ConfigObject, ClickSimulator): + self._daemon_running_notify_callbacks = [] + + def _launch_daemon(self, delay): +- self.launcher.launch_delayed(["mousetweaks"], delay) ++ self.launcher.launch_delayed(["@mousetweaks@/bin/mousetweaks"], delay) + + def _set_connection(self, active): + ''' Update interface object, state and notify listeners ''' From aa7a9523bdfb2f0964e83ba5c045f02e76be31aa Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Thu, 25 Apr 2019 00:36:19 +0200 Subject: [PATCH 3/4] gnome3.gnome-settings-daemon: Use absolute path of mousetweaks See: https://github.com/NixOS/nixpkgs/pull/60176#issuecomment-486401686 --- .../gnome-3/core/gnome-settings-daemon/default.nix | 3 ++- .../core/gnome-settings-daemon/fix-paths.patch | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix index f51270bcbd2..a6528c95c19 100644 --- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix @@ -13,6 +13,7 @@ , libgnomekbd , lcms2 , libpulseaudio +, mousetweaks , alsaLib , libcanberra-gtk3 , upower @@ -48,7 +49,7 @@ stdenv.mkDerivation rec { patches = [ (substituteAll { src = ./fix-paths.patch; - inherit tzdata; + inherit tzdata mousetweaks; }) ]; diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch index 2229302cab7..272656fae78 100644 --- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch +++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch @@ -13,3 +13,14 @@ typedef struct _TzDB TzDB; typedef struct _TzLocation TzLocation; +--- a/plugins/mouse/gsd-mouse-manager.c ++++ b/plugins/mouse/gsd-mouse-manager.c +@@ -118,7 +118,7 @@ set_mousetweaks_daemon (GsdMouseManager *manager, + gboolean run_daemon = dwell_click_enabled || secondary_click_enabled; + + if (run_daemon || manager->priv->mousetweaks_daemon_running) +- comm = g_strdup_printf ("mousetweaks %s", ++ comm = g_strdup_printf ("@mousetweaks@/bin/mousetweaks %s", + run_daemon ? "" : "-s"); + else + return; From 8ffcfdd9a8d62eb7291fc48afc5a6601a22d24d4 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 28 Apr 2019 14:16:44 -0400 Subject: [PATCH 4/4] pantheon.elementary-settings-daemon: Use absolute path of mousetweaks --- .../services/elementary-settings-daemon/default.nix | 5 +++-- .../elementary-settings-daemon/fix-paths.patch | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix index 1dfa64ae373..eeca04eff4e 100644 --- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix +++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix @@ -22,6 +22,7 @@ , libxml2 , libxslt , meson +, mousetweaks , networkmanager , ninja , nss @@ -30,12 +31,12 @@ , pkgconfig , polkit , python3 +, stdenv , substituteAll , systemd , tzdata , upower , wrapGAppsHook -, stdenv }: stdenv.mkDerivation rec { @@ -63,7 +64,7 @@ stdenv.mkDerivation rec { patches = let patchPath = "${src2}/debian/patches"; in [ (substituteAll { src = ./fix-paths.patch; - inherit tzdata; + inherit tzdata mousetweaks; }) "${patchPath}/45_suppress-printer-may-not-be-connected-notification.patch" "${patchPath}/64_restore_terminal_keyboard_shortcut_schema.patch" diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch b/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch index 2229302cab7..272656fae78 100644 --- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch +++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch @@ -13,3 +13,14 @@ typedef struct _TzDB TzDB; typedef struct _TzLocation TzLocation; +--- a/plugins/mouse/gsd-mouse-manager.c ++++ b/plugins/mouse/gsd-mouse-manager.c +@@ -118,7 +118,7 @@ set_mousetweaks_daemon (GsdMouseManager *manager, + gboolean run_daemon = dwell_click_enabled || secondary_click_enabled; + + if (run_daemon || manager->priv->mousetweaks_daemon_running) +- comm = g_strdup_printf ("mousetweaks %s", ++ comm = g_strdup_printf ("@mousetweaks@/bin/mousetweaks %s", + run_daemon ? "" : "-s"); + else + return;