xerohour / daedalOS

Desktop environment in the browser.

Home Page:https://dustinbrett.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🌌 daedalOS 🌌

Desktop environment in the browser

52 x Live Coding Streams of the Project w/Dustin Brett

Stars Stars

Demo ⚑

Demo

Try It 🏁

Prerequisites

Build & Run

git clone https://github.com/DustinBrett/daedalOS.git
cd daedalOS
yarn
yarn build:fs
yarn dev

System 🧠

  • File Explorer
    • Back, Forward, Recent locations, Address bar
  • Drag & Drop File Support (internal & external)
    • Loading progress dialog
  • ZIP (write support), ZIP/ISO read support, RAR extract support
  • Writes to IndexedDb
  • Group selection/manipulation & drag to sort
  • Dynamic and auto cached icons for music, images & video
  • Context Menus
    • Cut, Copy, Create shortcut, Delete, Rename
    • Add file, Map directory
    • Open with, Open file/folder location, Open in new window
    • Download, Add to archive, Extract here, Set as wallpaper
    • Sort by, New Folder, New Text Document
  • Keyboard Shortcuts
    • CTRL+C, CTRL+V, CTRL+X, CTRL+A, Delete
    • F2, F5, Backspace, Arrows, Enter
  • File information tooltips
  • Allow sorting by name, date, type or extension
    • Persists states

Windows

Start Menu

  • Expandable Sidebar
    • Apps list, Documents shortcut, Power (clears session)
  • Spotlight visual effect
  • Folder support
  • Keyboard shortcut opens with SHIFT+ESC

Taskbar

  • Peek hover preview of windows
  • Focused window indicator

Clock

  • Runs in a web worker
  • Synced to system clock on load
  • Date tooltip

Wallpaper

URL

  • Query parameter loading
    • Examples:
      • /?url=/favicon.ico
      • /?app=TinyMCE

Apps πŸ§ͺ

BoxedWine (.exe, .zip)

  • Runs 16/32-bit Windows applications

Browser (.htm, .html)

  • Loads websites (w/HTTP header support)
  • Bookmark bar
  • Favicon support
  • Back/Forward & Reload
  • Google search via Address bar
  • Console, Elements, Network, Resources, Sources, DOM
  • Activate from Start Menu or SHIFT+F12

js-dos (.exe, .jsdos, .zip)

  • DOS emulator
  • Automatic save states on close
    • /Users/Public/Snapshots
  • Automatic window resize
  • Code/text editor
  • Supports all file types
  • Save files via CTRL+S
  • Line count, cursor position, language id
  • Prettier formatting
    • json, js/ts, css/sass/less, html, markdown

PDF (.pdf)

  • Renders PDF's
  • Page current/count & Zoom

Photos

Ruffle (.swf, .spl)

  • Flash Player emulator

TinyMCE (.whtml)

  • Read & WYSIWYG modes
  • File save support

Virtual x86 (.img, .iso)

  • x86 emulator
  • Automatic save states on close
    • /Users/Public/Snapshots
  • Automatic window resize

Webamp (.mp3, .wsz)

To Do πŸ”¨

ASAP

  • Add custom session.json for sort orders
  • File search in Terminal & File Explorer
  • Status bar button to save Monaco on mobile
  • PDF change page/zoom inputs
  • IRC Client

Soon

  • Add 96x96 icons for higher dpi devices
  • Make desktop icons draggable around grid
  • Window Menu Bar
  • Open/Save File Dialog
  • File Explorer Column View
  • File Properties Dialog
  • NES/SNES Emulator
  • Light theme
  • FFMpeg Support
  • ImageMagik Support
  • System Tray

Eventually

  • Event Viewer
  • Task Manager
  • Run Dialog
  • Drag/Drop Taskbar Entries
  • Wapm I/O
  • Terminal piping
  • Virtual Assistant
  • Calendar
  • Spreadsheet Viewer
  • Browser Tabs
  • Fancy Zones
  • Service Worker

Bugs πŸ›

General

  • Initial sort order is not based on session
  • Layout shifts when text is untruncated
  • Closing File Manager too quickly causes memory leak
  • Monaco breaks Vanta is loaded via url query
  • Space Cadet loads too big if BoxedWine is loaded

Mobile

  • Titlebar menu/clicking doesn't work properly when draggable

Safari Mobile

  • Drag image is black
  • V86 not working
  • Eruda is missing titlebar

Firefox

  • TinyMCE styling is reset on 2nd load
  • Webamp stays in front during File Explorer drags

About

Desktop environment in the browser.

https://dustinbrett.com

License:MIT License


Languages

Language:JavaScript 79.8%Language:TypeScript 20.0%Language:CSS 0.2%Language:Shell 0.0%