feat(nix): psysonic-gdk-session, devShell target dir, nixos-install refresh (#447)

* feat(nix): psysonic-gdk-session package and local cargo layout

- Add psysonic-gdk-session (forceGdkX11=false) to flake packages and apps
- Ignore .build-local/ in cleanSource; set CARGO_TARGET_DIR in devShell shellHook
- Gitignore: result, .build-local, prod.sh (local helper only)
- nixos-install: contributor shell docs use flake devShell only (no shell.nix in tree)

* chore(nix): gitignore local dev.sh, shell.nix, prod.sh

Document optional local helpers in nixos-install.md; keep flake PR free of non-reproducible shell.nix fetchTarball.

* docs(nix): document default vs gdk-session flake packages

Explain x11-wrapped default and optional psysonic-gdk-session trade-offs; extend flake description and one-shot run note.

* docs: quote flake URLs for zsh in README and nixos-install

* docs(changelog): add PR #446 UI bulk ratings and PR #447 Nix flake GDK choice

* docs: remove Nix flake block from README; changelog #447 points to nixos-install only
This commit is contained in:
cucadmuh
2026-05-04 03:44:28 +03:00
committed by GitHub
parent dc7a785f94
commit 4fce491974
5 changed files with 91 additions and 14 deletions
+19 -10
View File
@@ -35,6 +35,9 @@
gst_all_1,
src,
upstreamMeta,
# When true (default), wrapProgram sets GDK_BACKEND=x11 for WebKit stability on many setups.
# When false, GDK follows the session (e.g. native Wayland) — often better HiDPI sizing.
forceGdkX11 ? true,
}:
let
@@ -59,7 +62,8 @@ let
&& !(lib.hasInfix "/target/" f)
&& !(lib.hasInfix "/.git/" f)
&& !(lib.hasInfix "/result/" f)
&& !(lib.hasInfix "/.flatpak-builder/" f);
&& !(lib.hasInfix "/.flatpak-builder/" f)
&& !(lib.hasInfix "/.build-local/" f);
};
npmDeps = fetchNpmDeps {
src = srcClean;
@@ -156,15 +160,20 @@ stdenv.mkDerivation (finalAttrs: {
})
];
postFixup = ''
wrapProgram $out/bin/psysonic \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libayatana-appindicator ]}" \
--prefix GST_PLUGIN_PATH : "${gstPluginPath}" \
--prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \
--set GDK_BACKEND x11 \
--set WEBKIT_DISABLE_COMPOSITING_MODE 1 \
--set WEBKIT_DISABLE_DMABUF_RENDERER 1
'';
postFixup =
let
gdkX11Wrap = lib.optionalString forceGdkX11 ''
--set GDK_BACKEND x11 \
'';
in
''
wrapProgram $out/bin/psysonic \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libayatana-appindicator ]}" \
--prefix GST_PLUGIN_PATH : "${gstPluginPath}" \
--prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \
${gdkX11Wrap}--set WEBKIT_DISABLE_COMPOSITING_MODE 1 \
--set WEBKIT_DISABLE_DMABUF_RENDERER 1
'';
meta = {
description = "Desktop music player for Subsonic-compatible servers";