diff --git a/pkgs/applications/misc/polychromatic/default.nix b/pkgs/applications/misc/polychromatic/default.nix new file mode 100644 index 000000000000..f27902a8aac7 --- /dev/null +++ b/pkgs/applications/misc/polychromatic/default.nix @@ -0,0 +1,108 @@ +{ lib +, fetchFromGitHub +, bash +, cairo +, glib +, qt5 +, hicolor-icon-theme +, gdk-pixbuf +, imagemagick +, desktop-file-utils +, ninja +, meson +, sassc +, ibus +, usbutils +, libxcb +, python3Packages +, gobject-introspection +, gtk3 +, wrapGAppsHook +, libappindicator-gtk3 +}: + +python3Packages.buildPythonApplication rec { + name = "polychromatic"; + version = "0.7.3"; + + format = "other"; + + src = fetchFromGitHub { + owner = "polychromatic"; + repo = "polychromatic"; + rev = "v${version}"; + sha256 = "sha256-H++kQ3Fxw56avEsSE1ctu5p0s50s0eQ+jL5zXS3AA94="; + }; + + postPatch = '' + patchShebangs scripts + + substituteInPlace scripts/build-styles.sh \ + --replace '$(which sassc 2>/dev/null)' '${sassc}/bin/sassc' \ + --replace '$(which sass 2>/dev/null)' '${sassc}/bin/sass' + + substituteInPlace pylib/common.py --replace "/usr/share/polychromatic" "$out/share/polychromatic" + ''; + + preConfigure = '' + scripts/build-styles.sh + ''; + + buildInputs = [ + cairo + hicolor-icon-theme + ]; + + pythonPath = with python3Packages; [ + openrazer + pyqt5 + pyqtwebengine + ]; + + propagatedBuildInputs = with python3Packages; [ + libxcb + colour + colorama + setproctitle + openrazer + openrazer-daemon + requests + ibus + usbutils + pyqt5 + libappindicator-gtk3 + ]; + + nativeBuildInputs = with python3Packages; [ + pyqt5 + desktop-file-utils + qt5.wrapQtAppsHook + wrapGAppsHook + ninja + meson + sassc + ]; + + propagatedNativeBuildInputs = [ + gobject-introspection + gtk3 + gdk-pixbuf + imagemagick + ]; + + makeWrapperArgs = [ + "\${qtWrapperArgs[@]}" + ]; + + meta = with lib; { + homepage = "https://polychromatic.app/"; + description = "Graphical front-end and tray applet for configuring Razer peripherals on GNU/Linux."; + longDescription = '' + Polychromatic is a frontend for OpenRazer that enables Razer devices + to control lighting effects and more on GNU/Linux. + ''; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ evanjs ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ea1d91c782f9..168367a8a598 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24731,6 +24731,8 @@ with pkgs; poly = callPackage ../data/fonts/poly { }; + polychromatic = libsForQt5.callPackage ../applications/misc/polychromatic { }; + polytopes_db = callPackage ../data/misc/polytopes_db { }; pop-gtk-theme = callPackage ../data/themes/pop-gtk { };