Files
saphid--frame-control/docs/open-questions.md
T
saphidandClaude Opus 5.5 eabf4cd1f9 Add Steam screenshots, Tailscale remote access, VR-video fixes
- Screenshots: list the Frame's Steam screenshots, open them in the
  viewer, and save new ones to ~/Pictures/SteamFrame. Ids are validated
  before any shell, and copies land atomically.
- Tailscale: scripts/tailscale-on-frame.sh installs a userspace tailscaled
  as a lingering systemd --user service with no sudo, SHA-256 checked, safe
  to re-run, with --uninstall. docs/tailscale.md covers setup and warns that
  in userspace mode every Frame port, including loopback-only DevTools and
  ADB, is reachable from the tailnet.
- push-vr-video.sh: filenames starting with "-" are safe, symlinks are
  followed, and a real Videos\VR directory triggers a warning.
- Tests cover the screenshot routes (19 total).

Docs keep placeholder addresses for the headset and tailnet.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 23:11:14 +10:00

6.6 KiB
Raw Blame History

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. sshd is enabled and active. The user is steamos (in wheel) and the hostname is frame.

  • 3. frame.local resolves from the Mac; avahi-daemon is active.

  • 5. /etc/ssh/sshd_config has Include /etc/ssh/sshd_config.d/*.conf. The existing drop-ins are 20-systemd-userdb.conf and 99-archlinux.conf, so 01-frame-keys-only.conf would sort first as intended. (--harden itself hasn't been run.)

  • 8. The in-headset desktop is kwin_wayland + plasmashell nested inside gamescope (1280×800), with XDG_RUNTIME_DIR=/run/user/1000/nested_plasma, WAYLAND_DISPLAY=wayland-0, DISPLAY=:2 and a private D-Bus bus. SteamVR (vrserver, vrcompositor) and xrdp are running.

  • 9. rsync, flatpak, python3, git, qdbus6 and xrdp are present. wl-copy, xclip, xsel, kdeconnect-cli, tailscale, krfb and wayvnc are not (Tailscale can be added in ~; see tailscale.md). paste-to-frame.sh now 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); /home is 929 GB.

  • push.sh copied a test file with rsync.

  • 10. install-apps.sh remmina --vnc-host <mac>.local installed Remmina as a --user Flatpak over SSH and wrote the profile. The desktop's XDG_DATA_DIRS includes 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 :0 with its own STEAM_GAME id gets its own SteamVR overlay (valve.steam.desktopgame.<id>). Three were created side by side with panel-on-frame.sh. See panels.md.

Still open: 4, 6, 7, 11 (in-headset connect), 12–15, 16 (off-LAN and after a reboot), 17–21.

Check on the headset (in order)

  1. 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).

  2. Does SSH work straight after that, with no terminal steps? From the Mac, run nc -z frame.local 22, then ./scripts/connect.sh.

  3. Does frame.local resolve from the Mac (mDNS/Avahi)? If not, use the IP and set up a DHCP reservation.

  4. Does SSH stay enabled after a reboot and after an OS update? Also check that ~/.ssh/authorized_keys survives an update.

  5. Is the sshd_config.d include present? Check before --harden: ssh frame 'grep -n Include /etc/ssh/sshd_config'.

  6. 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?

  7. Does the xrdp session work from Microsoft Windows App on macOS? Valve only documents Windows Remote Desktop Connection. Is clipboard sync supported?

  8. 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 whether paste-to-frame.sh works. ssh frame 'ls /run/user/$(id -u); loginctl list-sessions'.

  9. Are wl-copy, xclip, and rsync present on the image? ssh frame 'command -v wl-copy xclip rsync flatpak'.

  10. Can Flatpaks be installed --user over SSH, and do they appear in the headset's desktop? Test with ./scripts/install-apps.sh remmina.

  11. 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?

  12. Moonlight Flatpak (aarch64) + Sunshine on macOS: worth trying only if VNC is too slow.

  13. KDE Connect: is it preinstalled or installable on the Frame, and does it pair with KDE Connect for macOS?

  14. Bluetooth keyboard pairing on the Frame, for the rare times you do need to type locally.

  15. ADB: does adb shell over USB-C from a Mac (not just a Windows PC) reach the Linux side? Does USB power from the Mac cope?

  16. Tailscale: answered 2026-09-25. A userspace tailscaled in ~ runs as a lingering user service with no sudo; see tailscale.md. Still open: reaching the Frame from outside the home network, and the service starting after a reboot.

  17. Floating panels in the headset (see panels.md): do the panels from panel-on-frame.sh show up, take input, and offer Float in World / Move / Size? Do floating positions survive closing and reopening the app, or a reboot?

  18. LEPTON_NO_CLEANUP=1 %command% as Lepton Development's launch option: do ADB-installed apps survive closing and reopening it?

  19. 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?

  20. F-Droid 2.0 (Compose 1.12): does it run? If so, the catalogue can install it instead of 1.17.2.

  21. DeoVR local files: does DeoVR's file browser show Videos → VR (the symlink from push-vr-video.sh) or Z:\home\steamos\Videos\VR, and do the colour-coded test clips play in 3D (red left eye, cyan right) for both H.264 and H.265? Does the DLNA browser find a server on the Mac?

Unconfirmed claims made in these docs

  • /home and /etc persist 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.sh and bootstrap-on-frame.sh haven't run against real hardware.