Nix packaging for A2Tools DPS Meter
Find a file
irabrine 13f469149a Package GStreamer audio plugins for WebKitGTK Web Audio
WebKitGTK's Web Audio backend instantiates autoaudiosink from
gst-plugins-good and also needs the gst-plugins-base audio elements.
The app wrapper only exposed the Tauri asset plugin, so the event-timer
plugin could not create an audio sink and its alerts were silent.

Add gst-plugins-base and gst-plugins-good to buildInputs and prepend
their plugin directories to GST_PLUGIN_SYSTEM_PATH_1_0 in the wrapper.
Add a flake check that verifies autoaudiosink and pulsesink resolve from
that path and that the built wrapper embeds it.
2026-10-24 19:38:39 +00:00
.gitignore Package A2Tools DPS Meter 2.0.75 2026-10-22 04:50:30 +00:00
flake.lock Package A2Tools DPS Meter 2.0.75 2026-10-22 04:50:30 +00:00
flake.nix Package GStreamer audio plugins for WebKitGTK Web Audio 2026-10-24 19:38:39 +00:00
README.md Package A2Tools DPS Meter 2.0.75 2026-10-22 04:50:30 +00:00

A2Tools DPS Meter (Nix flake)

Unofficial Nix packaging of taengu/A2Tools-DPS-Meter, a real-time DPS meter and overlay for AION 2. It captures game network packets to show damage, skills and combat statistics. Upstream is a Tauri 2 desktop app (Rust backend in src-tauri, Vite/TypeScript frontend), not an egui binary.

This repository is flake-only: the pinned upstream source is fetched and built by Nix; no upstream source is vendored.

  • Upstream version: 2.0.75
  • Pinned revision: a8150354f2f418fb7058578e107cf6648bfc6851 (tag v2.0.75)
  • Main binary: a2tools-dps-meter
  • License: GPL-3.0 (upstream LICENSE)

Run

From this checkout:

nix run .#

or by path:

nix run /home/ira/lab/a2tools-dps-meter

nix run starts the GUI. For a build only:

nix build .#
./result/bin/a2t-inspect --help   # non-GUI smoke check

The package also installs the upstream helper binaries in result/bin/: a2tools-hotkeys, a2t-inspect, a2t-probe, a2t-roster and a2t-derive.

Update the pin

  1. Choose the new upstream tag (for example v2.0.76) from the releases page, and resolve it to a full commit SHA.

  2. Update version and rev in flake.nix.

  3. Refresh the source hash:

    nix flake prefetch --json github:taengu/A2Tools-DPS-Meter/<rev>
    

    Put the returned hash into srcHash.

  4. Set cargoHash and the npmDeps hash back to nixpkgs.lib.fakeHash, run nix build .#, and copy the two reported got: sha256-... values into cargoHash and the fetchNpmDeps hash respectively.

  5. Optionally run nix flake update nixpkgs, then rebuild.

Caveats

  • x86_64-linux only. Packaging Tauri pulls in a large Rust dependency tree (several hundred crates) plus a Node/Vite frontend build; the first build is slow.
  • GTK3/WebKitGTK 4.1 and the rest of the desktop environment are wired up with wrapGAppsHook3; libpcap and libX11 are added to the wrapper's LD_LIBRARY_PATH because upstream loads them with dlopen.
  • Packet capture needs libpcap at runtime and CAP_NET_RAW. Upstream suggests sudo setcap cap_net_raw=ep <meter path>. On NixOS, setcap on a store path does not survive rebuilds; use a systemd unit or another capability wrapper.
  • AION 2 itself runs through Proton; the meter is a native Linux application.
  • The main binary has no --help/headless mode, so the build is smoke-tested with a2t-inspect --help and an ldd check, without launching the GUI.
  • The data tables from upstream src/data are installed as Tauri resources and exposed through the expected $out/lib/a2tools-dps-meter resource path.