mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 05:02:50 +02:00
- docs/recovery-and-images.md: where Valve's Frame images are (not linked from the SteamOS download page), file names, sizes and our checksums, the GPT layout with exact start sectors, what's in rootfs-A (btrfs, SteamOS 0.3.0 build 20260922.5152327, users, sudo and sshd config), extracting it, running it without the headset, and Valve/Collabora's Holo Core aarch64 preview. - how-the-frame-works.md: correct the recovery image file names; add verified facts on the SSH server, tools on the image (no adb), Lepton instances as podman containers, going off the network when asleep, and the battery reading at full charge. - ssh.md: pairing from an iPhone and why devkit RSA pairing doesn't fit it. - open-questions.md, README.md and the steam-frame skill point to the new pages. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
3.0 KiB
3.0 KiB
name, description
| name | description |
|---|---|
| steam-frame | Operate the user's Valve Steam Frame headset from the Mac through this repo's helpers and field notes. Use for Steam Frame SSH, screen streaming, clipboard, file push, APK or Flatpak installs, launching apps on the headset, arranging floating windows or panels in VR space, or debugging SteamOS/gamescope/SteamVR on the Frame. |
Steam Frame
SSH works through the frame alias
(user steamos). The headset has to be awake for anything that touches its
desktop or panels.
Start here
- Read
docs/how-the-frame-works.md. It's the map: the layer cake (SteamVR → gamescope → nested Plasma), the verified facts, and debug recipes. - Open the topic doc for the task:
| Task | Doc | Script |
|---|---|---|
| Floating windows in the room, one panel per app | docs/panels.md |
scripts/panel-on-frame.sh |
| First-time access, SSH keys | docs/ssh.md |
scripts/connect.sh |
| See the Frame from the Mac, or the Mac inside the Frame | docs/streaming.md |
scripts/run-on-frame.sh mac-screen |
| Files and clipboard | docs/file-transfer.md |
scripts/push.sh, scripts/paste-to-frame.sh |
| Android apps (Lepton) | docs/apks.md |
scripts/install-apk.sh |
| Reach the Frame off the home LAN (Tailscale) | docs/tailscale.md |
scripts/tailscale-on-frame.sh |
| Install or buy Steam games, Frame ratings | docs/steam-games.md |
ui/frame_steam.py |
| Flatpaks | docs/streaming.md |
scripts/install-apps.sh |
| Launch an app inside the desktop panel | the script's header comment | scripts/run-on-frame.sh |
| Mac GUI over all of this | README.md → Frame Control |
scripts/frame-ui.sh |
iPhone/iPad app (server runs on the Frame, FRAME_LOCAL=1) |
docs/iphone.md |
ios/, ui/local-bin/ssh |
| Recovery images, factory reset, boot loops | docs/recovery-and-images.md, docs/how-the-frame-works.md |
~/Downloads/steam-frame-recovery/ |
| Test without the headset (the Frame OS image's own sshd) | tests/frame-container/README.md |
tests/frame-container/frame-image.sh |
| What's still unverified | docs/open-questions.md |
— |
Each script's usage is in its header comment. Read the header rather than
running --help: paste-to-frame.sh, serve-bootstrap.sh and
bootstrap-on-frame.sh act on any argument.
Ground rules
- Label every claim verified (seen on the device, with the date and
SteamOS build) or inferred. The docs use this convention. Keep it, and
move items out of
docs/open-questions.mdonce they're checked. - When you learn something new about the Frame, record it in
docs/how-the-frame-works.md(or the topic doc) in the same change. - The Frame's rootfs is read-only and SteamOS updates replace it. Put changes in
~(--userFlatpaks,~/.config) rather thansteamos-readonly disable. sudoon the Frame asks for the user's Developer Mode password. Hand those steps to the user (open Terminal) and keep automation to non-sudo commands.- The Mac uses BSD userland and zsh (no
timeout, usehead -n).