Download

name: adom-screensaver description: Deploy (prebuilt + signed), configure, run, and troubleshoot the Adom vibe-coding screensaver + native keep-awake on a user's Windows laptop via the adom-desktop relay. A WebView2 (Edge/Chromium) billboard of recent Adom Wiki drops, plays webm silently, renders SVG, truly caches heroes, that rests the panel (no burn-in) while keeping the machine awake so Claude Code / Remote Control threads survive. WINDOWS ONLY. Use to install/deploy, change idle or display-off timing, disable lock-on-wake, trigger it, or troubleshoot. Trigger words, adom screensaver, adom-screensaver, vibe-coding screensaver, keep laptop awake, keep awake without powertoys, stay awake, screen off but stay awake, adom-stayawake, display off timeout, screensaver lock on wake, set up screensaver, trigger screensaver, Win+Shift+L screensaver, screensaver burn-in.

Adom Screensaver, deploy (prebuilt) + operate

Turns a Windows laptop into an always-on home for the user's Claude Code threads: a branded WebView2 billboard of recent Adom Wiki drops + native keep-awake (no PowerToys). Drive it from the Adom container through the adom-desktop relay. See also:

⚠️ WINDOWS ONLY. adompkg install adom-screensaver on a Linux/WSL2 container only installs these skills + stages the deploy payload, it does not run anything there. The screensaver is deployed to the user's Windows laptop over the relay. (The private source + build live on the org-only adom-screensaver-dev page; this public package ships only the prebuilt, signed binaries, no compiler needed.)

What it is

A fullscreen WebView2 rendering billboard.html: opens with a branded fade-to-black, then a power-aware nerd-stats splash (cover-fades up ~800ms over the fully-rendered content), then cross-fades through Wiki v2 + v1 hero cards. Plays webm muted/looped, renders SVG/raster; hero images/SVGs are truly cached to disk (video streams). When the display-off time arrives it rests, pauses video (releasing the browser's display wake-lock), blanks to black, and powers the panel off, so it never burns a bright billboard into a panel that's meant to be off. Keep-awake holds the system/network the whole time. Win+Shift+L launches it on demand. Only public wiki pages are advertised (org-private filtered; curate more via exclude.txt).

Relay: base64 everything

b64=$(base64 -w0 script.ps1); adom-desktop run_script "{\"interpreter\":\"powershell\",\"scriptB64\":\"$b64\"}"

Check adom-desktop status hostname first (it can flip between the laptop and winvm). Calls time out ~60s; launch long things detached + poll. A winexe (.scr/.exe) ignores &, use Start-Process. If run_script returns empty, re-arm shell_auto_approve.

Deploy = PREBUILT signed binaries (no compile)

Install dir: C:\Users\<user>\adom-screensaver. The package's dist/win/ already holds the signed .scr + helper + DLLs + html + assets (subject Adom Industries, Inc., Azure Trusted Signing, so Defender won't quarantine them). To deploy:

  1. Push dist/win/* to the install dir (send_files for the big DLLs; base64 for the small files via the Defender-safe .new + Move-Item -Force pattern). Files: adom-screensaver.scr, adom-stayawake.exe, Microsoft.Web.WebView2.Core.dll, Microsoft.Web.WebView2.WinForms.dll, WebView2Loader.dll, billboard.html, config.html, adom.ico, adom-wordmark.png, bundle.json. Do not compile, ship the signed binaries as-is.
  2. Keep-awake + autostart: launch adom-stayawake.exe; set BOTH the HKCU …\Run value adom-stayawake AND a Startup-folder shortcut (one alone got wiped on reboot). It's power-aware (AC = hold ES_SYSTEM_REQUIRED; battery = passive) and registers the Win+Shift+L hotkey.
  3. Register (merge, never clobber): HKCU\Control Panel\DesktopSCRNSAVE.EXE=<dir>\adom-screensaver.scr, ScreenSaveActive=1, ScreenSaveTimeOut=120 (2 min), ScreenSaverIsSecure=0. Apply live: SystemParametersInfo(0x0011,1,..) + SystemParametersInfo(0x000F,<secs>,..).
  4. Real backlight-off: powercfg /change monitor-timeout-ac 5 (+ -dc 5), the saver rests + powers the panel off at this mark.
  5. No lock on wake (optional, ADMIN): CONSOLELOCK=0 needs elevation, warn the user, trigger one UAC prompt, verify via the per-scheme registry index. (A real sleep-then-wake still asks for sign-in.)
  6. Verify the deployed .scr is signed: (Get-AuthenticodeSignature <dir>\adom-screensaver.scr).Status = Valid.

bundle.json in dist/win/ lists the canonical file set + registry keys for an automated deploy.

Configure (common asks)

  • Idle timeout ("come on after N min"): ScreenSaveTimeOut=N*60 + live SystemParametersInfo(0x000F,..).
  • Display-off ("turn the display off after N min"): powercfg /change monitor-timeout-ac N.
  • Win+Shift+L hotkey: toggle from the preferences screen (writes hotkey.disabled in the install dir).
  • Curate the rotation: append a slug to exclude.txt, NO redeploy (adom-screensaver-billboard).
  • Preferences screen: Windows Screen Saver "Settings…" opens the live power-settings drift table.

Run on demand

Win+Shift+L, or Start-Process '<dir>\adom-screensaver.scr' -ArgumentList '/s'. Grace ~1s, then any key/mouse wakes, instant during the billboards (the window hides immediately; no slow fade).

Troubleshooting

  • Blank/black billboard: WebView2 Runtime missing, or the 3 DLLs / WebView2Loader.dll not beside the .scr; check %LOCALAPPDATA%\adom-screensaver\wv.log (also has a 60s heartbeat + REST lines).
  • Defender quarantined the .scr: shouldn't happen, it's signed. If a modified unsigned build was deployed, re-deploy the signed dist/win binaries (signing is a -dev/build concern).
  • Screen on all night / burn-in: the rest path failed, confirm the deployed .scr is the current signed build; wv.log should show REST: … powering panel off at the display-off mark.
  • Keep-awake gone after reboot: Run key + SCRNSAVE.EXE can get wiped, that's why we also set the Startup shortcut. Re-launch + re-apply.

Honesty constraints

Don't claim a hardware dim (the on-screen dim is cosmetic CSS; real backlight-off = the display-off timeout). Don't claim a /remote-control thread count (no programmatic enumeration). adom-rc is deprecated.