# OpenDeck (Stream Deck software), repackaged from the upstream release .deb. # Not in nixpkgs. It also ships the udev rules that let your user open the # Stream Deck; modules/nixos/apps.nix installs them with services.udev.packages. { lib, stdenv, fetchurl, dpkg, autoPatchelfHook, wrapGAppsHook3, gtk3, webkitgtk_4_1, libayatana-appindicator, libsoup_3, glib-networking, }: stdenv.mkDerivation (finalAttrs: { pname = "opendeck"; version = "2.14.1"; src = fetchurl { url = "https://github.com/nekename/OpenDeck/releases/download/v${finalAttrs.version}/opendeck_${finalAttrs.version}_amd64.deb"; hash = "sha256-67C3lnjOD6Ra1TUsYDpiC89+k6l2toWVLYTutMLaEww="; }; nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook3 ]; buildInputs = [ gtk3 webkitgtk_4_1 libsoup_3 glib-networking ]; unpackPhase = "dpkg-deb -x $src ."; installPhase = '' runHook preInstall mkdir -p $out cp -r usr/* $out/ install -Dm644 etc/udev/rules.d/40-streamdeck.rules $out/lib/udev/rules.d/40-streamdeck.rules runHook postInstall ''; # The tray icon library is opened with dlopen. preFixup = '' gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libayatana-appindicator ]}) ''; meta = { description = "Linux software for the Elgato Stream Deck with Stream Deck plugin support"; homepage = "https://github.com/nekename/OpenDeck"; license = lib.licenses.gpl3Plus; mainProgram = "opendeck"; platforms = [ "x86_64-linux" ]; sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; }; })