diff --git a/pkgs/misc/rivalcfg/default.nix b/pkgs/misc/rivalcfg/default.nix new file mode 100644 index 000000000000..e30f27ddec2a --- /dev/null +++ b/pkgs/misc/rivalcfg/default.nix @@ -0,0 +1,38 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonPackage rec { + pname = "rivalcfg"; + version = "4.8.0"; + + src = fetchFromGitHub { + owner = "flozz"; + repo = "rivalcfg"; + rev = "v${version}"; + sha256 = "sha256-fCl+XY+R+QF7jWLkqii4v0sbXr7xoX3A3upm+XoBAms="; + }; + + propagatedBuildInputs = with python3Packages; [ hidapi setuptools ]; + + checkInputs = [ python3Packages.pytest ]; + checkPhase = "pytest"; + + # tests are broken + doCheck = false; + + # this file has to be copied here instead of generated at build time because + # rivalcfg --update-udev will fail if it detects a supported device but cannot + # access it + # it should probably be regenerated on version bumps + postInstall = '' + set -x + mkdir -p $out/lib/udev/rules.d + substitute ${./rival.rules} $out/lib/udev/rules.d/99-rivalcfg.rules --replace MODE=\"0666\" "MODE=\"0664\", GROUP=\"input\"" + ''; + + meta = with lib; { + description = "Utility program that allows you to configure SteelSeries Rival gaming mice"; + homepage = "https://github.com/flozz/rivalcfg"; + license = licenses.wtfpl; + maintainers = with maintainers; [ ornxka ]; + }; +} diff --git a/pkgs/misc/rivalcfg/rival.rules b/pkgs/misc/rivalcfg/rival.rules new file mode 100644 index 000000000000..c7c2c8fee589 --- /dev/null +++ b/pkgs/misc/rivalcfg/rival.rules @@ -0,0 +1,242 @@ +# Generated by rivalcfg v4.8.0 +# Do not edit this file. It can be regenerated with the following command: +# +# rivalcfg --update-udev + +# SteelSeries Aerox 3 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1836", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1836", MODE="0666" + +# SteelSeries Aerox 3 Wireless (wired mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="183a", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="183a", MODE="0666" + +# SteelSeries Aerox 3 Wireless (2.4 GHz wireless mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1838", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1838", MODE="0666" + +# SteelSeries Aerox 5 Wireless (wired mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1854", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1854", MODE="0666" + +# SteelSeries Aerox 5 Wireless (2.4 GHz wireless mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1852", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1852", MODE="0666" + +# SteelSeries Aerox 9 Wireless (wired mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="185a", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="185a", MODE="0666" + +# SteelSeries Aerox 9 Wireless (2.4 GHz wireless mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1858", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1858", MODE="0666" + +# SteelSeries Kana v2 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="137a", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="137a", MODE="0666" + +# SteelSeries Kinzu v2 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1366", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1366", MODE="0666" + +# SteelSeries Kinzu v2 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1378", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1378", MODE="0666" + +# SteelSeries Prime +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="182e", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="182e", MODE="0666" + +# SteelSeries Prime Rainbow 6 Siege Black Ice Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="182a", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="182a", MODE="0666" + +# SteelSeries Prime CS:GO Neo Noir Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1856", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1856", MODE="0666" + +# SteelSeries Prime Wireless (wired mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1842", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1842", MODE="0666" + +# SteelSeries Prime Wireless (2.4 GHz wireless mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1840", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1840", MODE="0666" + +# SteelSeries Rival 3 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1824", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1824", MODE="0666" + +# SteelSeries Rival 3 (firmware v0.37.0.0) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="184c", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="184c", MODE="0666" + +# SteelSeries Rival 3 Wireless (2.4 GHz mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1830", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1830", MODE="0666" + +# SteelSeries Rival 95 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1706", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1706", MODE="0666" + +# SteelSeries Rival 95 MSI Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1707", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1707", MODE="0666" + +# SteelSeries Rival 95 PC Bang +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1704", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1704", MODE="0666" + +# SteelSeries Rival 100 PC Bang +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1708", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1708", MODE="0666" + +# SteelSeries Rival 100 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1702", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1702", MODE="0666" + +# SteelSeries Rival 100 (Dell China) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="170a", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="170a", MODE="0666" + +# SteelSeries Rival 100 Dota 2 Edition (retail) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="170b", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="170b", MODE="0666" + +# SteelSeries Rival 100 Dota 2 Edition (Lenovo) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="170c", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="170c", MODE="0666" + +# SteelSeries Rival 105 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1814", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1814", MODE="0666" + +# SteelSeries Rival 110 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1729", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1729", MODE="0666" + +# SteelSeries Rival 106 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1816", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1816", MODE="0666" + +# SteelSeries Rival +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1384", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1384", MODE="0666" + +# SteelSeries Rival Dota 2 Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1392", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1392", MODE="0666" + +# SteelSeries Rival 300 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1710", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1710", MODE="0666" + +# SteelSeries Rival 300 Fallout 4 Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1712", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1712", MODE="0666" + +# SteelSeries Rival 300 Evil Geniuses Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="171c", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="171c", MODE="0666" + +# SteelSeries Rival 300 CS:GO Fade Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1394", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1394", MODE="0666" + +# SteelSeries Rival 300 CS:GO Hyper Beast Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="171a", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="171a", MODE="0666" + +# SteelSeries Rival 300 CS:GO Fade Edition (stm32) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1716", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1716", MODE="0666" + +# SteelSeries Rival 300 Acer Predator Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1714", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1714", MODE="0666" + +# SteelSeries Rival 300 HP OMEN Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1718", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1718", MODE="0666" + +# SteelSeries Rival 300S +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1810", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1810", MODE="0666" + +# SteelSeries Rival 310 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1720", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1720", MODE="0666" + +# SteelSeries Rival 310 CS:GO Howl Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="171e", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="171e", MODE="0666" + +# SteelSeries Rival 310 PUBG Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1736", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1736", MODE="0666" + +# SteelSeries Rival 500 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="170e", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="170e", MODE="0666" + +# SteelSeries Rival 600 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1724", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1724", MODE="0666" + +# SteelSeries Rival 600 Dota 2 Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="172e", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="172e", MODE="0666" + +# SteelSeries Rival 650 Wireless (wired mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="172b", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="172b", MODE="0666" + +# SteelSeries Rival 650 Wireless (2.4 GHz wireless mode) +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1726", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1726", MODE="0666" + +# SteelSeries Rival 700 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1700", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1700", MODE="0666" + +# SteelSeries Rival 710 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1730", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1730", MODE="0666" + +# SteelSeries Sensei 310 +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1722", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1722", MODE="0666" + +# SteelSeries Sensei [RAW] +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1369", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1369", MODE="0666" + +# SteelSeries Sensei [RAW] Diablo III Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1362", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1362", MODE="0666" + +# SteelSeries Sensei [RAW] Guild Wars 2 Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="136d", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="136d", MODE="0666" + +# SteelSeries Sensei [RAW] CoD Black Ops II Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="136f", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="136f", MODE="0666" + +# SteelSeries Sensei [RAW] World of Tanks Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1380", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1380", MODE="0666" + +# SteelSeries Sensei [RAW] Heroes of the Storm Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1390", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1390", MODE="0666" + +# SteelSeries Sensei TEN +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1832", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1832", MODE="0666" + +# SteelSeries Sensei TEN CS:GO Neon Rider Edition +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1834", MODE="0666" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="1834", MODE="0666" + + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 61c015fe1334..bca22fbfaba9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -39194,6 +39194,8 @@ with pkgs; ricty = callPackage ../data/fonts/ricty { }; + rivalcfg = callPackage ../misc/rivalcfg { }; + rmfakecloud = callPackage ../servers/rmfakecloud { }; rmfuse = callPackage ../tools/filesystems/rmfuse { };