79 lines
2.2 KiB
Nix
79 lines
2.2 KiB
Nix
{
|
|
description = "GTK controls wrapper for playerctl";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
};
|
|
|
|
outputs = { self, nixpkgs }:
|
|
let
|
|
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
|
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
|
in {
|
|
packages = forAllSystems (system:
|
|
let
|
|
pkgs = import nixpkgs { inherit system; };
|
|
pythonPath = pkgs.python3Packages.makePythonPath ([ pkgs.python3Packages.pygobject3 ]);
|
|
in {
|
|
default = pkgs.stdenv.mkDerivation {
|
|
pname = "playerctl-gtk";
|
|
version = "0.1.0";
|
|
src = self;
|
|
|
|
dontConfigure = true;
|
|
dontBuild = true;
|
|
|
|
nativeBuildInputs = [
|
|
pkgs.wrapGAppsHook
|
|
pkgs.python3
|
|
];
|
|
|
|
buildInputs = [
|
|
pkgs.python3Packages.pygobject3
|
|
pkgs.playerctl
|
|
pkgs.gtk3
|
|
pkgs.gsettings-desktop-schemas
|
|
pkgs.adwaita-icon-theme
|
|
pkgs.gobject-introspection
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
install -Dm755 playerctl_gui.py $out/bin/playerctl-gtk
|
|
patchShebangs $out/bin/playerctl-gtk
|
|
runHook postInstall
|
|
'';
|
|
|
|
preFixup = ''
|
|
gappsWrapperArgs+=(--prefix PYTHONPATH : "${pythonPath}")
|
|
gappsWrapperArgs+=(--prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.playerctl ]})
|
|
'';
|
|
};
|
|
});
|
|
|
|
apps = forAllSystems (system:
|
|
let
|
|
pkg = self.packages.${system}.default;
|
|
in {
|
|
default = {
|
|
type = "app";
|
|
program = "${pkg}/bin/playerctl-gtk";
|
|
};
|
|
});
|
|
|
|
devShells = forAllSystems (system:
|
|
let
|
|
pkgs = import nixpkgs { inherit system; };
|
|
in {
|
|
default = pkgs.mkShell {
|
|
buildInputs = [
|
|
pkgs.python3
|
|
pkgs.python3Packages.pygobject3
|
|
pkgs.playerctl
|
|
pkgs.gtk3
|
|
pkgs.gobject-introspection
|
|
];
|
|
};
|
|
});
|
|
};
|
|
}
|