{ description = "openlens"; inputs = { nixpkgs = { url = "nixpkgs/nixos-unstable"; }; flake-utils = { url = "github:numtide/flake-utils"; }; }; outputs = { self, nixpkgs, flake-utils, ... }@inputs: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; in { packages = { boatswain = let pname = "boatswain"; version = "0.2.2"; in pkgs.stdenv.mkDerivation { inherit pname version; src = builtins.fetchGit { url = "https://gitlab.gnome.org/World/boatswain"; ref = "refs/tags/${version}"; rev = "3435a5b6feec3e8d6747b0c8066efff85c40eb75"; }; buildInputs = [ pkgs.desktop-file-utils pkgs.meson pkgs.ninja pkgs.pkg-config pkgs.wrapGAppsHook ]; propagatedBuildInputs = [ pkgs.gettext pkgs.gusb pkgs.hidapi pkgs.json-glib pkgs.libadwaita pkgs.libpeas pkgs.libportal-gtk4 pkgs.libsecret pkgs.libsoup_3 ]; meta = { description = "Control Elgato Stream Deck devices."; longDescription = '' * Organize your actions in pages and profiles * Set custom icons to buttons * Play sound effects during your streams * Control OBS Studio using Stream Deck (requires the obs-websocket extension) ''; homepage = "https://gitlab.gnome.org/World/boatswain"; license = pkgs.lib.licenses.gpl3Plus; platforms = pkgs.lib.platforms.all; }; }; }; } ); }