Skip to content

solid-apps/glass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

❖ Glass

A liquid-glass desktop for your Solid pod — one HTML file, no build step.

🔗 Live demo: https://solid-apps.github.io/glass/

Glass is a self-contained desktop environment in a single index.html: a real window manager (drag, minimize-to-dock, zoom, Overview), menu bar, dock with magnification, ⌘Space search, notifications, Control Center, and a suite of built-in apps — Files, Compass (browser), Notes, Terminal, Music (real-time WebAudio synth), Photos, Weather, Clock, Calculator, Registry, Settings, Trash.

Open the file. That's the install.

Solid pod integration

Sign in from the menu bar (Sign In → Solid OIDC or Nostr, via xlogin) and your pod mounts at /Pod:

  • Files browses your pod's LDP containers next to the local folders — lazily hydrated per-container, with live repaints as listings arrive
  • Writes go through: save a note, mkdir, rm — the cache updates instantly and PUT/DELETE hit the pod in the background
  • Notes edits pod text resources with debounced autosave back to the pod
  • Terminal speaks pod: login, whoami (your WebID), pod, cat /Pod/…, and mount <url> to mount any public LDP container without signing in
  • Live updates: solid-0.1 Updates-Via WebSocket subscriptions re-sync containers when another client writes

The VFS stays synchronous — the pod is a write-through cache, so every app works unchanged whether a file is local or remote.

SLIP-48 panes & the solid-apps registry

Glass shares the pane/app ecosystem of hub, chrome, ubuntu, and win98:

  • Open a JSON-LD resource on your pod and Glass matches its rdf:type against the registry and renders it with the same SLIP-48 pane module those shells use (render(subject, store, container, rawData, ctx))
  • The Registry app in the dock lists community apps (render(container, ctx)) and runs them in Glass windows
  • Served from solid-apps.github.io, Glass honours hub's pinned per-class pane defaults (same-origin localStorage)

Things to try

  • Open Terminal: neofetch, tree, mount solidcommunity.net
  • Press ⌘Space to search · F3 for Overview
  • Open Registry from the dock and launch a community app
  • Sign in, then browse /Pod in Files — open a .jsonld note and watch it render in the shared note pane

Architecture

Everything lives in index.html:

Module Role
WM window manager — drag, focus/z-order, minimize, zoom, Overview
VFS synchronous virtual filesystem with trash semantics
Pod LDP write-through cache mounted at /Pod + Updates-Via WebSockets
Auth reactive wrapper over the xlogin widget (Solid OIDC / Nostr)
Panes solid-apps registry loader + SLIP-48 pane dispatch
APPS app registry — { name, icon, w, h, build(body, win, args) }
h() tiny hyperscript helper; no framework

External at runtime (all optional, Glass works fully offline without them): unpkg.com/xlogin for auth, solid-apps.github.io/registry for panes/apps.

Roadmap

  • Serve same-origin as the home skin for jspod so auth rides the pod's own session
  • Publish Glass's built-in apps as registry panes so they run in the other shells too

License

AGPL-3.0-only

About

❖ Glass — a liquid-glass desktop in one HTML file. Solid pod plumbing on the roadmap.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages