Okay, yes I forgot to devlog… or commit
This was an absolute lock-in but I don’t wanna rank low on storytelling, so I’ll make this one detailed lol.
Wallpaper Switcher
- Six presets, default plus five gradients: nebula, deep blue, solar flare, aurora, mono
- Clicking a swatch fades the desktop background over 0.6s instead of snapping
- Choice persists via
localStorageso it survives a refresh -
markActiveWallpaperSwatchre-reads storage and re-marks the active swatch every time the window reopens
NGC Catalogue Browser
- Started as a hardcoded Messier list, which I scrapped once I found Datastro’s public deep sky objects dataset (~220k NGC/IC/Messier entries, CORS-open, no key)
- Search input debounces 350ms before hitting the API, results sort by magnitude
- Clicking a result fills the detail panel: type, constellation, magnitude, coordinates
- Dataset uses the Historically Corrected NGC scheme (
GPair,OCl,SNR,Cl+N), so I wrote a bucket function that checks substrings to map raw types into galaxy, nebula, cluster, or other for the filter dropdown - Built an 8-object offline fallback (Andromeda, Orion Nebula, Ring Nebula, Pleiades, etc) that kicks in silently if the fetch fails, with a small offline warning shown in the list
Did You Know Notifications
- Toast-style pings slide in from the right with a random space fact
- First one fires after 4 seconds, then every 60-120 seconds at random
- 18 facts in the pool right now, the neutron star teaspoon one still gets me
- Caught a bug where fast in/out window clicks could call
scheduleNotificationstwice and stack two loops, doubling the ping rate - Fixed it with a
notifStartedflag so the loop only ever starts once
Window Resizing And Snapping
- Built right before the wallpaper stuff, resize first then snap
- Every window gets a drag handle in the bottom right corner, clamped to a minimum width and height
- Handle calls
stopPropagationonmousedownso resizing doesn’t also trigger the window drag - Snap shows a dashed preview box near screen edges, locks into that rect on release
- Found a bug writing this up: a top-right zone gets detected but has no rect defined for it, so it falls back to snapping full width across the top instead of a proper quadrant.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.