Devlog #7 — File lifecycle, Z-Retro polish, Glass vibrancy, and shell QoL
This stretch was about making Ztionix feel like one system instead of a pile of separate apps. Files on the desktop should do something, windows should feel premium, and Z-Retro should behave like a real emulator shelf — not a demo page with a canvas in it.
File lifecycle (the big one)
Desktop drag-and-drop was already importing into the VFS, but it felt disconnected: files appeared in generic slots, icons didn’t match types, and opening a ROM while Z-Retro was already running did nothing useful.
So I built a proper file lifecycle:
-
fileTypeHandlers.ts— one place for extension → app routing (Editor, ZMusic, Z-Retro, Paint, Video, etc.) - Unknown files — notification + “Open in Editor?” instead of silently failing or guessing wrong
- Desktop drop polish — icons spawn under the cursor, not the next grid slot
- Desktop icons — show the target app’s icon (music note, retro pad, editor pen…) instead of generic file glyphs
-
Singleton reopen — ZMusic and Z-Retro don’t spawn a second WASM instance; they call
init({ path })and swap the track/ROM in the existing window
Double-click on the desktop, double-click in Files, and open in Terminal all go through the same path now.
Alt+Q window switcher
Browser Alt+Tab is useless here, and the old instant-cycle felt cheap. Alt+Q opens a centered switcher: tap Q again to cycle, release Alt to focus. Flat dark UI, no glass blur — matches Minimal more than the new Glass theme.
Z-Retro upgrades
Z-Retro got a lot of love:
-
Save / Load toolbar buttons (VFS save states under
ROMs/saves/) - Close prompt when a game is running — Save & Close, Just Close, or No; no prompt on the library screen
- Library thumbnails — screenshot captured at save time (while the frame is live, before state serialization); card shows the save-game shot, not a black auto-grab
- Controls button fix — opens the real control menu, not Restart
Themes & appearance
-
Glass theme overhaul — macOS-style vibrancy:
blur(40px) saturate(150%), edge-lit borders, deep layered shadows, frosted chrome vs solid inputs/emulator canvas - Minimal + custom wallpaper — presets stay pure black; custom upload/URL works on Minimal too
-
Font scale — Settings slider 75–150% via root
--font-scaleand rem-based typography (fixed the bug wherehtml { font-size: 1rem }was stomping the scale)
Terminal
-
zfetch/neofetch— system info panel with Ztionix branding - Selectable output, Ctrl+C copies selection
Bug fixes worth naming
- Window drag release glitch (transform commit before removing
.dragging) - Glass/minimal theme edge cases
- Font scale actually applying globally after the root CSS fix
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.