Package the Frame Control web UI as an installable Electron Mac app and bring in the tooling built alongside it. - app/: Electron wrapper that starts ui/server.py on a free loopback port, hardened window (sandbox, no navigation, runAsNode fuse off), login-shell PATH so Homebrew tools work from Finder, first-run offer to run connect.sh, ad-hoc signed DMG/zip via electron-builder. - ui/: headset view (OpenVR screenshots), device status, library, Steam "Get games" (owned games, install, store search), Android apps as persistent Lepton instances with a rated F-Droid catalogue and a private compatibility database, Android display controls over ADB, file and clipboard transfer, Flatpaks, remote and power actions. - apk-catalog/, compat-db/, frame/: catalogue build pipeline, Lakebed capsule for compatibility reports, Frame-side launchers. - tests/ and CI: server guard and validation tests plus Steam helper tests, run on Python 3.9 with script and app syntax checks. - Docs: README leads with the Mac app; new Android, panels, Steam games and field-notes docs; security notes on LAN-exposed ADB ports. Screenshot values for the headset's IP and Wi-Fi name are placeholders. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
6.1 KiB
Open questions and on-device checks
Research as of 2026-09-25, eight days after the Frame's retail release (2026-09-18). Most first-party detail comes from Valve's Steamworks developer pages. Searches of Reddit and the Steam forums turned up almost no end-user reports about SSH, desktop streaming, or macOS. Treat that as "not documented yet", not "doesn't work".
Verified on device (2026-09-25)
Checked over SSH from the Mac, read-only, on SteamOS 0.3.0 (VARIANT_ID=vr,
build 20260922.6101926, kernel 6.18, aarch64):
-
1–2. Developer Mode + Set User Password gave working SSH with no terminal steps.
sshdis enabled and active. The user issteamos(inwheel) and the hostname isframe. -
3.
frame.localresolves from the Mac;avahi-daemonis active. -
5.
/etc/ssh/sshd_confighasInclude /etc/ssh/sshd_config.d/*.conf. The existing drop-ins are20-systemd-userdb.confand99-archlinux.conf, so01-frame-keys-only.confwould sort first as intended. (--hardenitself hasn't been run.) -
8. The in-headset desktop is
kwin_wayland+plasmashellnested inside gamescope (1280×800), withXDG_RUNTIME_DIR=/run/user/1000/nested_plasma,WAYLAND_DISPLAY=wayland-0,DISPLAY=:2and a private D-Bus bus. SteamVR (vrserver,vrcompositor) andxrdpare running. -
9.
rsync,flatpak,python3,git,qdbus6andxrdpare present.wl-copy,xclip,xsel,kdeconnect-cli,tailscale,krfbandwayvncare not.paste-to-frame.shnow uses Klipper over D-Bus and round-trips text correctly. -
Flathub is already configured as a system remote; Chromium is the only installed Flatpak.
/is 10 GB (42% used);/homeis 929 GB. -
push.shcopied a test file with rsync. -
10.
install-apps.sh remmina --vnc-host <mac>.localinstalled Remmina as a--userFlatpak over SSH and wrote the profile. The desktop'sXDG_DATA_DIRSincludes the user Flatpak exports, so it shows up in the menu. The Frame can reach the Mac's Screen Sharing port (5900). The Remmina connection itself hasn't been tried in the headset yet (part of 11). -
Panels. An X11 window on gamescope's
:0with its ownSTEAM_GAMEid gets its own SteamVR overlay (valve.steam.desktopgame.<id>). Three were created side by side withpanel-on-frame.sh. See panels.md.
Still open: 4, 6, 7, 11 (in-headset connect), 12–17.
Check on the headset (in order)
- Is Developer Mode available on a retail unit? Valve's pages are aimed at developers. Confirm that Steam Settings → System → Enable Developer Mode and Developer → Set User Password both exist on your OS channel (Stable vs Beta).
- Does SSH work straight after that, with no terminal steps? From the Mac,
run
nc -z frame.local 22, then./scripts/connect.sh. - Does
frame.localresolve from the Mac (mDNS/Avahi)? If not, use the IP and set up a DHCP reservation. - Does SSH stay enabled after a reboot and after an OS update? Also check
that
~/.ssh/authorized_keyssurvives an update. - Is the
sshd_config.dinclude present? Check before--harden:ssh frame 'grep -n Include /etc/ssh/sshd_config'. - What does Steam Link on macOS show when connected to
frame? Is it the VR view, a flat mirror, or the desktop? Does keyboard/mouse input reach the headset? - Does the xrdp session work from Microsoft Windows App on macOS? Valve only documents Windows Remote Desktop Connection. Is clipboard sync supported?
- What kind of session is the in-headset Linux desktop? It could be a
normal Plasma Wayland session (with a
wayland-*socket in/run/user/$(id -u)), X11, or something nested in SteamVR. This decides whetherpaste-to-frame.shworks.ssh frame 'ls /run/user/$(id -u); loginctl list-sessions'. - Are
wl-copy,xclip, andrsyncpresent on the image?ssh frame 'command -v wl-copy xclip rsync flatpak'. - Can Flatpaks be installed
--userover SSH, and do they appear in the headset's desktop? Test with./scripts/install-apps.sh remmina. - Remmina → macOS Screen Sharing: does it connect, and is it usable at
Retina resolutions? Is the pre-seeded profile path
(
~/.var/app/org.remmina.Remmina/data/remmina/) the one Remmina actually reads? - Moonlight Flatpak (aarch64) + Sunshine on macOS: worth trying only if VNC is too slow.
- KDE Connect: is it preinstalled or installable on the Frame, and does it pair with KDE Connect for macOS?
- Bluetooth keyboard pairing on the Frame, for the rare times you do need to type locally.
- ADB: does
adb shellover USB-C from a Mac (not just a Windows PC) reach the Linux side? Does USB power from the Mac cope? - Tailscale: can it be installed persistently (Flatpak? a
userspace
tailscaledin~?) for access off the home LAN? - Floating panels in the headset (see panels.md): do the
panels from
panel-on-frame.shshow up, take input, and offer Float in World / Move / Size? Do floating positions survive closing and reopening the app, or a reboot? LEPTON_NO_CLEANUP=1 %command%as Lepton Development's launch option: do ADB-installed apps survive closing and reopening it?- Typing in Android apps: Lepton has no IME installed. Does the SteamVR
keyboard or a Bluetooth keyboard reach Android text fields, or does an
F-Droid keyboard (installed and enabled with
ime enable/ime set) work? - F-Droid 2.0 (Compose 1.12): does it run? If so, the catalogue can install it instead of 1.17.2.
Unconfirmed claims made in these docs
/homeand/etcpersist across Frame OS updates. This is inferred from Steam Deck behaviour.- The whole Mac → Frame desktop path (VNC → Remmina). Each part is documented separately, but the combination is untested.
- Steam Remote Play with a Mac as host is broken. That's based on community reports, not tested with the Frame.
connect.sh --harden,serve-bootstrap.shandbootstrap-on-frame.shhaven't run against real hardware.