mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 09:00:35 +02:00
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>
88 lines
2.1 KiB
JSON
88 lines
2.1 KiB
JSON
{
|
|
"name": "frame-control",
|
|
"productName": "Frame Control",
|
|
"version": "0.1.0",
|
|
"description": "Mac app for managing a Valve Steam Frame over SSH",
|
|
"private": true,
|
|
"main": "main.js",
|
|
"license": "UNLICENSED",
|
|
"scripts": {
|
|
"start": "env -u ELECTRON_RUN_AS_NODE electron .",
|
|
"icon": "env -u ELECTRON_RUN_AS_NODE electron build/make-icon.js",
|
|
"dist": "electron-builder --mac --arm64 --publish never",
|
|
"dist:dir": "electron-builder --mac --arm64 --dir"
|
|
},
|
|
"devDependencies": {
|
|
"electron": "^44.4.5",
|
|
"electron-builder": "^26.15.3"
|
|
},
|
|
"build": {
|
|
"appId": "com.saphid.frame-control",
|
|
"productName": "Frame Control",
|
|
"directories": {
|
|
"output": "dist",
|
|
"buildResources": "build"
|
|
},
|
|
"files": [
|
|
"main.js",
|
|
"package.json"
|
|
],
|
|
"extraResources": [
|
|
{
|
|
"from": "../ui",
|
|
"to": "ui",
|
|
"filter": [
|
|
"*.py",
|
|
"*.html"
|
|
]
|
|
},
|
|
{
|
|
"from": "../scripts",
|
|
"to": "scripts",
|
|
"filter": [
|
|
"*.sh"
|
|
]
|
|
},
|
|
{
|
|
"from": "../frame/android",
|
|
"to": "frame/android",
|
|
"filter": [
|
|
"*.sh",
|
|
"*.py"
|
|
]
|
|
},
|
|
{
|
|
"from": "../apk-catalog",
|
|
"to": "apk-catalog",
|
|
"filter": [
|
|
"*.py",
|
|
"pins.json",
|
|
"site/apps.js"
|
|
]
|
|
}
|
|
],
|
|
"mac": {
|
|
"category": "public.app-category.utilities",
|
|
"icon": "build/icon.icns",
|
|
"identity": "-",
|
|
"hardenedRuntime": false,
|
|
"target": [
|
|
"dmg",
|
|
"zip"
|
|
],
|
|
"extendInfo": {
|
|
"NSAppleEventsUsageDescription": "Frame Control opens Terminal for SSH sessions and for power actions that need the Developer Mode password.",
|
|
"NSLocalNetworkUsageDescription": "Frame Control connects to your Steam Frame over SSH on the local network."
|
|
}
|
|
},
|
|
"dmg": {
|
|
"title": "Frame Control ${version}"
|
|
},
|
|
"electronFuses": {
|
|
"runAsNode": false,
|
|
"enableNodeOptionsEnvironmentVariable": false,
|
|
"enableNodeCliInspectArguments": false
|
|
}
|
|
}
|
|
}
|