cat / goq
clone

turns a linux box into a private steam streaming appliance: plug in, tap your key, play from another computer

Merge pull request #1 from FelineStateMachine/feat/gamescope-appliance

FelineStateMachine committed c045baa
Build the goq.sh Gamescope streaming appliance
commit
c045baa1c964059b39c5f6e84c0061ef9dd0fb29
parent
14d74a98e6ca0e955de140570b19e6fc03db51e6
parent
b49c7377f07ed5a667cd778d37e9342ff5be4792
author
FelineStateMachine <dami.etoile@gmail.com>
187 files changed, +28693 -32078
M.github/workflows/ci.yml44+
M.github/workflows/release.yml67-
M.github/workflows/website.yml59+
M.gitignore7+-
MAGENTS.md215+-
Msrc-tauri/Cargo.lock => Cargo.lock2960++++------------
MCargo.toml7+-
MREADME.md273+-
Mcrates/sigil-host/Cargo.toml39+
Mcrates/sigil-host/src/audio.rs559+++
Mcrates/sigil-host/src/bin/sigil-probe.rs973+++++
Mcrates/sigil-host/src/clock.rs79+
Mcrates/sigil-host/src/config.rs689++++
Mcrates/sigil-host/src/cursor.rs611+++
Mcrates/sigil-host/src/identity.rs211+
Mcrates/sigil-host/src/input.rs1482++++++++
Mcrates/sigil-host/src/main.rs631+++
Mcrates/sigil-host/src/server.rs2367++++++++++++
Mcrates/sigil-host/src/source.rs1427+++++++
Mcrates/sigil-protocol/Cargo.toml17+
Mcrates/sigil-protocol/src/audio.rs315++
Mcrates/sigil-protocol/src/error.rs52+
Mcrates/sigil-protocol/src/framing.rs56+
Mcrates/sigil-protocol/src/handshake.rs373++
Mcrates/sigil-protocol/src/input.rs508+++
Mcrates/sigil-protocol/src/lib.rs85+
Mcrates/sigil-protocol/src/media.rs440++
Mdocs/SETUP.md147-
Mdocs/cloudflare-pages.md58+
Mdocs/evidence/2026-06-23-ctap-hid-fido2-titan-communication.md102-
Mdocs/evidence/2026-06-23-fido2-hid-raw-hidraw.md84-
Mdocs/evidence/2026-06-23-hmac-iroh-derivation.md78-
Mdocs/evidence/2026-06-23-iroh-native-ping.md46-
Mdocs/evidence/2026-06-23-yubikey-hmac-detection.md46-
Mdocs/evidence/README.md12-
Mdocs/fresh-bazzite-host.md1500++++++++
Mdocs/public-release-delivery.md74+
Mdocs/research-yubikey-options.md40-
Mdocs/spikes/001-iroh-native-ping/Cargo.lock4119----------------------
Mdocs/spikes/001-iroh-native-ping/Cargo.toml12-
Mdocs/spikes/001-iroh-native-ping/README.md52-
Mdocs/spikes/001-iroh-native-ping/src/main.rs89-
Mdocs/spikes/002-yubikey-hmac-detection/Cargo.lock338--
Mdocs/spikes/002-yubikey-hmac-detection/Cargo.toml10-
Mdocs/spikes/002-yubikey-hmac-detection/README.md46-
Mdocs/spikes/002-yubikey-hmac-detection/src/main.rs48-
Mdocs/spikes/003-fido2-hid-enumeration/Cargo.lock781----
Mdocs/spikes/003-fido2-hid-enumeration/Cargo.toml8-
Mdocs/spikes/003-fido2-hid-enumeration/README.md41-
Mdocs/spikes/003-fido2-hid-enumeration/src/main.rs70-
Mdocs/spikes/004-hmac-iroh-derivation/Cargo.lock4471-----------------------
Mdocs/spikes/004-hmac-iroh-derivation/Cargo.toml15-
Mdocs/spikes/004-hmac-iroh-derivation/README.md36-
Mdocs/spikes/004-hmac-iroh-derivation/src/main.rs179-
Mdocs/spikes/005-frame-stream/Cargo.lock5587-----------------------------
Mdocs/spikes/005-frame-stream/Cargo.toml16-
Mdocs/spikes/005-frame-stream/run-spike.sh44-
Mdocs/spikes/005-frame-stream/src/main.rs225-
Mdocs/spikes/006-input-injection/Cargo.lock5717------------------------------
Mdocs/spikes/006-input-injection/Cargo.toml15-
Mdocs/spikes/006-input-injection/src/main.rs368--
Mdocs/spikes/007-titan-no-copy/Cargo.lock4451-----------------------
Mdocs/spikes/007-titan-no-copy/Cargo.toml14-
Mdocs/spikes/007-titan-no-copy/src/main.rs281-
Mflake.lock27+
Mflake.nix27+
Mrust-toolchain.toml4+
Mscripts/50-sigil-spark-audio.conf10+
Mscripts/70-sigil-remote-input.rules5+
Mscripts/bazzite-inventory.sh467++
Mscripts/install-bazzite-package.sh399++
Mscripts/loopback-proof.sh473++
Mscripts/package-bazzite-release.sh333++
Mscripts/package-macos-client.sh159+
Mscripts/rollback-bazzite-release.sh259+
Mscripts/sigil-host.service28+
Mscripts/stage-bazzite-release.sh309++
Mscripts/tests/bazzite-canonical-home.sh40+
Mscripts/tests/bazzite-host-executable-layout.sh78+
Mscripts/tests/bazzite-inventory-cold-boot.sh125+
Mscripts/tests/bazzite-package-assets.sh121+
Mscripts/tests/bazzite-release-activation.sh197+
Mscripts/tests/package-bazzite-provenance.sh104+
Mscripts/verify-demo-build.sh62+
Mscripts/verify-website.sh46+
Msrc-tauri/Cargo.toml19+-
Msrc-tauri/build.rs2+-
Msrc-tauri/icons/128x128.pngbin
Msrc-tauri/icons/128x128@2x.pngbin
Msrc-tauri/icons/32x32.pngbin
Msrc-tauri/icons/64x64.pngbin
Msrc-tauri/icons/Square107x107Logo.pngbin
Msrc-tauri/icons/Square142x142Logo.pngbin
Msrc-tauri/icons/Square150x150Logo.pngbin
Msrc-tauri/icons/Square284x284Logo.pngbin
Msrc-tauri/icons/Square30x30Logo.pngbin
Msrc-tauri/icons/Square310x310Logo.pngbin
Msrc-tauri/icons/Square44x44Logo.pngbin
Msrc-tauri/icons/Square71x71Logo.pngbin
Msrc-tauri/icons/Square89x89Logo.pngbin
Msrc-tauri/icons/StoreLogo.pngbin
Msrc-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml5+
Msrc-tauri/icons/android/mipmap-hdpi/ic_launcher.pngbin
Msrc-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.pngbin
Msrc-tauri/icons/android/mipmap-hdpi/ic_launcher_round.pngbin
Msrc-tauri/icons/android/mipmap-mdpi/ic_launcher.pngbin
Msrc-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.pngbin
Msrc-tauri/icons/android/mipmap-mdpi/ic_launcher_round.pngbin
Msrc-tauri/icons/android/mipmap-xhdpi/ic_launcher.pngbin
Msrc-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.pngbin
Msrc-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.pngbin
Msrc-tauri/icons/android/mipmap-xxhdpi/ic_launcher.pngbin
Msrc-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.pngbin
Msrc-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.pngbin
Msrc-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.pngbin
Msrc-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.pngbin
Msrc-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.pngbin
Msrc-tauri/icons/android/values/ic_launcher_background.xml4+
Msrc-tauri/icons/icon.icnsbin
Msrc-tauri/icons/icon.icobin
Msrc-tauri/icons/icon.pngbin
Msrc-tauri/icons/ios/AppIcon-20x20@1x.pngbin
Msrc-tauri/icons/ios/AppIcon-20x20@2x-1.pngbin
Msrc-tauri/icons/ios/AppIcon-20x20@2x.pngbin
Msrc-tauri/icons/ios/AppIcon-20x20@3x.pngbin
Msrc-tauri/icons/ios/AppIcon-29x29@1x.pngbin
Msrc-tauri/icons/ios/AppIcon-29x29@2x-1.pngbin
Msrc-tauri/icons/ios/AppIcon-29x29@2x.pngbin
Msrc-tauri/icons/ios/AppIcon-29x29@3x.pngbin
Msrc-tauri/icons/ios/AppIcon-40x40@1x.pngbin
Msrc-tauri/icons/ios/AppIcon-40x40@2x-1.pngbin
Msrc-tauri/icons/ios/AppIcon-40x40@2x.pngbin
Msrc-tauri/icons/ios/AppIcon-40x40@3x.pngbin
Msrc-tauri/icons/ios/AppIcon-512@2x.pngbin
Msrc-tauri/icons/ios/AppIcon-60x60@2x.pngbin
Msrc-tauri/icons/ios/AppIcon-60x60@3x.pngbin
Msrc-tauri/icons/ios/AppIcon-76x76@1x.pngbin
Msrc-tauri/icons/ios/AppIcon-76x76@2x.pngbin
Msrc-tauri/icons/ios/AppIcon-83.5x83.5@2x.pngbin
Msrc-tauri/src/commands/auth.rs163+-
Msrc-tauri/src/commands/input.rs223-
Msrc-tauri/src/commands/mod.rs20+-
Msrc-tauri/src/commands/network.rs3526++++++++++++++++++-
Msrc-tauri/src/commands/state.rs673+++-
Msrc-tauri/src/commands/streaming.rs699----
Msrc-tauri/src/main.rs69+-
Msrc-tauri/tauri.conf.json11+-
Msrc/audio-envelope.mjs146+
Msrc/audio-envelope.test.mjs155+
Msrc/audio-ring.mjs224+
Msrc/audio-ring.test.mjs249+
Msrc/audio-ui.mjs25+
Msrc/audio-ui.test.mjs45+
Msrc/audio-worklet.js66+
Msrc/audio-worklet.test.mjs140+
Msrc/av-sync.mjs69+
Msrc/av-sync.test.mjs70+
Msrc/connection-attempt.mjs9+
Msrc/connection-attempt.test.mjs23+
Msrc/controller-state.mjs375++
Msrc/controller-state.test.mjs233+
Msrc/frame-envelope.mjs97+
Msrc/frame-envelope.test.mjs106+
Msrc/frame-session.mjs90+
Msrc/frame-session.test.mjs58+
Msrc/frame-stats.mjs154+
Msrc/frame-stats.test.mjs165+
Msrc/index.html306+-
Msrc/input-state.mjs339++
Msrc/input-state.test.mjs335++
Msrc/main.js2602+++++++++++--
Msrc/mouse-input-wiring.test.mjs22+
Msrc/pointer-feedback.mjs16+
Msrc/pointer-feedback.test.mjs61+
Msrc/session-controls-layout.test.mjs41+
Msrc/stream-metrics.mjs335++
Msrc/stream-metrics.test.mjs450++
Msrc/style.css460++-
Msrc/video-decoder-config.mjs33+
Msrc/video-decoder-config.test.mjs38+
Msrc/window-geometry.mjs87+
Msrc/window-geometry.test.mjs86+
Mwebsite/_headers11+
Mwebsite/dither.js196+-
Mwebsite/index.html116+-
Mwebsite/install-sigil102+
Mwebsite/styles.css183+-
M .github/workflows/ci.yml +44 -0

Diff not shown: this commit changes too many lines.

M .github/workflows/release.yml +0 -67

Diff not shown: this commit changes too many lines.

M .github/workflows/website.yml +59 -0

Diff not shown: this commit changes too many lines.

M .gitignore +1 -6

Diff not shown: this commit changes too many lines.

M AGENTS.md +168 -47

Diff not shown: this commit changes too many lines.

M src-tauri/Cargo.lock => Cargo.lock +763 -2197

Diff not shown: this commit changes too many lines.

M Cargo.toml +6 -1

Diff not shown: this commit changes too many lines.

M README.md +199 -74

Diff not shown: this commit changes too many lines.

M crates/sigil-host/Cargo.toml +39 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/audio.rs +559 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/bin/sigil-probe.rs +973 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/clock.rs +79 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/config.rs +689 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/cursor.rs +611 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/identity.rs +211 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/input.rs +1482 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/main.rs +631 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/server.rs +2367 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-host/src/source.rs +1427 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-protocol/Cargo.toml +17 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-protocol/src/audio.rs +315 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-protocol/src/error.rs +52 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-protocol/src/framing.rs +56 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-protocol/src/handshake.rs +373 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-protocol/src/input.rs +508 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-protocol/src/lib.rs +85 -0

Diff not shown: this commit changes too many lines.

M crates/sigil-protocol/src/media.rs +440 -0

Diff not shown: this commit changes too many lines.

M docs/SETUP.md +0 -147

Diff not shown: this commit changes too many lines.

M docs/cloudflare-pages.md +58 -0

Diff not shown: this commit changes too many lines.

M docs/evidence/2026-06-23-ctap-hid-fido2-titan-communication.md +0 -102

Diff not shown: this commit changes too many lines.

M docs/evidence/2026-06-23-fido2-hid-raw-hidraw.md +0 -84

Diff not shown: this commit changes too many lines.

M docs/evidence/2026-06-23-hmac-iroh-derivation.md +0 -78

Diff not shown: this commit changes too many lines.

M docs/evidence/2026-06-23-iroh-native-ping.md +0 -46

Diff not shown: this commit changes too many lines.

M docs/evidence/2026-06-23-yubikey-hmac-detection.md +0 -46

Diff not shown: this commit changes too many lines.

M docs/evidence/README.md +0 -12

Diff not shown: this commit changes too many lines.

M docs/fresh-bazzite-host.md +1500 -0

Diff not shown: this commit changes too many lines.

M docs/public-release-delivery.md +74 -0

Diff not shown: this commit changes too many lines.

M docs/research-yubikey-options.md +0 -40

Diff not shown: this commit changes too many lines.

M docs/spikes/001-iroh-native-ping/Cargo.lock +0 -4119

Diff not shown: this commit changes too many lines.

M docs/spikes/001-iroh-native-ping/Cargo.toml +0 -12

Diff not shown: this commit changes too many lines.

M docs/spikes/001-iroh-native-ping/README.md +0 -52

Diff not shown: this commit changes too many lines.

M docs/spikes/001-iroh-native-ping/src/main.rs +0 -89

Diff not shown: this commit changes too many lines.

M docs/spikes/002-yubikey-hmac-detection/Cargo.lock +0 -338

Diff not shown: this commit changes too many lines.

M docs/spikes/002-yubikey-hmac-detection/Cargo.toml +0 -10

Diff not shown: this commit changes too many lines.

M docs/spikes/002-yubikey-hmac-detection/README.md +0 -46

Diff not shown: this commit changes too many lines.

M docs/spikes/002-yubikey-hmac-detection/src/main.rs +0 -48

Diff not shown: this commit changes too many lines.

M docs/spikes/003-fido2-hid-enumeration/Cargo.lock +0 -781

Diff not shown: this commit changes too many lines.

M docs/spikes/003-fido2-hid-enumeration/Cargo.toml +0 -8

Diff not shown: this commit changes too many lines.

M docs/spikes/003-fido2-hid-enumeration/README.md +0 -41

Diff not shown: this commit changes too many lines.

M docs/spikes/003-fido2-hid-enumeration/src/main.rs +0 -70

Diff not shown: this commit changes too many lines.

M docs/spikes/004-hmac-iroh-derivation/Cargo.lock +0 -4471

Diff not shown: this commit changes too many lines.

M docs/spikes/004-hmac-iroh-derivation/Cargo.toml +0 -15

Diff not shown: this commit changes too many lines.

M docs/spikes/004-hmac-iroh-derivation/README.md +0 -36

Diff not shown: this commit changes too many lines.

M docs/spikes/004-hmac-iroh-derivation/src/main.rs +0 -179

Diff not shown: this commit changes too many lines.

M docs/spikes/005-frame-stream/Cargo.lock +0 -5587

Diff not shown: this commit changes too many lines.

M docs/spikes/005-frame-stream/Cargo.toml +0 -16

Diff not shown: this commit changes too many lines.

M docs/spikes/005-frame-stream/run-spike.sh +0 -44

Diff not shown: this commit changes too many lines.

M docs/spikes/005-frame-stream/src/main.rs +0 -225

Diff not shown: this commit changes too many lines.

M docs/spikes/006-input-injection/Cargo.lock +0 -5717

Diff not shown: this commit changes too many lines.

M docs/spikes/006-input-injection/Cargo.toml +0 -15

Diff not shown: this commit changes too many lines.

M docs/spikes/006-input-injection/src/main.rs +0 -368

Diff not shown: this commit changes too many lines.

M docs/spikes/007-titan-no-copy/Cargo.lock +0 -4451

Diff not shown: this commit changes too many lines.

M docs/spikes/007-titan-no-copy/Cargo.toml +0 -14

Diff not shown: this commit changes too many lines.

M docs/spikes/007-titan-no-copy/src/main.rs +0 -281

Diff not shown: this commit changes too many lines.

M flake.lock +27 -0

Diff not shown: this commit changes too many lines.

M flake.nix +27 -0

Diff not shown: this commit changes too many lines.

M rust-toolchain.toml +4 -0

Diff not shown: this commit changes too many lines.

M scripts/50-sigil-spark-audio.conf +10 -0

Diff not shown: this commit changes too many lines.

M scripts/70-sigil-remote-input.rules +5 -0

Diff not shown: this commit changes too many lines.

M scripts/bazzite-inventory.sh +467 -0

Diff not shown: this commit changes too many lines.

M scripts/install-bazzite-package.sh +399 -0

Diff not shown: this commit changes too many lines.

M scripts/loopback-proof.sh +473 -0

Diff not shown: this commit changes too many lines.

M scripts/package-bazzite-release.sh +333 -0

Diff not shown: this commit changes too many lines.

M scripts/package-macos-client.sh +159 -0

Diff not shown: this commit changes too many lines.

M scripts/rollback-bazzite-release.sh +259 -0

Diff not shown: this commit changes too many lines.

M scripts/sigil-host.service +28 -0

Diff not shown: this commit changes too many lines.

M scripts/stage-bazzite-release.sh +309 -0

Diff not shown: this commit changes too many lines.

M scripts/tests/bazzite-canonical-home.sh +40 -0

Diff not shown: this commit changes too many lines.

M scripts/tests/bazzite-host-executable-layout.sh +78 -0

Diff not shown: this commit changes too many lines.

M scripts/tests/bazzite-inventory-cold-boot.sh +125 -0

Diff not shown: this commit changes too many lines.

M scripts/tests/bazzite-package-assets.sh +121 -0

Diff not shown: this commit changes too many lines.

M scripts/tests/bazzite-release-activation.sh +197 -0

Diff not shown: this commit changes too many lines.

M scripts/tests/package-bazzite-provenance.sh +104 -0

Diff not shown: this commit changes too many lines.

M scripts/verify-demo-build.sh +62 -0

Diff not shown: this commit changes too many lines.

M scripts/verify-website.sh +46 -0

Diff not shown: this commit changes too many lines.

M src-tauri/Cargo.toml +11 -8

Diff not shown: this commit changes too many lines.

M src-tauri/build.rs +1 -1

Diff not shown: this commit changes too many lines.

M src-tauri/icons/128x128.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/128x128@2x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/32x32.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/64x64.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/Square107x107Logo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/Square142x142Logo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/Square150x150Logo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/Square284x284Logo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/Square30x30Logo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/Square310x310Logo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/Square44x44Logo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/Square71x71Logo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/Square89x89Logo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/StoreLogo.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml +5 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/android/values/ic_launcher_background.xml +4 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/icon.icns +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/icon.ico +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/icon.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-512@2x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0

Diff not shown: this commit changes too many lines.

M src-tauri/src/commands/auth.rs +37 -126

Diff not shown: this commit changes too many lines.

M src-tauri/src/commands/input.rs +0 -223

Diff not shown: this commit changes too many lines.

M src-tauri/src/commands/mod.rs +1 -19

Diff not shown: this commit changes too many lines.

M src-tauri/src/commands/network.rs +3346 -180

Diff not shown: this commit changes too many lines.

M src-tauri/src/commands/state.rs +634 -39

Diff not shown: this commit changes too many lines.

M src-tauri/src/commands/streaming.rs +0 -699

Diff not shown: this commit changes too many lines.

M src-tauri/src/main.rs +38 -31

Diff not shown: this commit changes too many lines.

M src-tauri/tauri.conf.json +7 -4

Diff not shown: this commit changes too many lines.

M src/audio-envelope.mjs +146 -0

Diff not shown: this commit changes too many lines.

M src/audio-envelope.test.mjs +155 -0

Diff not shown: this commit changes too many lines.

M src/audio-ring.mjs +224 -0

Diff not shown: this commit changes too many lines.

M src/audio-ring.test.mjs +249 -0

Diff not shown: this commit changes too many lines.

M src/audio-ui.mjs +25 -0

Diff not shown: this commit changes too many lines.

M src/audio-ui.test.mjs +45 -0

Diff not shown: this commit changes too many lines.

M src/audio-worklet.js +66 -0

Diff not shown: this commit changes too many lines.

M src/audio-worklet.test.mjs +140 -0

Diff not shown: this commit changes too many lines.

M src/av-sync.mjs +69 -0

Diff not shown: this commit changes too many lines.

M src/av-sync.test.mjs +70 -0

Diff not shown: this commit changes too many lines.

M src/connection-attempt.mjs +9 -0

Diff not shown: this commit changes too many lines.

M src/connection-attempt.test.mjs +23 -0

Diff not shown: this commit changes too many lines.

M src/controller-state.mjs +375 -0

Diff not shown: this commit changes too many lines.

M src/controller-state.test.mjs +233 -0

Diff not shown: this commit changes too many lines.

M src/frame-envelope.mjs +97 -0

Diff not shown: this commit changes too many lines.

M src/frame-envelope.test.mjs +106 -0

Diff not shown: this commit changes too many lines.

M src/frame-session.mjs +90 -0

Diff not shown: this commit changes too many lines.

M src/frame-session.test.mjs +58 -0

Diff not shown: this commit changes too many lines.

M src/frame-stats.mjs +154 -0

Diff not shown: this commit changes too many lines.

M src/frame-stats.test.mjs +165 -0

Diff not shown: this commit changes too many lines.

M src/index.html +134 -172

Diff not shown: this commit changes too many lines.

M src/input-state.mjs +339 -0

Diff not shown: this commit changes too many lines.

M src/input-state.test.mjs +335 -0

Diff not shown: this commit changes too many lines.

M src/main.js +2150 -452

Diff not shown: this commit changes too many lines.

M src/mouse-input-wiring.test.mjs +22 -0

Diff not shown: this commit changes too many lines.

M src/pointer-feedback.mjs +16 -0

Diff not shown: this commit changes too many lines.

M src/pointer-feedback.test.mjs +61 -0

Diff not shown: this commit changes too many lines.

M src/session-controls-layout.test.mjs +41 -0

Diff not shown: this commit changes too many lines.

M src/stream-metrics.mjs +335 -0

Diff not shown: this commit changes too many lines.

M src/stream-metrics.test.mjs +450 -0

Diff not shown: this commit changes too many lines.

M src/style.css +370 -90

Diff not shown: this commit changes too many lines.

M src/video-decoder-config.mjs +33 -0

Diff not shown: this commit changes too many lines.

M src/video-decoder-config.test.mjs +38 -0

Diff not shown: this commit changes too many lines.

M src/window-geometry.mjs +87 -0

Diff not shown: this commit changes too many lines.

M src/window-geometry.test.mjs +86 -0

Diff not shown: this commit changes too many lines.

M website/_headers +11 -0

Diff not shown: this commit changes too many lines.

M website/dither.js +180 -16

Diff not shown: this commit changes too many lines.

M website/index.html +86 -30

Diff not shown: this commit changes too many lines.

M website/install-sigil +102 -0

Diff not shown: this commit changes too many lines.

M website/styles.css +175 -8

Diff not shown: this commit changes too many lines.