14 xdg-desktop-portal-gtk,
16 stdenv.mkDerivation rec {
17 pname = "streamcontroller";
19 version = "1.5.0-beta.7";
20 # We have to hardcode revision because upstream often create multiple releases for the same version number.
21 # This is the commit hash that maps to 1.5.0-beta.7 released on 2024-11-20
22 rev = "45b5bc72f617c5aea306450d6592da66ade53568";
24 src = fetchFromGitHub {
25 repo = "StreamController";
26 owner = "StreamController";
28 hash = "sha256-tgbqURtqp1KbzOfXo4b4Dp3N8Sg8xcUSTwdEFXq+f6w=";
31 # The installation method documented upstream
32 # (https://streamcontroller.github.io/docs/latest/installation/) is to clone the repo,
33 # run `pip install`, then run `python3 main.py` to launch the program.
34 # Due to how the code is structured upstream, it's infeasible to use `buildPythonApplication`.
40 mkdir -p $out/usr/lib/streamcontroller
41 cp -r ./* $out/usr/lib/streamcontroller/
45 # Note that the implementation of main.py assumes
46 # working directory to be at the root of the project's source code
48 ${python3Packages.python.interpreter} \
49 $out/bin/streamcontroller \
51 --chdir $out/usr/lib/streamcontroller \
52 --prefix PYTHONPATH : "$PYTHONPATH"
54 mkdir -p "$out/etc/udev/rules.d"
55 cp ./udev.rules $out/etc/udev/rules.d/70-streamcontroller.rules
57 install -D ./flatpak/icon_256.png $out/share/icons/hicolor/256x256/apps/streamcontroller.png
64 name = "StreamController";
65 desktopName = "StreamController";
66 exec = "streamcontroller";
67 icon = "streamcontroller";
68 comment = "Control your Elgato Stream Decks";
69 categories = [ "Utility" ];
85 xdg-desktop-portal-gtk
87 ++ (with python3Packages; [
169 streamcontroller-plugin-tools
184 description = "Elegant Linux app for the Elgato Stream Deck with support for plugins";
185 homepage = "https://core447.com/";
186 license = licenses.gpl3;
187 mainProgram = "streamcontroller";
188 maintainers = with maintainers; [ sifmelcara ];
189 platforms = lib.platforms.linux;