summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/accessibility/mousetweaks/default.nix49
-rw-r--r--pkgs/applications/misc/onboard/default.nix7
-rw-r--r--pkgs/applications/misc/onboard/fix-paths.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix3
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch11
-rw-r--r--pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix5
-rw-r--r--pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch11
-rw-r--r--pkgs/top-level/all-packages.nix4
8 files changed, 98 insertions, 3 deletions
diff --git a/pkgs/applications/accessibility/mousetweaks/default.nix b/pkgs/applications/accessibility/mousetweaks/default.nix
new file mode 100644
index 000000000000..e4fd66679a79
--- /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/applications/misc/onboard/default.nix b/pkgs/applications/misc/onboard/default.nix
index dbd79ba3e1b3..de2f86e9f9a2 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 000000000000..64acc9b138c4
--- /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 '''
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 f51270bcbd20..a6528c95c19c 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 2229302cab7c..272656fae78c 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;
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index 1dfa64ae3732..eeca04eff4e8 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 2229302cab7c..272656fae78c 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;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 67aefc86dce9..81eab30b55d0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1669,6 +1669,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 { };