Files
MichaelScottsman 4fc0cfffd6 assPod: a music and video player in the hand, on VLC
A music note button on the dashboard bar, left of the paintbrush, opens the
assPod in the hand whose laser pressed it. VLC plays its media library's music
and videos in the background; both sticks turn the click wheel, A and stick
clicks press the centre, B is Menu and the hamburger button puts it away. The
rest of the UI fades out while it is open.

- device/asspod: the pod's OS, screens, VLC engine and scene graph (bundled by
  tools/build_asspod.py into device/vr/systemui.asspod.js), with the model
  exported from tools/asspod-model
- native/podd: renders the 3D body with real shaders into a box of stereo
  portal panels, and the playing video's picture under the screen
- device/shell_ext/asspod.py: VLC, the library scan, art, podd, and video
  frames from ffmpeg paced to VLC's clock; videos keep their place across
  restarts
- Reposition and Black/White finish on the main menu
- install.sh offers to install VLC when it is missing
2026-10-09 22:27:35 -04:00

54 lines
1.7 KiB
CSS

/* Glass Shell: the music note on the bar (the assPod, device/rt/34-asspod.js, flag assPod).
Wrapped as html.lgs-on { ... }.
- .lgs-asspod: a glass circle of its own between the system capsule and the paintbrush, the
paintbrush's glass and size (33-tune.css §1). Its native cover is in theme/layers/30-bar.json.
The button inside is Steam's small bar button (VRDashboardBarSmallButton > Highlight), so
30-bar.css §1.2 lights it like the other discs (laser hover, gamepad focus).
- While the assPod is out (html.lgs-asspod-out, set by the module while the daemon's bridge value
says so), Steam's windows fade out and take no laser clicks: the assPod has the controls. */
/* 1. The circle */
.lgs-asspod {
position: relative;
flex: none;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
width: 80px;
height: 80px;
background: var(--lgs-mat-liquid-room-bg);
box-shadow: var(--lgs-mat-liquid-shade);
border-radius: var(--lgs-r-capsule);
--lgs-edge: liquid;
}
/* 56 pp disc at a 64 pp pitch, as in the system capsule */
.lgs-asspod .VRDashboardBarSmallButton {
font-size: 28px;
padding: 0 4px;
}
.lgs-asspod-icon {
display: flex;
width: 24px;
height: 24px;
}
.lgs-asspod-icon svg {
display: block;
width: 24px;
height: 24px;
}
/* 2. The assPod is out: the whole UI fades out (every Steam window: the window, sidebars, the bar,
popups) and takes no clicks; it fades back in when the assPod is put away. The native glass fades
with it (lgs_sg.js fade(), called by the assPod in SteamVR's page). */
body {
transition: opacity 300ms ease;
}
&.lgs-asspod-out body {
opacity: 0;
pointer-events: none;
}