work in progress
This commit is contained in:
77
pixlit.nix
Normal file
77
pixlit.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
{ lib
|
||||
, python3Packages
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook4
|
||||
, libadwaita
|
||||
, gtk4
|
||||
, gdk-pixbuf
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication {
|
||||
pname = "pixlit";
|
||||
version = "1.0.0";
|
||||
|
||||
src = ./.;
|
||||
|
||||
format = "other"; # plain script — no setup.py / pyproject.toml
|
||||
|
||||
# No compile step needed for pure Python
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
gobject-introspection
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
libadwaita
|
||||
gdk-pixbuf
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
pillow
|
||||
pillow-heif # registers HEIC/HEIF opener with Pillow
|
||||
pygobject3
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
# ── Binary ───────────────────────────────────────────────────────────────
|
||||
install -Dm755 pixlit.py $out/bin/pixlit
|
||||
|
||||
# ── Icons ────────────────────────────────────────────────────────────────
|
||||
install -Dm644 pixlit.svg \
|
||||
$out/share/icons/hicolor/scalable/apps/pixlit.svg
|
||||
|
||||
for size in 128 256 512; do
|
||||
install -Dm644 pixlit-''${size}.png \
|
||||
$out/share/icons/hicolor/''${size}x''${size}/apps/pixlit.png
|
||||
done
|
||||
|
||||
# ── Desktop entry ─────────────────────────────────────────────────────────
|
||||
install -Dm644 /dev/stdin $out/share/applications/pixlit.desktop <<EOF
|
||||
[Desktop Entry]
|
||||
Name=Pixlit
|
||||
Comment=Convert images between HEIC, JPEG, PNG, and WebP
|
||||
Exec=pixlit
|
||||
Icon=pixlit
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Graphics;Photography;
|
||||
MimeType=image/heic;image/heif;image/jpeg;image/png;image/webp;
|
||||
StartupNotify=true
|
||||
EOF
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Image converter supporting HEIC, JPEG, PNG, and WebP";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "pixlit";
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user