Files
mirror/docs/kiosk-silverblue/policies.json
T
ducoterra c5da9461a2 docs: the Silverblue kiosk client, installed and checked over SSH
A wall display is now a target client: Fedora Silverblue running GNOME
Kiosk, auto-logged in as kiosk, showing /watch fullscreen in Firefox.
docs/kiosk-silverblue/ carries the idempotent installer, a read-only
checker and a probe that measures what the browser actually renders, so
a second client is a copy-paste and nothing about it needs a keyboard.

The runbook records what the upstream tutorial leaves out: gsettings
only commits from inside the session (gnome-kiosk sets DCONF_PROFILE,
so a system dconf db is never read at all), window-config.ini wins by
being found first and therefore silently loses the shipped notification
rules, AccountsService caches Session= until its daemon restarts, and
/watch survives a bare LAN IP while /mirror cannot.

Verified on the reference client: cold boot back to a subscribed wall in
under 60s, viewport == window == screen at 3840x2160, and the sharer's
own peer connection to it reports connected.

LLM-Generated: true
2026-11-01 19:11:53 -05:00

66 lines
1.7 KiB
JSON

{
"policies": {
"DisableAppUpdate": true,
"DisableFeedbackCommands": true,
"DisableFirefoxAccounts": true,
"DisableFirefoxStudies": true,
"DisableProfileRefresh": true,
"DisableSetDesktopBackground": true,
"DisableSync": true,
"ExtensionUpdate": false,
"NoDefaultBookmarks": true,
"OfferToSaveLogins": false,
"OverrideFirstRunPage": "",
"Preferences": {
"app.shield.optoutstudies.enabled": {
"Value": false,
"Status": "locked"
},
"browser.aboutConfig.showWarning": {
"Value": false,
"Status": "default"
},
"browser.migrate.interactions.bookmarks": {
"Value": false,
"Status": "default"
},
"browser.migrate.interactions.passwords": {
"Value": false,
"Status": "default"
},
"browser.sessionstore.resume_from_crash": {
"Value": false,
"Status": "default"
},
"browser.startup.page": {
"Value": 1,
"Status": "locked"
},
"datareporting.policy.dataSubmissionEnabled": {
"Value": false,
"Status": "locked"
},
"datareporting.policy.dataSubmissionPolicyBypassNotification": {
"Value": true,
"Status": "default"
},
"toolkit.telemetry.enabled": {
"Value": false,
"Status": "locked"
},
"datareporting.healthreport.uploadEnabled": {
"Value": false,
"Status": "locked"
},
"browser.urlbar.suggest.searches": {
"Value": false,
"Status": "locked"
},
"media.autoplay.blocking_policy": {
"Value": 0,
"Status": "locked"
}
}
}
}