mirror of
https://github.com/DustinBrett/daedalOS.git
synced 2026-01-15 12:15:02 +00:00
276 lines
9.2 KiB
Markdown
276 lines
9.2 KiB
Markdown
## 🌌 **daedalOS** 🌌
|
|
|
|
## _Desktop environment in the browser_
|
|
|
|

|
|
|
|
### Feature Overview
|
|
|
|
[](http://www.youtube.com/watch?v=djCqHH0SCmA)
|
|
|
|
# System 🧠
|
|
|
|
### [File System](https://github.com/jvilk/BrowserFS)
|
|
|
|
- File Explorer
|
|
- Back, Forward, Recent locations, Up one level, Address bar, Search
|
|
- Thumbnail & Details Views
|
|
- [Drag & Drop](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API) File Support (internal & external)
|
|
- Loading progress dialog
|
|
- ZIP ([write support](https://www.npmjs.com/package/fflate)), [ZIP](https://github.com/jvilk/BrowserFS/blob/master/src/backends/ZipFS.ts)/[ISO](https://github.com/jvilk/BrowserFS/blob/master/src/backends/IsoFS.ts) read support, [7Z/GZ/RAR/TAR/etc. extract](https://github.com/use-strict/7z-wasm) support
|
|
- Writes to [IndexedDb](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)
|
|
- Group selection/manipulation & drag to sort/arrange
|
|
- Dynamic and auto cached icons for [music](https://github.com/Borewit/music-metadata-browser), images, video & emulator states
|
|
- Context Menus
|
|
- Cut, Copy, Create shortcut, Delete, Rename
|
|
- [Add file(s)](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications), [Map directory](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)
|
|
- 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](https://github.com/bokuweb/react-rnd)
|
|
- Minimize, Maximize & Close
|
|
- Persists size/position/maximized states
|
|
- [Animates](https://www.framer.com/motion/) 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](https://github.com/bubkoo/html-to-image) hover preview of windows
|
|
- Focused window indicator
|
|
- Search menu (w/Recent files)
|
|
- AI Chat Agent ([Prompt API](https://docs.google.com/document/d/1VG8HIyz361zGduWgNG7R_R8Xkv0OOJ8b5C9QKeCjU0c/edit) & [WebLLM](https://github.com/mlc-ai/web-llm)) (w/Summarize & Image Generation)
|
|
|
|
### Clock
|
|
|
|
- Runs in a [Web Worker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers)
|
|
- Drawn in an [OffscreenCanvas](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas)
|
|
- NTP server time mode ([ntp.js](http://www.ntpjs.org/))
|
|
- Synced to system clock on load
|
|
- Date tooltip
|
|
- Calendar popup
|
|
|
|
### Background & Screensaver
|
|
|
|
- Dynamic animated wallpapers ([OffscreenCanvas](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas)/[Web Worker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers))
|
|
- [Waves](https://www.vantajs.com/?effect=waves)
|
|
- [Hexells](https://znah.net/hexells/)
|
|
- [Matrix](https://rezmason.github.io/matrix/)
|
|
- [Coastal Landscape](https://www.shadertoy.com/view/fstyD4)
|
|
- Set via image/video (Fill, Fit, Stretch, Tile, Center)
|
|
- Picture Slideshow
|
|
- [Astronomy Picture of the Day](https://api.nasa.gov/#apod)
|
|
- [Art Institute of Chicago](https://api.artic.edu/docs/)
|
|
- [Lorem Picsum](https://picsum.photos/)
|
|
- AI Generated Wallpapers [Stable Diffusion](https://stability.ai/stable-diffusion)
|
|
- Custom screen saver file support
|
|
- [3D FlowerBox](https://github.com/kevin-shannon/3D-FlowerBox)
|
|
- [3D Maze](https://github.com/ibid-11962/Windows-95-3D-Maze-Screensaver)
|
|
- [Pipes](https://github.com/1j01/pipes)
|
|
|
|
### URL
|
|
|
|
- Query parameter loading
|
|
- Examples:
|
|
- `/?url=/CREDITS.md`
|
|
- `/?app=Browser`
|
|
|
|
# Apps 🧪
|
|
|
|
### [BoxedWine](http://www.boxedwine.org/) (**_.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](https://github.com/wayou/t-rex-runner) game
|
|
|
|
### [DevTools](https://eruda.liriliri.io/)
|
|
|
|
- Console, Elements, Network, Resources, Sources, DOM
|
|
- Activate from Start Menu or **_SHIFT+F12_**
|
|
|
|
### [EmulatorJS](https://github.com/ethanaobrien/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](https://kiwiirc.com/)
|
|
|
|
- Internet Relay Chat Client
|
|
- Connects over WebSockets
|
|
|
|
### [js-dos](https://js-dos.com/) (**_.exe, .jsdos, .zip_**)
|
|
|
|
- DOS emulator
|
|
- Automatic save states on close
|
|
- /Users/Public/Snapshots
|
|
- Automatic window resize
|
|
|
|
### [Marked](https://marked.js.org/) (**_.md_**)
|
|
|
|
- Markdown Viewer
|
|
|
|
### Messenger
|
|
|
|
- Encrypted direct messaging client
|
|
- Utilizes [Nostr Protocol](https://nostr.com/) ([NIP-04](https://github.com/nostr-protocol/nips/blob/master/04.md))
|
|
- Automatic public/private key creation
|
|
|
|
### [Monaco Editor](https://microsoft.github.io/monaco-editor/)
|
|
|
|
- Code/text editor
|
|
- Supports all file types
|
|
- Save files via **_CTRL+S_**
|
|
- Line count, cursor position, language id
|
|
- [Prettier](https://prettier.io/) formatting
|
|
- json, js/ts, css/sass/less, html, markdown
|
|
|
|
### [Paint](https://github.com/1j01/jspaint) (**_.bmp, .gif, .ico, .jpg, .png, .tiff, .webp,_**)
|
|
|
|
- Create & edit images
|
|
|
|
### [PDF](https://mozilla.github.io/pdf.js/) (**_.pdf_**)
|
|
|
|
- Render/Print PDF's
|
|
- Page current/count & Zoom
|
|
|
|
### Photos
|
|
|
|
- [Supported Formats](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#supported_image_formats)
|
|
- [HEIF](https://github.com/catdad-experiments/libheif-js) (**_.heic, .heif_**)
|
|
- [JPEG XL](https://github.com/niutech/jxl.js) (**_.jxl_**)
|
|
- [QOI](https://gist.github.com/nicolaslegland/f0577cb49b1e56b729a2c0fc0aa151ba) (**_.qoi_**)
|
|
- [TIFF](https://github.com/photopea/UTIF.js) (**_.tif, .tiff_**)
|
|
- Fullscreen & [Zoom](https://github.com/anvaka/panzoom)
|
|
|
|
### [Ruffle](https://ruffle.rs/) (**_.swf, .spl_**)
|
|
|
|
- Flash Player emulator
|
|
|
|
### [Stable Diffusion](https://stability.ai/stable-diffusion)
|
|
|
|
- Creates 512x512 images using artificial intelligence
|
|
- Runs locally using [WebSD](https://mlc.ai/web-stable-diffusion/)
|
|
|
|
### [Terminal](https://xtermjs.org/)
|
|
|
|
- File system support
|
|
- Autocomplete & history
|
|
- Pipe commands together
|
|
- Command list via `help`
|
|
- [Git support](https://isomorphic-git.org/) (checkout & clone)
|
|
- [Python support](https://pyodide.org/) (**_.py_**)
|
|
- [WebAssembly Package Manager](https://wapm.io/)
|
|
- Ex: `wapm cowsay moo` ([\#](https://wapm.io/package/cowsay))
|
|
- [Weather information](https://wttr.in/)
|
|
- [eSheep](https://adrianotiger.github.io/web-esheep/)
|
|
- Activate from Start Menu or **_SHIFT+F10_**
|
|
- Neofetch
|
|
|
|
### [TinyMCE](https://www.tiny.cloud/tinymce/) (**_.rtf, .whtml_**)
|
|
|
|
- Read & WYSIWYG modes
|
|
- File save support
|
|
|
|
### [Virtual x86](https://copy.sh/v86/) (**_.img, .iso_**)
|
|
|
|
- x86 emulator
|
|
- Automatic save states on close
|
|
- /Users/Public/Snapshots
|
|
- Automatic window resize
|
|
|
|
### [Video Player](https://videojs.com/)
|
|
|
|
- [Supported Formats](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs)
|
|
- Plays [YouTube](https://github.com/videojs/videojs-youtube) videos/shortcuts
|
|
- Keyboard Shortcuts (Volume, Seek, Scale, Fullscreen)
|
|
|
|
### [Vim](https://github.com/coolwanglu/vim.js)
|
|
|
|
- Code/text editor
|
|
- Supports all file types
|
|
|
|
### [Webamp](https://webamp.org/) (**_.mp3, .wsz_**)
|
|
|
|
- Winamp audio player
|
|
- [Skin support](https://skins.webamp.org/)
|
|
- Playlist & streaming support
|
|
- Visualization support (["Milkdrop"](https://github.com/jberg/butterchurn))
|
|
|
|
# Games 🎮
|
|
|
|
### [ClassiCube](https://www.classicube.net/)
|
|
|
|
- Minecraft Classic compatible client
|
|
|
|
### [DX-Ball](https://habr.com/en/post/147339/)
|
|
|
|
- Block breaker arcade game like Arkanoid
|
|
|
|
### [Space Cadet Pinball](https://github.com/alula/SpaceCadetPinball)
|
|
|
|
- Reverse engineering of 3D Pinball from Windows
|
|
|
|
### [Quake III Arena](https://github.com/lrusso/Quake3)
|
|
|
|
- Port of the classic first-person shooter
|
|
|
|
# Try It 🚀
|
|
|
|
##### Requirements
|
|
|
|
- [Node.js](https://nodejs.org/en/download/)
|
|
- [Yarn](https://yarnpkg.com/en/)
|
|
|
|
##### 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](https://github.com/DustinBrett/daedalOS/blob/main/Dockerfile#L3), [2](https://github.com/DustinBrett/daedalOS/blob/main/.github/workflows/main.yml#L17), [3](https://stackoverflow.com/a/69699772/5895982))
|