anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / misc / polychromatic / default.nix
blobad0736c8bc4b6dd8e2dafe339aab4be16ca61580
2   lib,
3   fetchFromGitHub,
4   gettext,
5   ninja,
6   meson,
7   sassc,
8   python3Packages,
9   gobject-introspection,
10   wrapGAppsHook3,
11   libayatana-appindicator,
12   libxcb,
13   qt6,
14   ibus,
15   usbutils,
16   psmisc,
19 python3Packages.buildPythonApplication rec {
20   pname = "polychromatic";
21   version = "0.9.2";
22   format = "other";
24   src = fetchFromGitHub {
25     owner = "polychromatic";
26     repo = "polychromatic";
27     rev = "refs/tags/v${version}";
28     hash = "sha256-eSfyoEu4qQv+R17wgTfATOE1uHkksNxo17btR6swuZo=";
29   };
31   postPatch = ''
32     patchShebangs scripts
33     substituteInPlace scripts/build-styles.sh \
34       --replace-fail '$(which sassc 2>/dev/null)' '${sassc}/bin/sassc' \
35       --replace-fail '$(which sass 2>/dev/null)' '${sassc}/bin/sass'
36     substituteInPlace polychromatic/paths.py \
37       --replace-fail "/usr/share/polychromatic" "$out/share/polychromatic"
38   '';
40   preConfigure = ''
41     scripts/build-styles.sh
42   '';
44   nativeBuildInputs = [
45     gettext
46     gobject-introspection
47     meson
48     ninja
49     sassc
50     wrapGAppsHook3
51     qt6.wrapQtAppsHook
52     qt6.qtbase
53   ];
55   buildInputs = [ qt6.qtwayland ];
57   propagatedBuildInputs = with python3Packages; [
58     colorama
59     colour
60     openrazer
61     pyqt6
62     pyqt6-webengine
63     requests
64     setproctitle
65     libxcb
66     openrazer-daemon
67     ibus
68     usbutils
69   ] ++ [
70     libayatana-appindicator
71     psmisc
72   ];
74   dontWrapGApps = true;
75   dontWrapQtApps = true;
77   makeWrapperArgs = [
78     "\${gappsWrapperArgs[@]}"
79     "\${qtWrapperArgs[@]}"
80   ];
82   meta = with lib; {
83     homepage = "https://polychromatic.app/";
84     description = "Graphical front-end and tray applet for configuring Razer peripherals on GNU/Linux";
85     longDescription = ''
86       Polychromatic is a frontend for OpenRazer that enables Razer devices
87       to control lighting effects and more on GNU/Linux.
88     '';
89     license = licenses.gpl3;
90     platforms = platforms.linux;
91     maintainers = with maintainers; [ evanjs ];
92     mainProgram = "polychromatic-controller";
93   };