mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 06:00:33 +02:00
- 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>
116 lines
6.6 KiB
Markdown
116 lines
6.6 KiB
Markdown
# 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](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](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](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](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.
|