i put a dynamic island in the top of the screen,
like the iphone. it’s a black pill that sits over the menu bar and morphs:
the bigger news: the music is real. i didn’t want to embed mp3 files
so the music app synthesizes lo-fi loops with the WebAudio api — triangle
wave chords, a sine bass, random pentatonic notes sprinkled on top, plus
a looped noise buffer filtered down for vinyl hiss. there are 3 “tracks”
(bpm + chord progressions) and a live frequency visualizer on a canvas.
no files, no copyright, just math.
also added:
open command, so open settings launches appsthat wraps version 1.0. one html file, no frameworks, no login, and it
actually feels like an os. on to WebOS 2 🚀
the os grew a real window system . everything is managed from one
createWindow(app) function, so adding a new app is just adding an object
with a name, an icon and a render function.
what’s new:
the dock magnify is just a css transform on hover:
started making my own os that runs in a browser tab. no frameworks, just
one html file, because i want to actually understand every line of it.
first build has:
the fun part was making the window draggable. i used pointer events instead
of mouse events so it would also work if someone opens this on a phone.
the trick that made it feel smooth: instead of tracking where the mouse is,
next up: more windows, real minimize/maximize, and a dock.