summaryrefslogtreecommitdiff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/default.nix1
-rw-r--r--pkgs/solaar-udev-rules/42-logitech-unify-permissions.rules31
-rw-r--r--pkgs/solaar-udev-rules/default.nix14
3 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 1069328..f2bd7c6 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -16,4 +16,5 @@ in {
inherit inputs options;
};
libfprint-2-tod1-vfs0090 = pkgs.callPackage ./libfprint-2-tod1-vfs0090 {};
+ solaar-udev-rules = pkgs.callPackage ./solaar-udev-rules {};
}
diff --git a/pkgs/solaar-udev-rules/42-logitech-unify-permissions.rules b/pkgs/solaar-udev-rules/42-logitech-unify-permissions.rules
new file mode 100644
index 0000000..e52c9b0
--- /dev/null
+++ b/pkgs/solaar-udev-rules/42-logitech-unify-permissions.rules
@@ -0,0 +1,31 @@
+# This rule was added by Solaar.
+#
+# Allows non-root users to have raw access to Logitech devices.
+# Allowing users to write to the device is potentially dangerous
+# because they could perform firmware updates.
+
+ACTION != "add", GOTO="solaar_end"
+SUBSYSTEM != "hidraw", GOTO="solaar_end"
+
+# USB-connected Logitech receivers and devices
+ATTRS{idVendor}=="046d", GOTO="solaar_apply"
+
+# Lenovo nano receiver
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="6042", GOTO="solaar_apply"
+
+# Bluetooth-connected Logitech devices
+KERNELS == "0005:046D:*", GOTO="solaar_apply"
+
+GOTO="solaar_end"
+
+LABEL="solaar_apply"
+
+# Allow any seated user to access the receiver.
+# uaccess: modern ACL-enabled udev
+TAG+="uaccess"
+
+# Grant members of the "plugdev" group access to receiver (useful for SSH users)
+#MODE="0660", GROUP="plugdev"
+
+LABEL="solaar_end"
+# vim: ft=udevrules
diff --git a/pkgs/solaar-udev-rules/default.nix b/pkgs/solaar-udev-rules/default.nix
new file mode 100644
index 0000000..a4148a0
--- /dev/null
+++ b/pkgs/solaar-udev-rules/default.nix
@@ -0,0 +1,14 @@
+{stdenv}:
+stdenv.mkDerivation {
+ name = "solaar-udev-rules";
+
+ src = ./.;
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ installPhase = ''
+ mkdir -p $out/etc/udev/rules.d
+ cp 42-logitech-unify-permissions.rules $out/etc/udev/rules.d
+ '';
+}