biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / misc / solaar / default.nix
blob4c2e59b2ab8db30136449b29e47e80dea6e108a4
1 { fetchFromGitHub
2 , lib
3 , gobject-introspection
4 , gtk3
5 , python3Packages
6 , wrapGAppsHook3
7 , gdk-pixbuf
8 , libappindicator
9 , librsvg
12 # Although we copy in the udev rules here, you probably just want to use
13 # `logitech-udev-rules`, which is an alias to `udev` output of this derivation,
14 # instead of adding this to `services.udev.packages` on NixOS,
15 python3Packages.buildPythonApplication rec {
16   pname = "solaar";
17   version = "1.1.13";
19   src = fetchFromGitHub {
20     owner = "pwr-Solaar";
21     repo = "Solaar";
22     rev = "refs/tags/${version}";
23     hash = "sha256-sYJrVAeZi0a7yD0i/zIIxcu9X/c5HvgoI/n50eXD47s=";
24   };
26   outputs = [ "out" "udev" ];
28   nativeBuildInputs = [
29     gdk-pixbuf
30     gobject-introspection
31     wrapGAppsHook3
32   ];
34   buildInputs = [
35     libappindicator
36     librsvg
37   ];
39   propagatedBuildInputs = with python3Packages; [
40     evdev
41     dbus-python
42     gtk3
43     hid-parser
44     psutil
45     pygobject3
46     pyudev
47     pyyaml
48     xlib
49   ];
51   # the -cli symlink is just to maintain compabilility with older versions where
52   # there was a difference between the GUI and CLI versions.
53   postInstall = ''
54     ln -s $out/bin/solaar $out/bin/solaar-cli
56     install -Dm444 -t $udev/etc/udev/rules.d rules.d-uinput/*.rules
57   '';
59   dontWrapGApps = true;
61   preFixup = ''
62     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
63   '';
65   # no tests
66   doCheck = false;
68   pythonImportsCheck = [ "solaar" ];
70   meta = with lib; {
71     description = "Linux devices manager for the Logitech Unifying Receiver";
72     longDescription = ''
73       Solaar is a Linux manager for many Logitech keyboards, mice, and trackpads that
74       connect wirelessly to a USB Unifying, Lightspeed, or Nano receiver, connect
75       directly via a USB cable, or connect via Bluetooth. Solaar does not work with
76       peripherals from other companies.
78       Solaar can be used as a GUI application or via its command-line interface.
80       This tool requires either to be run with root/sudo or alternatively to have the udev rules files installed. On NixOS this can be achieved by setting `hardware.logitech.wireless.enable`.
81     '';
82     homepage = "https://pwr-solaar.github.io/Solaar/";
83     license = licenses.gpl2Only;
84     maintainers = with maintainers; [ spinus ysndr oxalica ];
85     platforms = platforms.linux;
86   };