From c690e691a32e7509754913bf2aceb420e8e4c40a Mon Sep 17 00:00:00 2001 From: Alex Southwell Date: Sat, 24 Oct 2026 12:04:30 +0000 Subject: [PATCH 1/2] Bump Frame Control to 0.4.19 (#162) Co-authored-by: SAPHID --- app/package-lock.json | 4 ++-- app/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/package-lock.json b/app/package-lock.json index 9e0a107..0b9fcc0 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "frame-control", - "version": "0.4.18", + "version": "0.4.19", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "frame-control", - "version": "0.4.18", + "version": "0.4.19", "license": "MIT", "devDependencies": { "electron": "^44.4.5", diff --git a/app/package.json b/app/package.json index 392e1a7..baeb93c 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "frame-control", "productName": "Frame Control", - "version": "0.4.18", + "version": "0.4.19", "description": "Desktop app for managing a Valve Steam Frame over SSH", "private": true, "main": "main.js", From 8bc3d631265d7076d42634115e58181724b38a75 Mon Sep 17 00:00:00 2001 From: Alex Southwell Date: Sat, 24 Oct 2026 12:18:08 +0000 Subject: [PATCH 2/2] Add local Linux helper for Steam PipeWire desktop sharing (#163) Co-authored-by: SAPHID --- CHANGELOG.md | 7 + README.md | 1 + docs/evidence/steam-pipewire-ui-mock.png | Bin 0 -> 192200 bytes docs/pc-in-headset.md | 4 + docs/steam-pipewire.md | 92 ++++++++ tests/steam_pipewire_ui.cjs | 82 +++++++ tests/test_page_startup.py | 2 +- tests/test_steam_pipewire.py | 261 +++++++++++++++++++++++ tests/workspace_fixture.cjs | 2 +- ui/frame_steam_pipewire.py | 147 +++++++++++++ ui/index.html | 59 ++++- ui/server.py | 22 +- 12 files changed, 673 insertions(+), 6 deletions(-) create mode 100644 docs/evidence/steam-pipewire-ui-mock.png create mode 100644 docs/steam-pipewire.md create mode 100644 tests/steam_pipewire_ui.cjs create mode 100644 tests/test_steam_pipewire.py create mode 100644 ui/frame_steam_pipewire.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 830e67d..91ffdd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ ## Unreleased +- Add Linux Tools → Steam desktop sharing: request `steam -pipewire` only after + checking Steam is not running, or open KDE Application Permissions with + instructions to revoke a verified Steam screen-sharing session manually. No + automatic permission reset, Steam restart, or headset access. Frame Control + Linux capture remains disabled; live portal behavior is unverified. + [Usage and limits](docs/steam-pipewire.md). + - Use gamescope's input for the keyboard and trackpad, following the focused headset panel without installing an input service. Start KDE Connect only for accents and emoji, keeping queued text ordered and cancelling it on headset diff --git a/README.md b/README.md index 599ac80..288fa1c 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,7 @@ Frame's software fits together, all checked against a real headset and labelled | [Sideloading Linux and Windows games](docs/sideloading.md) | A .zip, folder or .exe as a Steam Devkit Game, runtime detection | | [Install links for websites](docs/web-install.md) | `frame-control://install` links and manifests, the rules, a button to paste | | [VR comfort and HUD](docs/vr-utilities.md) · [Steam games](docs/steam-games.md) · [VR video](docs/vr-video.md) · [WebXR in Chromium](docs/webxr-chromium.md) | Installing and buying, watching VR180/360, the Chromium build | +| [Steam desktop sharing (Linux)](docs/steam-pipewire.md) | External Steam helper: launch with `-pipewire` after exiting Steam, or open KDE permissions to re-pick a screen manually; no automatic permission reset | | [PC in the headset](docs/pc-in-headset.md) | Experimental, Windows only, off until you turn it on: a whole PC screen as a panel in the Frame. Tested in a Windows VM; individual windows need a WGC-enabled build | | [Mac in the headset](docs/mac-in-headset.md) | Mac windows and screens as panels in the Frame, with laser and keyboard input | | [VR mods and custom songs](docs/mods.md) | UEVR for Unreal games from Frame Control (install, play in VR, remove), the per-game table, Beat Saber blockers | diff --git a/docs/evidence/steam-pipewire-ui-mock.png b/docs/evidence/steam-pipewire-ui-mock.png new file mode 100644 index 0000000000000000000000000000000000000000..bedcd098f1dfcc5e240f3f5cd281d3f9d08f5a06 GIT binary patch literal 192200 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 AO#lD@ literal 0 HcmV?d00001 diff --git a/docs/pc-in-headset.md b/docs/pc-in-headset.md index dbc090e..3adac3f 100644 --- a/docs/pc-in-headset.md +++ b/docs/pc-in-headset.md @@ -1,5 +1,9 @@ # PC in the headset (Experimental) +For Steam's own Linux Wayland desktop-sharing flow, see the separate +[Steam desktop sharing helper](steam-pipewire.md). It does not enable this +feature on Linux. + **Tools → PC in the headset**, on Windows only. It's the Windows version of [Mac in the headset](mac-in-headset.md): a whole screen on your PC becomes its own SteamVR panel in the Frame. Individual windows are available only diff --git a/docs/steam-pipewire.md b/docs/steam-pipewire.md new file mode 100644 index 0000000..381a063 --- /dev/null +++ b/docs/steam-pipewire.md @@ -0,0 +1,92 @@ +# Steam desktop sharing on a Linux PC + +**Tools → Steam desktop sharing** helps with Steam's own `steam -pipewire` +desktop-in-headset flow on a local Wayland PC. It needs no Frame connection. +It is separate from Frame Control's [PC in the headset](pc-in-headset.md), +which remains disabled on Linux. Steam and the desktop portal own the capture, +screen picker and headset flow; this helper does not provide a stream. + +## Launch Steam with PipeWire + +Save your game and use **Steam → Exit** first. Then click **Launch Steam with +PipeWire**. Frame Control checks this user's local processes, finds `steam` on +PATH, and requests `steam -pipewire`. This flag applies to that launch only. +No Steam settings, login files or startup entries are changed. An existing +Steam session is never stopped, signalled or silently switched. + +If Steam or a Steam launcher/helper is running, the button explains that Steam +must be exited first. If the process inventory cannot be read, it refuses to +launch. It also refuses root, SSH, headless, X11 and Flatpak-sandboxed Frame +Control sessions. Run Frame Control as your normal user in the local Wayland +desktop with its session bus. + +For a Flatpak-only Steam install without a `steam` command on PATH, the helper +provides a manual command instead of choosing an installation for you. After +exiting Steam, run `flatpak run com.valvesoftware.Steam -pipewire` in a local +terminal. Flatpak Steam processes are included in the existing-session check. + +A successful request is **not confirmation of a picker or stream**. Steam may +exit or fail after the initial check, and another launcher can race the local +process check. Do not start Steam elsewhere at the same time. If nothing opens, +run the command yourself in a terminal to see Steam's error. + +## Reset screen-share choice + +Click **Reset screen-share choice…** to request KDE's **Application Permissions** +page. This button does **not** revoke anything or report a completed reset. +Frame Control cannot reliably map a Steam runtime display name to a +Steam-specific portal grant or restore token across backends. It never reads, +edits or clears the portal permission store or Steam tokens. + +On KDE: + +1. Open **System Settings → Applications → Application Permissions** if the + button cannot open it. +2. Find the entry for Steam. The Ubuntu 26.04 KDE report showed **Steam Linux + Runtime 3.0**. That display name alone is not proof that every session there + is safe to remove; verify the session belongs to your Steam desktop share. +3. Under **Screen sharing**, choose **Manage 1 Session** (the count may differ). +4. Choose **Revoke** for that verified session only. **Do not use Revoke All** + or change another application's grants. If ownership is ambiguous, stop. +5. Retry Steam's desktop sharing flow. The reporter saw the portal picker again + after revoking that session. Results can differ by Steam and portal version. + +The reported entry sometimes appeared intermittently. If it is missing, do not +clear other entries or the whole portal store. Check again when Steam's sharing +session is present. If **Application Permissions** itself is missing on +Ubuntu/Kubuntu, check your distribution's `kde-config-flatpak` package: the +reporter needed that package and a reboot before the page appeared. Frame +Control does not install packages, reboot, request root or change security +settings. Older KDE modules may lack this page; other desktops receive guidance +only, with no automatic reset or guessed permission target. + +The launcher uses `kcmshell6 --list` to verify the exact module, then +`kcmshell6 kcm_app-permissions`. It does not substitute the older Flatpak-only +page. A request to open the page does not prove that a window became visible. + +## Evidence and limits + +- User-supplied report and screenshot description: + [ExpressGinga81's thread and replies](https://x.com/ExpressGinga81/status/2113242533530911058). + The report describes Ubuntu 26.04 KDE, the initial picker appearing once, + the Steam Linux Runtime 3.0 entry, and Revoke making the picker reappear. + This is reported behavior, not a live test performed for this feature. +- KDE upstream [`flatpak-kcm`](https://github.com/KDE/flatpak-kcm): + `CMakeLists.txt` and `kcm_app-permissions.json` identify Application + Permissions; `ui/SessionList.qml` distinguishes Revoke from Revoke All. +- Automated tests mock Steam, processes and KDE commands. HTTP tests verify + request guards, no actions on GET, and no headset work. Existing CI discovers + these tests on Linux, macOS and Windows; they do not need a desktop portal. +- lxso2 has no interactive Wayland/PipeWire portal for a chooser test. + **No live chooser, revoke, Steam launch or headset display is verified here.** + No Frame access was performed for this task, including during the hold before + 2026-10-24 13:00 UTC. The helper never invokes SSH or Frame controls. + +## Announcement + +Linux Wayland users can now find **Steam desktop sharing** under Tools to +request Steam with `-pipewire` after exiting Steam, or open KDE's Application +Permissions to revoke only a verified Steam screen-sharing session and try the +picker again. Frame Control does not clear permissions automatically. This is +help for Steam's own desktop-sharing flow; Frame Control's Linux capture +feature remains disabled. Live picker behavior still needs desktop validation. diff --git a/tests/steam_pipewire_ui.cjs b/tests/steam_pipewire_ui.cjs new file mode 100644 index 0000000..84792b6 --- /dev/null +++ b/tests/steam_pipewire_ui.cjs @@ -0,0 +1,82 @@ +const {test} = require('node:test'); +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const vm = require('node:vm'); +const path = require('node:path'); +const html = fs.readFileSync(path.join(__dirname, '../ui/index.html'), 'utf8'); +const code = html.split('// Local Steam helper: never start')[1].split('// ---- shared destinations')[0]; + +function fixture() { + const elements = new Map(), requests = []; + const $ = id => { + if (!elements.has(id)) elements.set(id, {disabled:true, textContent:''}); + return elements.get(id); + }; + const ctx = {$, api:(url, body) => new Promise((resolve, reject) => requests.push({url, body, resolve, reject}))}; + vm.createContext(ctx); + vm.runInContext('// never start' + code, ctx); + return {ctx, $, requests}; +} + +test('navigation reads status; only clicks request launch or permission UI', async () => { + const {ctx, $, requests} = fixture(); + assert.equal(requests.length, 0); + const load = ctx.loadSteamPipewire(); + assert.equal(requests[0].url, '/api/steam-pipewire'); + assert.equal(requests[0].body, undefined); + requests[0].resolve({available:true, guidance:'Verify the Steam session'}); + await load; + assert.equal($('steamPipewireLaunch').disabled, false); + assert.equal($('steamPipewireGuidance').textContent, 'Verify the Steam session'); + const launch = $('steamPipewireLaunch').onclick(); + assert.deepEqual(JSON.parse(JSON.stringify(requests[1].body)), {action:'launch', confirmed:true}); + assert.equal($('steamPipewireReset').disabled, true); + await $('steamPipewireReset').onclick(); // repeated action suppressed + assert.equal(requests.length, 2); + requests[1].reject(new Error('Exit Steam first')); + await launch; + assert.equal($('steamPipewireStatus').textContent, 'Exit Steam first'); + const reset = $('steamPipewireReset').onclick(); + assert.deepEqual(JSON.parse(JSON.stringify(requests[2].body)), {action:'permissions', confirmed:true}); + requests[2].resolve({reset:false, opened:true, message:'No permission was changed'}); + await reset; + assert.equal($('steamPipewireStatus').textContent, 'No permission was changed'); +}); + +test('unsupported status and read failure keep actions disabled', async () => { + const {ctx, $, requests} = fixture(); + const load = ctx.loadSteamPipewire(); + requests[0].resolve({available:false, reason:'Local Wayland required'}); + await load; + assert.equal($('steamPipewireLaunch').disabled, true); + assert.equal($('steamPipewireReset').disabled, true); + assert.equal($('steamPipewireStatus').textContent, 'Local Wayland required'); + const retry = ctx.loadSteamPipewire(); + requests[1].reject(new Error('Unavailable')); + await retry; + assert.equal($('steamPipewireLaunch').disabled, true); +}); + +test('stale status cannot overwrite an action result', async () => { + const {ctx, $, requests} = fixture(); + const load = ctx.loadSteamPipewire(); + const reset = ctx.steamPipewireAction('permissions'); + requests[1].resolve({message:'No permission was changed'}); + await reset; + requests[0].resolve({available:true}); + await load; + assert.equal($('steamPipewireStatus').textContent, 'No permission was changed'); +}); + + +test('Tools navigation opens the separate Steam panel without starting PC capture', () => { + const {workspaceFixture} = require('./workspace_fixture.cjs'); + const f = workspaceFixture(); + f.navigate('#steamPipewire'); + assert.equal(f.activePage, 'tools'); + assert.equal(f.el('steamPipewire').hidden, false); + assert.equal(f.el('macview').hidden, true); + assert.ok(f.calls.some(call => call[0] === 'steam-pipewire')); + assert.ok(!f.calls.some(call => call[0] === 'macview')); + assert.match(html, /\$\("steamPipewireLink"\)\.hidden = h.mobile \|\| h.os !== "Linux"/); +}); diff --git a/tests/test_page_startup.py b/tests/test_page_startup.py index 3d339b1..398b18c 100644 --- a/tests/test_page_startup.py +++ b/tests/test_page_startup.py @@ -9,7 +9,7 @@ import subprocess import unittest ROOT = pathlib.Path(__file__).resolve().parents[1] -STUBS = ['$', 'toggleLive', 'scrollToY', 'scroller', 'loadMacView', 'loadPanels', 'loadPanelSwitcher', 'loadBackups', 'loadStorage', 'loadPower', 'loadTitles', 'showAndroidTab', +STUBS = ['$', 'toggleLive', 'scrollToY', 'scroller', 'loadMacView', 'loadSteamPipewire', 'loadPanels', 'loadPanelSwitcher', 'loadBackups', 'loadStorage', 'loadPower', 'loadTitles', 'showAndroidTab', 'loadAndroid', 'loadDisplays', 'setGameSource', 'requestAnimationFrame'] RUN = r''' diff --git a/tests/test_steam_pipewire.py b/tests/test_steam_pipewire.py new file mode 100644 index 0000000..5cd27c6 --- /dev/null +++ b/tests/test_steam_pipewire.py @@ -0,0 +1,261 @@ +"""PC-only Steam helper tests. All app launches and KDE calls are mocked. +No portal, interactive Wayland session, Steam installation or Frame is used. +""" +import sandbox # noqa: F401 +import contextlib +import http.client +import json +import os +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import threading +import unittest +from unittest import mock +from http.server import ThreadingHTTPServer + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / 'ui')) +import frame_steam_pipewire as helper +import server + +ENV = {'XDG_SESSION_TYPE': 'wayland', 'WAYLAND_DISPLAY': 'wayland-0', + 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/mock/session-bus', 'XDG_CURRENT_DESKTOP': 'KDE'} + + +class HelperTests(unittest.TestCase): + def setUp(self): + self.stack = contextlib.ExitStack() + self.addCleanup(self.stack.close) + patches = [mock.patch.dict(os.environ, ENV, clear=True), + mock.patch.object(helper.sys, 'platform', 'linux'), + mock.patch.object(helper.os, 'geteuid', return_value=1000, create=True), + mock.patch.object(helper.Path, 'exists', return_value=False), + mock.patch.object(helper, '_launch', None), + mock.patch.object(helper, '_steam_running', return_value=False), + mock.patch.object(helper.shutil, 'which', side_effect=lambda n: '/usr/bin/' + n), + mock.patch.object(helper.subprocess, 'Popen'), + mock.patch.object(helper.subprocess, 'run')] + started = [self.stack.enter_context(p) for p in patches] + self.running, self.which, self.spawn, self.run = started[-4:] + self.spawn.return_value.poll.return_value = None + self.spawn.return_value.wait.side_effect = subprocess.TimeoutExpired('app', 1) + self.run.return_value = subprocess.CompletedProcess([], 0, 'kcm_app-permissions - Application Permissions\n', '') + + def action(self, action): + return helper.action({'action': action, 'confirmed': True}) + + def test_status_is_read_only(self): + self.assertTrue(helper.status()['available']) + self.spawn.assert_not_called() + self.run.assert_not_called() + self.running.assert_not_called() + + def test_platform_and_local_session_gates(self): + for platform in ('win32', 'darwin'): + with self.subTest(platform=platform), mock.patch.object(helper.sys, 'platform', platform): + self.assertFalse(helper.status()['available']) + with self.assertRaises(helper.HelperError): + self.action('launch') + for change in ({'FRAME_LOCAL': '1'}, {'XDG_SESSION_TYPE': 'x11'}, {'WAYLAND_DISPLAY': ''}, + {'DBUS_SESSION_BUS_ADDRESS': ''}, {'SSH_CONNECTION': 'remote'}, {'SSH_CLIENT': 'remote'}): + with self.subTest(change=change), mock.patch.dict(os.environ, change): + for action in ('launch', 'permissions'): + with self.assertRaises(helper.HelperError): + self.action(action) + self.spawn.assert_not_called() + self.run.assert_not_called() + + def test_root_and_sandbox_refused(self): + with mock.patch.object(helper.os, 'geteuid', return_value=0): + self.assertIn('not root', helper.status()['reason']) + with mock.patch.object(helper.Path, 'exists', return_value=True): + with self.assertRaisesRegex(helper.HelperError, 'sandbox'): + self.action('launch') + self.spawn.assert_not_called() + + def test_only_explicit_supported_actions(self): + for body in ({}, {'action': 'launch'}, {'action': 'permissions', 'confirmed': 'true'}, + {'action': 'delete-all', 'confirmed': True}): + with self.subTest(body=body), self.assertRaises(helper.HelperError): + helper.action(body) + self.spawn.assert_not_called() + self.run.assert_not_called() + + def test_launch_exact_command_and_duplicate_guard(self): + result = self.action('launch') + self.assertTrue(result['launched']) + self.assertIn('does not confirm', result['message']) + self.spawn.assert_called_once_with(['/usr/bin/steam', '-pipewire'], stdin=subprocess.DEVNULL, + stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, + start_new_session=True) + with self.assertRaisesRegex(helper.HelperError, 'already running or starting'): + self.action('launch') + self.assertEqual(self.spawn.call_count, 1) + self.run.assert_not_called() + + def test_running_and_unknown_steam_fail_closed(self): + self.running.return_value = True + with self.assertRaisesRegex(helper.HelperError, 'Steam > Exit'): + self.action('launch') + self.running.side_effect = helper.HelperError('Cannot verify') + with self.assertRaisesRegex(helper.HelperError, 'Cannot verify'): + self.action('launch') + self.spawn.assert_not_called() + + def test_missing_launcher_does_not_guess_flatpak(self): + self.which.side_effect = None + self.which.return_value = None + with self.assertRaisesRegex(helper.HelperError, 'Flatpak-only'): + self.action('launch') + self.spawn.assert_not_called() + + def test_launch_error_is_not_success(self): + self.spawn.side_effect = OSError('missing') + with self.assertRaisesRegex(helper.HelperError, 'Could not start'): + self.action('launch') + + def test_immediate_application_failure_is_not_success(self): + self.spawn.return_value.wait.side_effect = None + self.spawn.return_value.wait.return_value = 1 + for action in ('launch', 'permissions'): + with self.subTest(action=action), mock.patch.object(helper, '_launch', None): + with self.assertRaisesRegex(helper.HelperError, 'exited with an error'): + self.action(action) + + def test_permissions_opens_only_verified_exact_module_never_resets(self): + result = self.action('permissions') + self.assertTrue(result['opened']) + self.assertFalse(result['reset']) + self.assertIn('No permission was changed', result['message']) + self.run.assert_called_once_with(['/usr/bin/kcmshell6', '--list'], capture_output=True, + text=True, timeout=5, stdin=subprocess.DEVNULL) + self.assertEqual(self.spawn.call_args.args[0], ['/usr/bin/kcmshell6', 'kcm_app-permissions']) + self.running.assert_not_called() + + def test_wrong_module_missing_tool_and_other_desktops_only_give_guidance(self): + for listing in ('kcm_flatpak - Flatpak Permissions', 'evil_kcm_app-permissions - nope', ''): + self.run.return_value.stdout = listing + result = self.action('permissions') + self.assertFalse(result['reset']) + self.assertFalse(result['opened']) + self.which.side_effect = None + self.which.return_value = None + self.assertFalse(self.action('permissions')['opened']) + self.which.reset_mock() + with mock.patch.dict(os.environ, {'XDG_CURRENT_DESKTOP': 'GNOME'}): + self.assertFalse(self.action('permissions')['opened']) + self.which.assert_not_called() + self.spawn.assert_not_called() + + def test_module_listing_error_or_timeout_is_guidance_not_reset(self): + for error in (OSError('missing'), subprocess.TimeoutExpired('kcm', 5)): + self.run.side_effect = error + result = self.action('permissions') + self.assertFalse(result['opened']) + self.assertFalse(result['reset']) + self.assertIn('kde-config-flatpak', result['message']) + self.spawn.assert_not_called() + + +class ProcessTests(unittest.TestCase): + def setUp(self): + self.stack = contextlib.ExitStack() + self.addCleanup(self.stack.close) + self.tmp = self.stack.enter_context(tempfile.TemporaryDirectory()) + self.proc = Path(self.tmp) + # Match the temp files' owner even when tests run as root or on Windows. + self.stack.enter_context(mock.patch.object(helper.os, 'geteuid', return_value=self.proc.stat().st_uid, create=True)) + self.add('1', 'python', b'python\0server.py\0') + + def add(self, pid, comm, cmdline): + p = self.proc / pid + p.mkdir() + (p / 'comm').write_text(comm) + (p / 'cmdline').write_bytes(cmdline) + + def test_native_launcher_webhelper_and_flatpak_detected(self): + for comm, cmd in [('steam', b'/x/steam\0'), ('bash', b'bash\0/x/steam.sh\0'), + ('steamwebhelper', b'/x/steamwebhelper\0'), + ('flatpak', b'flatpak\0run\0com.valvesoftware.Steam\0')]: + with self.subTest(comm=comm): + (self.proc / '1' / 'comm').write_text(comm) + (self.proc / '1' / 'cmdline').write_bytes(cmd) + self.assertTrue(helper._steam_running(self.proc)) + + def test_unrelated_names_are_not_steam(self): + self.add('2', 'steamdeck-tools', b'/bin/steam-tools\0') + self.assertFalse(helper._steam_running(self.proc)) + + def test_other_user_steam_is_not_this_users_instance(self): + self.add('2', 'steam', b'steam\0') + with mock.patch.object(helper.os, 'geteuid', return_value=self.proc.stat().st_uid + 1): + self.assertFalse(helper._steam_running(self.proc)) + + def test_exited_process_is_skipped(self): + (self.proc / '2').mkdir() + self.assertFalse(helper._steam_running(self.proc)) + + def test_unreadable_or_missing_inventory_fails_closed(self): + with self.assertRaisesRegex(helper.HelperError, 'Cannot verify'): + helper._steam_running(self.proc / 'missing') + with mock.patch.object(helper.Path, 'read_bytes', side_effect=PermissionError('denied')): + with self.assertRaisesRegex(helper.HelperError, 'Cannot verify'): + helper._steam_running(self.proc) + + +class RouteTests(unittest.TestCase): + def test_headset_and_private_servers_never_call_helper(self): + for local, private in ((True, False), (False, True)): + with mock.patch.object(server, 'LOCAL', local), mock.patch.object(server, 'PRIVATE', private), \ + mock.patch.object(helper, 'action') as action, mock.patch.object(helper, 'status') as status: + self.assertFalse(server.steam_pipewire_state()['available']) + with self.assertRaises(server.Failure): + server.steam_pipewire_action({'action': 'launch', 'confirmed': True}) + action.assert_not_called() + status.assert_not_called() + + def test_http_guards_get_read_only_and_post_bypasses_headset_work(self): + with ThreadingHTTPServer(('127.0.0.1', 0), server.Handler) as httpd: + thread = threading.Thread(target=httpd.serve_forever, daemon=True) + thread.start() + try: + def request(method, body=None, headers=None): + conn = http.client.HTTPConnection('127.0.0.1', httpd.server_port) + conn.request(method, '/api/steam-pipewire', json.dumps(body) if body else None, headers or {}) + reply = conn.getresponse() + code, data = reply.status, json.loads(reply.read()) + conn.close() + return code, data + with mock.patch.object(server, 'LOCAL', False), mock.patch.object(server, 'PRIVATE', False), \ + mock.patch.object(server, 'working', side_effect=AssertionError('headset work')), \ + mock.patch.object(server, 'ssh', side_effect=AssertionError('Frame access')), \ + mock.patch.object(helper, 'action', return_value={'reset': False}) as action, \ + mock.patch.object(helper, 'status', return_value={'available': True}) as status: + self.assertEqual(request('POST', {'action': 'launch'})[0], 403) + self.assertEqual(request('GET')[0], 403) + action.assert_not_called() + headers = {'X-Frame-UI': server.UI_KEY, 'X-Frame-Device': 'unrelated-device'} + self.assertEqual(request('GET', headers=headers), (200, {'available': True})) + action.assert_not_called() + status.assert_called_once() + body = {'action': 'permissions', 'confirmed': True} + self.assertEqual(request('POST', body, headers), (200, {'reset': False})) + action.assert_called_once_with(body) + finally: + httpd.shutdown() + thread.join() + + +class PageTests(unittest.TestCase): + @unittest.skipUnless(shutil.which('node'), 'Node exercises production page handlers') + def test_production_page_handlers(self): + result = subprocess.run(['node', '--test', str(ROOT / 'tests/steam_pipewire_ui.cjs')], + capture_output=True, text=True) + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/workspace_fixture.cjs b/tests/workspace_fixture.cjs index 0282e00..2677ed8 100644 --- a/tests/workspace_fixture.cjs +++ b/tests/workspace_fixture.cjs @@ -25,7 +25,7 @@ function workspaceFixture() { const context={URL,document:{querySelectorAll:s=>s==='.page'?pages:s==='#nav a'?links:controls[s]||[],title:'',body:{addEventListener(k,fn){listeners['body-'+k]=fn;}}}, window:win,location,scroller:()=>({get scrollTop(){return win.scrollY;},scrollTo:o=>win.scrollTo(o)}),scrollToY:y=>win.scrollTo({top:y}),requestAnimationFrame:fn=>fn(),$:el,live:false,toggleLive(on){this.live=on;calls.push(['live',on]);}, loadAndroid(){calls.push(['android']);},closeDevPop(){},metaLib:{connected:false},renderMetaApps(){}, - loadMacView(){calls.push(['macview']);},loadPanelSwitcher(){calls.push(['panels']);},loadDisplays(){calls.push(['displays']);}, + loadSteamPipewire(){calls.push(['steam-pipewire']);},loadMacView(){calls.push(['macview']);},loadPanelSwitcher(){calls.push(['panels']);},loadDisplays(){calls.push(['displays']);}, gm:{src:'owned',dl:null,byId:new Map(),shown:0,shownBySource:{owned:0,store:0}},setGameSource(src){context.gm.src=src;},state:null,stateRead:{valid:false},online:null,devGen:0,androidApps:[],jobsRunning:0,viewGen:0, esc:s=>String(s??'').replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]))}; vm.createContext(context); diff --git a/ui/frame_steam_pipewire.py b/ui/frame_steam_pipewire.py new file mode 100644 index 0000000..8fa0bab --- /dev/null +++ b/ui/frame_steam_pipewire.py @@ -0,0 +1,147 @@ +"""Local Linux helper for Steam's own desktop sharing; never a Frame client. + +No portal grants/tokens are read or written. KDE owns the manual Revoke UI. +""" +import os +from pathlib import Path +import re +import shutil +import subprocess +import sys +import threading + +MODULE = 'kcm_app-permissions' +GUIDANCE = ( + 'In KDE System Settings > Applications > Application Permissions, find the Steam entry ' + '(reported as Steam Linux Runtime 3.0). Under Screen sharing, choose Manage 1 Session ' + '(the count may differ), verify it belongs to Steam, then Revoke only that session. ' + 'Do not use Revoke All or change another app. Retry Steam desktop sharing to choose a screen. ' + 'If the entry is missing or ambiguous, stop; it can appear intermittently. ' + 'If Application Permissions is missing on Ubuntu/Kubuntu, check whether your distribution ' + 'provides kde-config-flatpak; the reporter needed that package and a reboot. ' + 'Frame Control does not install packages or change permissions.' +) +_lock = threading.Lock() +_launch = None + + +class HelperError(RuntimeError): + pass + + +def unavailable(): + if sys.platform != 'linux' or os.environ.get('FRAME_LOCAL') == '1': + return 'This helper runs on your Linux PC, not the headset.' + if os.geteuid() == 0: + return 'Open Frame Control as your normal desktop user, not root.' + if Path('/.flatpak-info').exists(): + return 'This sandbox cannot verify host Steam processes. Use a terminal on your PC.' + if os.environ.get('SSH_CONNECTION') or os.environ.get('SSH_CLIENT'): + return 'Open Frame Control in your local Wayland desktop session, not over SSH.' + if (os.environ.get('XDG_SESSION_TYPE', '').lower() != 'wayland' + or not os.environ.get('WAYLAND_DISPLAY') or not os.environ.get('DBUS_SESSION_BUS_ADDRESS')): + return 'A local Wayland desktop with its session bus is required. X11 and headless sessions are unsupported.' + return '' + + +def status(): + reason = unavailable() + return {'available': not reason, 'reason': reason, 'guidance': GUIDANCE} + + +def _steam_running(proc=Path('/proc')): + """Fail closed if our process inventory cannot be read. No command execution. + + Include launch scripts and Flatpak Steam, not just the final Steam binary. + Other users' processes are irrelevant to this user's Steam instance. + """ + try: + entries = list(proc.iterdir()) + if not any(p.name.isdecimal() for p in entries): + raise OSError('empty process inventory') + for p in entries: + if not p.name.isdecimal(): + continue + try: + if p.stat().st_uid != os.geteuid(): + continue + comm = (p / 'comm').read_text().strip().lower() + args = (p / 'cmdline').read_bytes().decode('utf-8', 'replace').split('\0') + except FileNotFoundError: + continue # a process exited while scanning + names = {Path(a).name.lower() for a in args if a} + if (comm in {'steam', 'steamwebhelper', 'steam.sh'} + or names.intersection({'steam', 'steam.sh', 'steamwebhelper', 'com.valvesoftware.steam'})): + return True + return False + except OSError as exc: + raise HelperError('Cannot verify whether Steam is running. Exit Steam and launch ' + 'steam -pipewire yourself from a local terminal.') from exc + + +def _spawn(argv): + try: + return subprocess.Popen(argv, stdin=subprocess.DEVNULL, stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, start_new_session=True) + except OSError as exc: + raise HelperError('Could not start the local application. Check it is installed and opens ' + 'from your desktop. No permission was changed.') from exc + + +def _check_start(child): + try: + code = child.wait(timeout=1) + except subprocess.TimeoutExpired: + return + if code: + raise HelperError('The local application exited with an error. Try opening it from your ' + 'desktop to see its error. No permission was changed.') + + +def action(body): + global _launch + kind = body.get('action') + if kind not in ('launch', 'permissions'): + raise HelperError('Unknown Steam helper action.') + if body.get('confirmed') is not True: + raise HelperError('Use the Steam helper button to request this action explicitly.') + reason = unavailable() + if reason: + raise HelperError(reason) + with _lock: + if kind == 'launch': + if (_launch is not None and _launch.poll() is None) or _steam_running(): + raise HelperError('Steam is already running or starting. Exit Steam using Steam > Exit ' + '(after saving games), then click Launch Steam with PipeWire again. ' + 'Frame Control will not stop it or change an existing session.') + steam = shutil.which('steam') + if not steam: + raise HelperError('No steam launcher was found on PATH. For a Flatpak-only install, ' + 'exit Steam and run flatpak run com.valvesoftware.Steam -pipewire ' + 'yourself from a local terminal. Nothing was launched.') + _launch = _spawn([steam, '-pipewire']) + _check_start(_launch) + return {'launched': True, 'message': 'Requested Steam with -pipewire for this launch only. ' + 'Use Steam\'s desktop-in-headset flow; Steam and your desktop portal control the picker. ' + 'This does not confirm screen sharing started.'} + + # There is no portable verified mapping from Steam's runtime display name + # to a portal restore token. Never guess an app ID or delete a grant. + desktop = os.environ.get('XDG_CURRENT_DESKTOP', '').upper().split(':') + kcm = shutil.which('kcmshell6') if 'KDE' in desktop else None + if not kcm: + return {'reset': False, 'opened': False, 'message': 'No permission was changed. ' + 'KDE Application Permissions could not be opened automatically. ' + GUIDANCE} + try: + listing = subprocess.run([kcm, '--list'], capture_output=True, text=True, timeout=5, + stdin=subprocess.DEVNULL) + except (OSError, subprocess.TimeoutExpired): + listing = None + if (listing is None or listing.returncode + or not re.search(r'^\s*' + re.escape(MODULE) + r'\s+-', listing.stdout, re.M)): + return {'reset': False, 'opened': False, 'message': 'No permission was changed. ' + 'The KDE Application Permissions module is unavailable. ' + GUIDANCE} + child = _spawn([kcm, MODULE]) + _check_start(child) + return {'reset': False, 'opened': True, 'message': 'Requested KDE Application Permissions. ' + 'No permission was changed by Frame Control. ' + GUIDANCE} diff --git a/ui/index.html b/ui/index.html index 5f2913c..d374563 100644 --- a/ui/index.html +++ b/ui/index.html @@ -1431,7 +1431,7 @@

Tools

Choose a task for your Frame.

- +

Power & heat report

@@ -1447,6 +1447,23 @@

Open the saved HTML in your browser; it works offline and includes JSON/CSV downloads. Unknown readings are never treated as zero. Rails overlap; do not add them. Sensor accuracy is unverified. Reports include sensor paths and OS builds: review before sharing.

+ +

VR comfort and performance

Waiting for the Frame
@@ -5890,13 +5907,47 @@ $("macview").onclick = async e => { setTimeout(loadMacView, 800); }; +// Local Steam helper: never start an action on navigation or a status read. +let steamPipewireBusy = false, steamPipewireRead = 0; +async function loadSteamPipewire() { + if (steamPipewireBusy) return; + const read = ++steamPipewireRead; + try { + const s = await api('/api/steam-pipewire'); + if (read !== steamPipewireRead) return; + $('steamPipewireLaunch').disabled = $('steamPipewireReset').disabled = !s.available; + $('steamPipewireStatus').textContent = s.reason || ''; + if (s.guidance) $('steamPipewireGuidance').textContent = s.guidance; + } catch (e) { + if (read !== steamPipewireRead) return; + $('steamPipewireLaunch').disabled = $('steamPipewireReset').disabled = true; + $('steamPipewireStatus').textContent = e.message; + } +} +async function steamPipewireAction(action) { + if (steamPipewireBusy) return; + steamPipewireBusy = true; + steamPipewireRead++; + $('steamPipewireLaunch').disabled = $('steamPipewireReset').disabled = true; + try { + const r = await api('/api/steam-pipewire', {action, confirmed: true}); + $('steamPipewireStatus').textContent = r.message; + } catch (e) { $('steamPipewireStatus').textContent = e.message; } + finally { + steamPipewireBusy = false; + $('steamPipewireLaunch').disabled = $('steamPipewireReset').disabled = false; + } +} +$('steamPipewireLaunch').onclick = () => steamPipewireAction('launch'); +$('steamPipewireReset').onclick = () => steamPipewireAction('permissions'); + // ---- shared destinations and intentional secondary workspaces ---- const PAGES = ["apps", "games", "tools", "settings"]; const SECONDARY_PAGES = ["home", "capture", "devices", "control"]; const SECTION_PAGE = {library:"games", discover:"apps", android:"apps", view:"capture", shots:"capture", device:"home", - vrTools:"tools", comfort:"tools", assistant:"tools", pad:"tools", sideloaded:"games", getgames:"games", steamStore:"games", androidLibrary:"apps", appStore:"apps", linuxApps:"apps", + steamPipewire:"tools", vrTools:"tools", comfort:"tools", assistant:"tools", pad:"tools", sideloaded:"games", getgames:"games", steamStore:"games", androidLibrary:"apps", appStore:"apps", linuxApps:"apps", display:"settings", androidSettings:"settings", transfer:"tools", media:"tools", artworkSettings:"settings", autoSync:"settings", power:"settings", macview:"tools", privacy:"settings", panels:"tools", storage:"tools", powerReport:"tools", backup:"tools"}; -const TOOL_TITLES = {transfer:"Send to Frame", media:"Media player", artworkSettings:"Library artwork", autoSync:"Copy to this computer", +const TOOL_TITLES = {steamPipewire:"Steam desktop sharing", transfer:"Send to Frame", media:"Media player", artworkSettings:"Library artwork", autoSync:"Copy to this computer", pad:"Type on the headset", panels:"Panel switcher", vrTools:"VR tools", comfort:"Family & comfort", androidSettings:"App display & reports", power:"Remote & power", macview:"Mac in the headset", privacy:"Privacy & updates", storage:"Game storage", powerReport:"Power & heat report", backup:"Backup & recovery"}; const workspace = {source:"all", scope:"installed", apps:"installed", scroll:new Map(), key:null, hash:null, y:0}; @@ -6002,6 +6053,7 @@ function showPage(e) { const host = $(kind === 'tools' ? 'toolWorkspace' : 'settingsWorkspace'); if (activeTool && $(activeTool).parentNode !== host) host.append($(activeTool)); } + if (tool === 'steamPipewire') loadSteamPipewire(); if (tool === 'macview') loadMacView(); if (tool === 'panels') loadPanelSwitcher(); if (tool === 'backup') loadBackups(); @@ -7406,6 +7458,7 @@ api("/api/host").then(h => { window.frameControlCenter?.host(h); $("macToolLink").hidden = h.mobile || h.os !== "macOS"; $("pcToolLink").hidden = h.mobile || h.os !== "Windows"; + $("steamPipewireLink").hidden = h.mobile || h.os !== "Linux"; if (!h.mobile && h.os === "Windows") TOOL_TITLES.macview = "PC in the headset"; $("backupToolLink").hidden = !!h.mobile; // backups are folders on a computer if (h.mobile) return; diff --git a/ui/server.py b/ui/server.py index 8f1656b..389bb15 100755 --- a/ui/server.py +++ b/ui/server.py @@ -60,6 +60,7 @@ import frame_host # noqa: E402 import frame_link # noqa: E402 import frame_macview # noqa: E402 import frame_pcview # noqa: E402 +import frame_steam_pipewire # noqa: E402 import frame_media # noqa: E402 import frame_panels # noqa: E402 import frame_quest # noqa: E402 @@ -148,7 +149,7 @@ LINK = None # the connector (frame_link.Link); None on the Frame itself # install's clean-up) to the other headset. _work_lock = threading.Lock() _work = [0] -NOT_HEADSET_WORK = {"/api/devices", "/api/contact", "/api/contact/prompt", "/api/queue"} +NOT_HEADSET_WORK = {"/api/steam-pipewire", "/api/devices", "/api/contact", "/api/contact/prompt", "/api/queue"} @contextlib.contextmanager @@ -3076,6 +3077,22 @@ def push_media(path): "id": token + "/" + name} +# Local Steam helper: no headset route, SSH, or PC capture helper. +def steam_pipewire_state(): + if LOCAL or PRIVATE: + return {"available": False, "reason": "Open this helper in Frame Control on your Linux PC."} + return frame_steam_pipewire.status() + + +def steam_pipewire_action(body): + if LOCAL or PRIVATE: + raise Failure("Open this helper in Frame Control on your Linux PC.", 403) + try: + return frame_steam_pipewire.action(body) + except frame_steam_pipewire.HelperError as exc: + raise Failure(str(exc), 400) from exc + + # ---- Mac in the headset (frame_macview.py), PC in the headset (frame_pcview.py) ---- # The tunnel gets its own connection: the shared master's options would win @@ -3265,6 +3282,7 @@ def power_action(body): POST = { + "/api/steam-pipewire": steam_pipewire_action, "/api/power": power_action, "/api/android/backup": android_backup, "/api/backup": backup_action, "/api/vr": vr, @@ -3475,6 +3493,8 @@ class Handler(BaseHTTPRequestHandler): elif path == "/api/agent/approval": token = (parse_qs(url.query).get("confirmation") or [""])[0] self.send_json(frame_agent.approvals.inspect(token)) + elif path == "/api/steam-pipewire": + self.send_json(steam_pipewire_state()) elif path == "/api/host": self.send_json({"os": "SteamOS", "fileManager": None, "computer": DEVICE, "mobile": True} if LOCAL else {"os": frame_host.NAME, "fileManager": frame_host.FILE_MANAGER,