DustinBrett/daedalOS
Desktop environment in the browser. Contribute to DustinBrett/daedalOS development by creating an account on GitHub.
13k stars · 1.2k forks
README
🌌 daedalOS 🌌 Desktop environment in the browser
Feature Overview
System 🧠 File System
File Explorer
Back, Forward, Recent locations, Up one level, Address bar, Search Thumbnail & Details Views
Drag & Drop File Support (internal & external)
Loading progress dialog
ZIP (write support), ZIP/ISO read support, 7Z/GZ/RAR/TAR/etc. extract support Writes to IndexedDb Group selection/manipulation & drag to sort/arrange Dynamic and auto cached icons for music, images, video & emulator states Context Menus
Cut, Copy, Create shortcut, Delete, Rename Add file(s), Map directory Open with options/dialog, Open file/folder location, Open in new window, Open Terminal here Download, Add to archive, Extract here, Set as wallpaper, Set as mouse pointer, Convert audio/video/photo/spreadsheets, Properties (w/Details) Sort by, New Folder, New Text Document Screen Capture
Keyboard Shortcuts
CTRL+C, CTRL+V, CTRL+X, CTRL+A, Delete F2, F5, Backspace, Arrows, Enter SHIFT+CTRL+R, SHIFT+F10, SHIFT+F12 In Fullscreen: Windows Key, Windows Key + R
File information tooltips Allow sorting by name, size, type or date
Persists icon position/sort order
Windows
Resizable and Draggable Minimize, Maximize & Close Persists size/position/maximized states Animates opening and closing
Start Menu
Expandable Sidebar
Apps list, Documents/Pictures/Videos shortcuts, Power (clears session)
Spotlight visual effect Folder support Keyboard shortcut opens with SHIFT+ESC
Or Windows Key when in fullscreen
Taskbar
Peek hover preview of windows Focused window indicator Search menu (w/Recent files) AI Chat Agent (Prompt API & WebLLM) (w/Summarize & Image Generation)
Clock
Runs in a Web Worker
Drawn in an OffscreenCanvas
NTP server time mode (ntp.js) Synced to system clock on load Date tooltip Calendar popup
Background & Screensaver
Dynamic animated wallpapers (OffscreenCanvas/Web Worker)
Waves Hexells Matrix Coastal Landscape
Set via image/video (Fill, Fit, Stretch, Tile, Center) Picture Slideshow Astronomy Picture of the Day Art Institute of Chicago Metropolitan Museum of Art Lorem Picsum AI Generated Wallpapers Stable Diffusion Custom screen saver file support
3D FlowerBox 3D Maze Pipes
Run Dialog
Launch apps by alias or paths Opens ipfs: & nostr: URIs
URL
Query parameter loading
Examples:
/?url=/CREDITS.md /?app=Browser
Apps 🧪 BoxedWine (.exe, .zip)
Runs 16/32-bit Windows applications
Browser (.htm, .html)
Loads websites (w/CORS support) Bookmark bar with favicon support Proxy support (Wayback Machine & The Old Net) Back/Forward & Reload Google search via Address bar IPFS protocol support chrome://dino game
DesktopFly
Fruit fly pets driven by a live spiking simulation of 1,275 real FlyWire connectome neurons, with escape, backward retreat, grooming, sleep & circadian rhythm Every fly has its own brain & senses: window edges are walkable terrain, dragged windows & the cursor loom, clicks swat, and a takeoff startles nearby flies Spawn via fly in Terminal or Run dialog
DevTools
Console, Elements, Network, Resources, Sources, DOM Activate from Start Menu or SHIFT+F12
EmulatorJS (.32x, .a26, .a52, .a78, .gb, .gba, .gbc, .gen, .gg, .j64, .jag, .lnx, .n64, .nds, .nes, .ngc, .ngp, .pce, .sfc, .smc, .smd, .sms, .v64, .vb, .vboy, .ws, .wsc, .z64)
Plays console game roms
IRC
Internet Relay Chat Client Connects over WebSockets
js-dos (.exe, .jsdos, .zip)
DOS emulator Automatic save states on close
/Users/Public/Snapshots
Automatic window resize
Marked (.md)
Markdown Viewer
Messenger
Encrypted direct messaging client Utilizes Nostr Protocol (NIP-04) Automatic public/private key creation
Monaco Editor
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
OpenType (.otf, .ttf, .woff)
Font viewer
Paint (.bmp, .gif, .ico, .jpg, .png, .tiff, .webp,)
Create & edit images
PDF (.pdf)
Render/Print PDF's Page current/count & Zoom
Photos
Supported Formats
HEIF (.heic, .heif) JPEG XL (.jxl) QOI (.qoi) TIFF (.tif, .tiff)
Fullscreen & Zoom
Ruffle (.swf, .spl)
Flash Player emulator
Stable Diffusion
Creates 512x512 images using artificial intelligence Runs locally using WebSD
Terminal
File system support Autocomplete & history Pipe commands together Command list via help Git support (checkout & clone) Python support (.py) WebAssembly Package Manager
Ex: wapm cowsay moo (#)
Weather information eSheep Activate from Start Menu or SHIFT+F10 Neofetch FFmpeg & ImageMagick conversion
TIC-80 (.tic)
Runs "fantasy computer" games
TinyMCE (.rtf, .whtml)
Read & WYSIWYG modes File save support
Virtual x86 (.img, .iso)
x86 emulator Automatic save states on close
/Users/Public/Snapshots
Automatic window resize
Video Player
Supported Formats (codecbox.js) Plays YouTube videos/shortcuts Keyboard Shortcuts (Volume, Seek, Scale, Fullscreen)
Vim
Code/text editor Supports all file types
Webamp (.mp3, .wsz)
Winamp audio player Skin support (w/random skins via Winamp Skin Museum) Playlist & streaming support Visualization support ("Milkdrop")
Games 🎮 Chess (.pgn)
Play against stockfish.js, a friend, or watch CPU vs CPU Load PGN games w/move navigation
ClassiCube
Minecraft Classic compatible client
DX-Ball
Block breaker arcade game like Arkanoid
Space Cadet Pinball
Reverse engineering of 3D Pinball from Windows
Quake III Arena
Port of the classic first-person shooter
Try It 🚀 Requirements
Node.js Yarn
Development yarn install yarn build:prebuild yarn dev
Production yarn install yarn build yarn serve
Docker docker build -t daedalos . docker run -dp 3000:3000 --rm --name daedalos daedalos
Notes
If during yarn install you receive the error digital envelope routines::unsupported, you need to set NODE_OPTIONS to --openssl-legacy-provider (1, 2, 3)
