nixpkgs/pkgs/by-name/co/coppwr/package.nix
2024-05-08 18:16:11 +09:00

79 lines
1.9 KiB
Nix

{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, libxkbcommon
, pipewire
, libGL
, wayland
, xorg
, vulkan-loader
}:
rustPlatform.buildRustPackage rec {
pname = "coppwr";
version = "1.6.0";
src = fetchFromGitHub {
owner = "dimtpap";
repo = "coppwr";
rev = version;
hash = "sha256-7z1b++itHoqVX5KB9gv6dMAzq1j7VDGYzuJArUDPlD4=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"egui_node_graph-0.4.0" = "sha256-VtHgKWh+bHSFltNgYaFmYhZW9tqwiWJjiCCspeKgSXQ=";
"libspa-0.8.0" = "sha256-X8mwLtuPuMxZY71GNPAgiJGJ9JNMj7AbCliXiBxJ4vQ=";
};
};
nativeBuildInputs = [
pkg-config
rustPlatform.bindgenHook
];
buildInputs = [
libxkbcommon
pipewire
libGL
wayland
xorg.libXcursor
xorg.libXi
xorg.libXrandr
xorg.libX11
vulkan-loader
];
preBuild = ''
mkdir -p $out/share/{applications,icons/hicolor/scalable/apps,metainfo}
install -m 444 \
-D $src/assets/io.github.dimtpap.coppwr.desktop \
-t $out/share/applications
install -m 444 \
-D $src/assets/io.github.dimtpap.coppwr.metainfo.xml \
-t $out/share/metainfo
cp $src/assets/icon/scalable.svg $out/share/icons/hicolor/scalable/apps/io.github.dimtpap.coppwr.svg
for size in 32 48 64 128 256 512; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
cp $src/assets/icon/"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/io.github.dimtpap.coppwr.png
done
'';
postFixup = ''
patchelf $out/bin/${pname} \
--add-rpath ${lib.makeLibraryPath [ libGL libxkbcommon wayland ]}
'';
meta = with lib; {
description = "Low level control GUI for the PipeWire multimedia server";
homepage = "https://github.com/dimtpap/coppwr";
license = licenses.gpl3Only;
maintainers = with maintainers; [ ravenz46 ];
platforms = platforms.linux;
mainProgram = "coppwr";
};
}