README: full user documentation again, docs/ only technical

The README is the complete user documentation again: features, install,
two sessions, usage, the full options table (and renamed options), every
feature with problem, usage, limitations, security and "remove when",
UI patches at user level (DevTools on the LAN, after a Steam update),
changes outside Nix, rollback and uninstall.

docs/ keeps only the technical side (how the patches work, writing
patches, signatures and the update procedure, the SteamVR debugger
mechanics, cleanup and installer internals), linked from each feature.
docs/options.md, two-sessions.md and desktop-integration.md are gone
(their content is in the README).
This commit is contained in:
Pierre Kisters committed 2026-09-29 00:47:16 +02:00
1 parent 23b79e9499
commit 5a3d0b9d05
13 files changed
+1126 -856

No files matched your search

+12 -28
View File
@@ -1,31 +1,9 @@
# Firefox
# Firefox: how it works
`firefox.enable`: a launcher for the Flathub Firefox Flatpak
(`org.mozilla.firefox`, stable). It shadows the Flatpak's own entry (same
ID), so default-browser associations keep working. Options:
[options.md#firefox](options.md#firefox).
`firefox.*` (module `firefox`). What it does and how to configure it:
README, [Firefox](../README.md#firefox-firefox).
## Options
- **`vrFullscreenFix`** (on): gamescope never shows fullscreen windows, so
Firefox looks frozen. `full-screen-api.ignore-widgets` makes fullscreen
fill just the window. Not applied in the desktop profile. **Remove when**
gamescope shows fullscreen X11 windows in VR.
- **`disableAv1`** (off): `media.av1.enabled = false`. The Frame's decoder
driver (`iris`) has no AV1, only H.264, HEVC and VP9, so YouTube and co.
send VP9/H.264, decoded in hardware, instead of software AV1. **Remove
when** a SteamOS kernel adds AV1 to `iris`.
- **`prefs`:** further `about:config` values for every profile; they can
also override the fixes above.
- **`desktopProfile`** (`"desktop"`): the sessions can't see each other's
Firefox, so a second instance stops at the locked profile; in the nested
desktop the launcher uses this separate profile (a normal Firefox profile
with its own browser data, created on first use). `null`: the default
profile in both sessions.
Changes take effect at the next start of Firefox.
## How it works
## Default prefs
`prefs` and the fixes are *default* values (`pref()`), not user values:
`about:config` can still change them per profile, and nothing is written to
@@ -38,8 +16,12 @@ extension as a link from
to a store directory; Flatpak mounts it itself, so the sandbox doesn't get
`/nix`. (A systemconfig extension of your own would conflict with it.)
The desktop profile undoes the fullscreen fix only while its Firefox runs:
the launcher links the profile's `user.js` to
## Desktop profile
The launcher (a desktop entry with the Flatpak's ID, shadowing its entry)
picks `desktopProfile` when started in the nested desktop. The desktop
profile undoes the fullscreen fix only while its Firefox runs: the launcher
links the profile's `user.js` to
`/app/etc/firefox/steam-frame-nix-desktop-user.js` (a sandbox path) right
before starting Firefox, waits for it, and once it has exited and the
profile is no longer in use removes the link and the value Firefox stored
@@ -48,6 +30,8 @@ Firefox leaves both in place. A `user.js` of your own is never touched (the
fix then stays on in that profile). After a crash, the next launch or
`steam-frame-nix-cleanup` (on switch) removes them.
## Older versions
Older versions linked or copied a `user.js` into every profile; those and
the values they left in `prefs.js` are removed by `steam-frame-nix-cleanup`
on switch, for each profile not in use at that moment.