mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 14:55:43 +00:00
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:
+24
-3
@@ -85,6 +85,27 @@ environment.systemPackages = with pkgs; [
|
||||
];
|
||||
```
|
||||
|
||||
### Linux wrapper: default vs gdk-session
|
||||
|
||||
The flake exposes **two** installable packages on Linux. They are the same build; only the **wrapped runtime environment** differs:
|
||||
|
||||
| Flake attribute | Wrapper behaviour |
|
||||
|----------------|-------------------|
|
||||
| **`psysonic`** (and **`default`**) | Sets **`GDK_BACKEND=x11`** together with the usual WebKit / GStreamer / AppIndicator paths. This is the **recommended default**: it matches the dev shell assumptions and avoids many WebKitGTK + Wayland edge cases. |
|
||||
| **`psysonic-gdk-session`** | **Does not** set `GDK_BACKEND`; GTK follows the session (e.g. native Wayland when available). Can improve **HiDPI sizing** on some desktops, but may cause **black window, broken scrolling, or tray quirks** on other GPU/compositor stacks—the same class of issues described under Linux / WebKit in the in-app Help. **Not default** on purpose. |
|
||||
|
||||
Use the alternate package when you understand that trade-off:
|
||||
|
||||
```nix
|
||||
inputs.psysonic.packages.${system}.psysonic-gdk-session
|
||||
```
|
||||
|
||||
Or one-shot (quote the URL in **zsh** — `?` / `#` are special):
|
||||
|
||||
```bash
|
||||
nix run 'github:Psychotoxical/psysonic#psysonic-gdk-session' -- --help
|
||||
```
|
||||
|
||||
### Pinning a revision, branch, or tag
|
||||
|
||||
- **`main`** (default in the examples above) follows upstream development.
|
||||
@@ -118,10 +139,10 @@ End users who pin **`main`** should run `nix flake update psysonic` (or equivale
|
||||
From any machine with flakes:
|
||||
|
||||
```bash
|
||||
nix run github:Psychotoxical/psysonic
|
||||
nix run 'github:Psychotoxical/psysonic'
|
||||
```
|
||||
|
||||
Same package as `nix build` / `packages.<system>.default`; uses the flake `apps` output.
|
||||
Same as `nix build` / `packages.<system>.default` (the **x11-wrapped** binary); uses the flake `apps` output. For the session-GDK variant, use `'github:Psychotoxical/psysonic#psysonic-gdk-session'` (see [Linux wrapper](#linux-wrapper-default-vs-gdk-session) above). With a branch pin, keep the **whole** `github:…?ref=…#…` string in **single quotes** under **zsh**.
|
||||
|
||||
### Apply configuration
|
||||
|
||||
@@ -158,7 +179,7 @@ From a **flake-enabled** clone of the repo:
|
||||
|
||||
The flake **`devShell`** uses the same **`nixpkgs`** input as **`packages.psysonic`** (see **`flake.nix`**).
|
||||
|
||||
If you prefer **classic `nix-shell`** without evaluating the flake, the repo also provides **`shell.nix`**: it pulls **`nixos-unstable`** via `fetchTarball`, so the nixpkgs pin may **differ** from **`flake.lock`**; use it only when you understand that tradeoff (comments at the top of `shell.nix` describe local Tauri build commands).
|
||||
Optional **local-only** helpers (`dev.sh`, `shell.nix`, `prod.sh`) are **gitignored** — not part of the upstream tree; keep your own copies if you use them (e.g. a small `dev.sh` that runs `nix develop` and `npm run tauri:dev`).
|
||||
|
||||
## Desktop entry
|
||||
|
||||
|
||||
Reference in New Issue
Block a user