https://github.com/vicondoa/firefox-virgl-vaapi.nix
Nix Firefox wrapper for virgl/virtio-gpu VA-API video decode
https://github.com/vicondoa/firefox-virgl-vaapi.nix
dmabuf firefox linux nix vaapi virgl virtio-gpu
Last synced: 3 days ago
JSON representation
Nix Firefox wrapper for virgl/virtio-gpu VA-API video decode
- Host: GitHub
- URL: https://github.com/vicondoa/firefox-virgl-vaapi.nix
- Owner: vicondoa
- License: apache-2.0
- Created: 2026-06-07T00:13:35.000Z (5 days ago)
- Default Branch: main
- Last Pushed: 2026-06-07T01:32:11.000Z (5 days ago)
- Last Synced: 2026-06-07T03:39:57.044Z (5 days ago)
- Topics: dmabuf, firefox, linux, nix, vaapi, virgl, virtio-gpu
- Language: Nix
- Size: 15.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# firefox-virgl-vaapi.nix
`firefox-virgl-vaapi.nix` packages Firefox with the VA-API/DMABUF settings needed
for virgl/virtio-gpu video decode experiments. It composes the generic
[`virgl-vaapi-compat`](https://github.com/vicondoa/virgl-vaapi-compat) libva
shim and exposes a wrapped Firefox package that still installs the standard
`bin/firefox` command.
The repo is Nix-specific. The generic libva shim lives in
`vicondoa/virgl-vaapi-compat`; this repo owns only Firefox-specific integration:
locked Firefox policies, scoped `LIBVA_*` environment, and a virgl `glxtest`
stub.
## Outputs
```bash
nix build github:vicondoa/firefox-virgl-vaapi.nix#firefox
nix flake check github:vicondoa/firefox-virgl-vaapi.nix
```
Public flake outputs:
| Output | Purpose |
| --- | --- |
| `packages..firefox` / `packages..default` | Wrapped Firefox package exposing `bin/firefox`. |
| `checks..default` | Verifies the package shape, policies, and `glxtest` stub. |
| `overlays.default` | Self-contained overlay that adds `virgl-vaapi-compat`, `wrapFirefoxVirglVaapi`, and replaces `pkgs.firefox` with the wrapped package. |
| `lib.wrapFirefoxVirglVaapi` | Importable wrapper function for downstream flakes that need direct control over arguments. |
The package installs `bin/firefox`. It intentionally does not install
`firefox-virgl` or `firefox-virgl-vaapi` command aliases; downstream systems that
use this package should make it the only Firefox provider in the profile.
The wrapper is compatible with the NixOS `programs.firefox` module's `.override`
path, so downstream modules can still add Firefox policies, native messaging
hosts, and extension configuration.
## Documentation
- [`docs/how-it-works.md`](docs/how-it-works.md)
- [`docs/debugging.md`](docs/debugging.md)
- [`docs/nix.md`](docs/nix.md)
- [`docs/troubleshooting.md`](docs/troubleshooting.md)
- [`docs/removal-criteria.md`](docs/removal-criteria.md)
## License
Apache-2.0. See [`LICENSE`](LICENSE).