Loading nixos/modules/module-list.nix +1 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,7 @@ ./programs/ssh.nix ./programs/starship.nix ./programs/steam.nix ./programs/streamcontroller.nix ./programs/streamdeck-ui.nix ./programs/sysdig.nix ./programs/system-config-printer.nix Loading nixos/modules/programs/streamcontroller.nix 0 → 100644 +22 −0 Original line number Diff line number Diff line { config, lib, pkgs, ... }: let cfg = config.programs.streamcontroller; in { options.programs.streamcontroller = { enable = lib.mkEnableOption "StreamController"; package = lib.mkPackageOption pkgs "streamcontroller" { default = [ "streamcontroller" ]; }; }; config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ]; services.udev.packages = [ cfg.package ]; }; meta.maintainers = with lib.maintainers; [ sifmelcara ]; } pkgs/by-name/st/streamcontroller/package.nix 0 → 100644 +190 −0 Original line number Diff line number Diff line { stdenv, lib, python3Packages, fetchFromGitHub, copyDesktopItems, makeDesktopItem, wrapGAppsHook4, gobject-introspection, libadwaita, libportal, libportal-gtk4, xdg-desktop-portal, xdg-desktop-portal-gtk, }: stdenv.mkDerivation rec { pname = "streamcontroller"; # Note that the latest tagged version (1.5.0-beta.6) includes a python dependency # that doesn't exist anymore, so we package an unstable version instead. version = "1.5.0-beta.6-unstable-2024-08-13"; src = fetchFromGitHub { repo = "StreamController"; owner = "StreamController"; rev = "dbb6460a69137af192db09d504224ae9f1127cbd"; hash = "sha256-+YYzHLRU5MNjF3iaKIDj9k4PVg+vnEZhbc3ZmNI7xyw="; }; # The installation method documented upstream # (https://streamcontroller.github.io/docs/latest/installation/) is to clone the repo, # run `pip install`, then run `python3 main.py` to launch the program. # Due to how the code is structured upstream, it's infeasible to use `buildPythonApplication`. dontBuild = true; installPhase = '' runHook preInstall mkdir -p $out/usr/lib/streamcontroller cp -r ./* $out/usr/lib/streamcontroller/ mkdir -p $out/bin/ # Note that the implementation of main.py assumes # working directory to be at the root of the project's source code makeWrapper \ ${python3Packages.python.interpreter} \ $out/bin/streamcontroller \ --add-flags main.py \ --chdir $out/usr/lib/streamcontroller \ --prefix PYTHONPATH : "$PYTHONPATH" mkdir -p "$out/etc/udev/rules.d" cp ./udev.rules $out/etc/udev/rules.d/70-streamcontroller.rules install -D ./flatpak/icon_256.png $out/share/icons/hicolor/256x256/apps/streamcontroller.png runHook postInstall ''; desktopItems = [ (makeDesktopItem { name = "StreamController"; desktopName = "StreamController"; exec = "streamcontroller"; icon = "streamcontroller"; comment = "Control your Elgato Stream Decks"; categories = [ "Utility" ]; }) ]; nativeBuildInputs = [ copyDesktopItems wrapGAppsHook4 gobject-introspection ]; buildInputs = [ libadwaita libportal libportal-gtk4 xdg-desktop-portal xdg-desktop-portal-gtk ] ++ (with python3Packages; [ annotated-types async-lru cairocffi cairosvg certifi cffi charset-normalizer click colorama contourpy cssselect2 cycler dbus-python decorator defusedxml distlib dnspython evdev filelock fonttools fuzzywuzzy gcodepy get-video-properties gitdb idna imageio imageio-ffmpeg indexed-bzip2 jinja2 joblib kiwisolver levenshtein linkify-it-py loguru markdown-it-py markupsafe matplotlib mdit-py-plugins mdurl meson meson-python natsort nltk numpy opencv4 packaging pillow platformdirs plumbum proglog psutil pulsectl pycairo pyclip pycparser pydantic pydantic-core pyenchant pygments pygobject3 pymongo pyparsing pyperclip pyproject-metadata pyro5 pyspellchecker python-dateutil pyudev pyusb pyyaml rapidfuzz regex requests requirements-parser rich rpyc serpent setproctitle six smmap speedtest-cli streamcontroller-plugin-tools streamdeck textual tinycss2 tqdm types-setuptools typing-extensions uc-micro-py urllib3 usb-monitor webencodings websocket-client ]); meta = with lib; { description = "Elegant Linux app for the Elgato Stream Deck with support for plugins"; homepage = "https://core447.com/"; license = licenses.gpl3; mainProgram = "streamcontroller"; maintainers = with maintainers; [ sifmelcara ]; platforms = lib.platforms.linux; }; } pkgs/development/python-modules/streamcontroller-plugin-tools/default.nix 0 → 100644 +33 −0 Original line number Diff line number Diff line { buildPythonPackage, fetchFromGitHub, lib, loguru, rpyc, }: buildPythonPackage rec { pname = "streamcontroller-plugin-tools"; version = "2.0.0"; src = fetchFromGitHub { owner = "StreamController"; repo = "streamcontroller-plugin-tools"; rev = version; hash = "sha256-dQZPRSzHhI3X+Pf7miwJlECGFgUfp68PtvwXAmpq5/s="; }; dependencies = [ loguru rpyc ]; pythonImportsCheck = [ "streamcontroller_plugin_tools" ]; meta = with lib; { description = "StreamController plugin tools"; homepage = "https://github.com/StreamController/streamcontroller-plugin-tools"; license = licenses.gpl3; maintainers = with maintainers; [ sifmelcara ]; platforms = platforms.linux; }; } pkgs/development/python-modules/usb-monitor/default.nix 0 → 100644 +32 −0 Original line number Diff line number Diff line { buildPythonPackage, fetchPypi, lib, pyudev, }: buildPythonPackage rec { pname = "usb-monitor"; version = "1.21"; src = fetchPypi { inherit version; pname = "usb_monitor"; hash = "sha256-M+BUmbNxQWcULFECexTnp55EZiJ6y3bYCEtSwqKldAk="; }; dependencies = [ pyudev ]; # has no tests doCheck = false; pythonImportsCheck = [ "usbmonitor" ]; meta = { description = "Cross-platform library for USB device monitoring"; homepage = "https://github.com/Eric-Canas/USBMonitor"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ sifmelcara ]; platforms = lib.platforms.linux; }; } Loading
nixos/modules/module-list.nix +1 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,7 @@ ./programs/ssh.nix ./programs/starship.nix ./programs/steam.nix ./programs/streamcontroller.nix ./programs/streamdeck-ui.nix ./programs/sysdig.nix ./programs/system-config-printer.nix Loading
nixos/modules/programs/streamcontroller.nix 0 → 100644 +22 −0 Original line number Diff line number Diff line { config, lib, pkgs, ... }: let cfg = config.programs.streamcontroller; in { options.programs.streamcontroller = { enable = lib.mkEnableOption "StreamController"; package = lib.mkPackageOption pkgs "streamcontroller" { default = [ "streamcontroller" ]; }; }; config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ]; services.udev.packages = [ cfg.package ]; }; meta.maintainers = with lib.maintainers; [ sifmelcara ]; }
pkgs/by-name/st/streamcontroller/package.nix 0 → 100644 +190 −0 Original line number Diff line number Diff line { stdenv, lib, python3Packages, fetchFromGitHub, copyDesktopItems, makeDesktopItem, wrapGAppsHook4, gobject-introspection, libadwaita, libportal, libportal-gtk4, xdg-desktop-portal, xdg-desktop-portal-gtk, }: stdenv.mkDerivation rec { pname = "streamcontroller"; # Note that the latest tagged version (1.5.0-beta.6) includes a python dependency # that doesn't exist anymore, so we package an unstable version instead. version = "1.5.0-beta.6-unstable-2024-08-13"; src = fetchFromGitHub { repo = "StreamController"; owner = "StreamController"; rev = "dbb6460a69137af192db09d504224ae9f1127cbd"; hash = "sha256-+YYzHLRU5MNjF3iaKIDj9k4PVg+vnEZhbc3ZmNI7xyw="; }; # The installation method documented upstream # (https://streamcontroller.github.io/docs/latest/installation/) is to clone the repo, # run `pip install`, then run `python3 main.py` to launch the program. # Due to how the code is structured upstream, it's infeasible to use `buildPythonApplication`. dontBuild = true; installPhase = '' runHook preInstall mkdir -p $out/usr/lib/streamcontroller cp -r ./* $out/usr/lib/streamcontroller/ mkdir -p $out/bin/ # Note that the implementation of main.py assumes # working directory to be at the root of the project's source code makeWrapper \ ${python3Packages.python.interpreter} \ $out/bin/streamcontroller \ --add-flags main.py \ --chdir $out/usr/lib/streamcontroller \ --prefix PYTHONPATH : "$PYTHONPATH" mkdir -p "$out/etc/udev/rules.d" cp ./udev.rules $out/etc/udev/rules.d/70-streamcontroller.rules install -D ./flatpak/icon_256.png $out/share/icons/hicolor/256x256/apps/streamcontroller.png runHook postInstall ''; desktopItems = [ (makeDesktopItem { name = "StreamController"; desktopName = "StreamController"; exec = "streamcontroller"; icon = "streamcontroller"; comment = "Control your Elgato Stream Decks"; categories = [ "Utility" ]; }) ]; nativeBuildInputs = [ copyDesktopItems wrapGAppsHook4 gobject-introspection ]; buildInputs = [ libadwaita libportal libportal-gtk4 xdg-desktop-portal xdg-desktop-portal-gtk ] ++ (with python3Packages; [ annotated-types async-lru cairocffi cairosvg certifi cffi charset-normalizer click colorama contourpy cssselect2 cycler dbus-python decorator defusedxml distlib dnspython evdev filelock fonttools fuzzywuzzy gcodepy get-video-properties gitdb idna imageio imageio-ffmpeg indexed-bzip2 jinja2 joblib kiwisolver levenshtein linkify-it-py loguru markdown-it-py markupsafe matplotlib mdit-py-plugins mdurl meson meson-python natsort nltk numpy opencv4 packaging pillow platformdirs plumbum proglog psutil pulsectl pycairo pyclip pycparser pydantic pydantic-core pyenchant pygments pygobject3 pymongo pyparsing pyperclip pyproject-metadata pyro5 pyspellchecker python-dateutil pyudev pyusb pyyaml rapidfuzz regex requests requirements-parser rich rpyc serpent setproctitle six smmap speedtest-cli streamcontroller-plugin-tools streamdeck textual tinycss2 tqdm types-setuptools typing-extensions uc-micro-py urllib3 usb-monitor webencodings websocket-client ]); meta = with lib; { description = "Elegant Linux app for the Elgato Stream Deck with support for plugins"; homepage = "https://core447.com/"; license = licenses.gpl3; mainProgram = "streamcontroller"; maintainers = with maintainers; [ sifmelcara ]; platforms = lib.platforms.linux; }; }
pkgs/development/python-modules/streamcontroller-plugin-tools/default.nix 0 → 100644 +33 −0 Original line number Diff line number Diff line { buildPythonPackage, fetchFromGitHub, lib, loguru, rpyc, }: buildPythonPackage rec { pname = "streamcontroller-plugin-tools"; version = "2.0.0"; src = fetchFromGitHub { owner = "StreamController"; repo = "streamcontroller-plugin-tools"; rev = version; hash = "sha256-dQZPRSzHhI3X+Pf7miwJlECGFgUfp68PtvwXAmpq5/s="; }; dependencies = [ loguru rpyc ]; pythonImportsCheck = [ "streamcontroller_plugin_tools" ]; meta = with lib; { description = "StreamController plugin tools"; homepage = "https://github.com/StreamController/streamcontroller-plugin-tools"; license = licenses.gpl3; maintainers = with maintainers; [ sifmelcara ]; platforms = platforms.linux; }; }
pkgs/development/python-modules/usb-monitor/default.nix 0 → 100644 +32 −0 Original line number Diff line number Diff line { buildPythonPackage, fetchPypi, lib, pyudev, }: buildPythonPackage rec { pname = "usb-monitor"; version = "1.21"; src = fetchPypi { inherit version; pname = "usb_monitor"; hash = "sha256-M+BUmbNxQWcULFECexTnp55EZiJ6y3bYCEtSwqKldAk="; }; dependencies = [ pyudev ]; # has no tests doCheck = false; pythonImportsCheck = [ "usbmonitor" ]; meta = { description = "Cross-platform library for USB device monitoring"; homepage = "https://github.com/Eric-Canas/USBMonitor"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ sifmelcara ]; platforms = lib.platforms.linux; }; }