daedalOS

GitHub

Desktop environment in the browser

AI Prompts & Endpoints
CodeWiki Knowledge Base

Repository: DustinBrett/daedalOS


Stars: 12591

README.md

๐ŸŒŒ daedalOS ๐ŸŒŒ

_Desktop environment in the browser_

!Screenshot

Feature Overview

![Feature Overview](http://www.youtube.com/watch?v=djCqHH0SCmA)

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, 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
- Lorem Picsum
- AI Generated Wallpapers Stable Diffusion
- Custom screen saver file support
- 3D FlowerBox
- 3D Maze
- Pipes

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
- Favicon support
- Back/Forward & Reload
- Google search via Address bar
- IPFS protocol support
- chrome://dino game

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

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

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
- 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
- Playlist & streaming support
- Visualization support ("Milkdrop")

Games ๐ŸŽฎ

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

text
yarn install
yarn build:prebuild
yarn dev

##### Production

text
yarn install
yarn build
yarn serve

##### Docker

text
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)