2022-01-02 01:27:17 -08:00
## 🌌 **daedalOS** 🌌
2023-02-18 09:08:36 -08:00
## _Desktop environment in the browser_
2022-01-02 01:02:19 -08:00
2023-09-26 23:01:31 -07:00
[](http://www.youtube.com/watch?v=RRLq3T0Surs)
2022-01-23 09:57:46 -08:00
2022-01-02 00:42:53 -08:00
# System 🧠
### [File System](https://github.com/jvilk/BrowserFS)
- File Explorer
2022-08-25 17:46:57 -07:00
- Back, Forward, Recent locations, Up one level, Address bar, Search
2022-01-02 00:42:53 -08:00
- [Drag & Drop ](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API ) File Support (internal & external)
2022-01-02 01:54:46 -08:00
- Loading progress dialog
2022-04-30 22:40:21 -07:00
- ZIP ([write support ](https://www.npmjs.com/package/fflate )), [ZIP ](https://github.com/jvilk/BrowserFS/blob/master/src/backend/ZipFS.ts )/[ISO ](https://github.com/jvilk/BrowserFS/blob/master/src/backend/IsoFS.ts ) read support, [7Z/GZ/RAR/TAR/etc. extract ](https://github.com/use-strict/7z-wasm ) support
2022-01-02 00:42:53 -08:00
- Writes to [IndexedDb ](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API )
2022-08-25 17:46:57 -07:00
- Group selection/manipulation & drag to sort/arrange
2023-06-24 22:05:53 -07:00
- Dynamic and auto cached icons for [music ](https://github.com/Borewit/music-metadata-browser ), images, video & emulator states
2022-01-02 00:42:53 -08:00
- Context Menus
- Cut, Copy, Create shortcut, Delete, Rename
2022-02-06 22:29:55 -08:00
- [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 )
2023-06-15 20:06:05 -07:00
- Open with options/dialog, Open file/folder location, Open in new window, Open Terminal here
2024-01-17 19:48:17 -08:00
- Download, Add to archive, Extract here, Set as wallpaper, Convert audio/video/photo/spreadsheets, Properties (w/[Details ](https://github.com/buzz/mediainfo.js ))
2022-01-02 00:42:53 -08:00
- Sort by, New Folder, New Text Document
2023-01-14 17:29:53 -08:00
- Screen Capture
2022-01-02 00:42:53 -08:00
- Keyboard Shortcuts
- CTRL+C, CTRL+V, CTRL+X, CTRL+A, Delete
- F2, F5, Backspace, Arrows, Enter
2022-05-29 12:37:10 -07:00
- SHIFT+CTRL+R, SHIFT+F10, SHIFT+F12
2022-08-25 17:46:57 -07:00
- In Fullscreen: Windows Key, Windows Key + R
2022-01-02 01:02:19 -08:00
- File information tooltips
2022-08-25 17:46:57 -07:00
- Allow sorting by name, size, type or date
- Persists icon position/sort order
2022-01-02 00:42:53 -08:00
### Windows
- [Resizable and Draggable ](https://github.com/bokuweb/react-rnd )
2022-01-02 01:54:46 -08:00
- Minimize, Maximize & Close
2022-01-02 00:42:53 -08:00
- Persists size/position/maximized states
- [Animates ](https://www.framer.com/motion/ ) opening and closing
### Start Menu
- Expandable Sidebar
2022-08-25 17:46:57 -07:00
- Apps list, Documents/Pictures/Videos shortcuts, Power (clears session)
2022-01-02 00:42:53 -08:00
- Spotlight visual effect
- Folder support
2022-01-02 02:16:06 -08:00
- Keyboard shortcut opens with **_SHIFT+ESC_ **
2022-08-25 17:46:57 -07:00
- Or Windows Key when in fullscreen
2022-01-02 00:42:53 -08:00
### Taskbar
- [Peek ](https://github.com/bubkoo/html-to-image ) hover preview of windows
- Focused window indicator
2023-11-09 13:21:52 -08:00
- Search menu (w/Recent files)
2022-01-02 00:42:53 -08:00
### Clock
2022-02-06 22:29:55 -08:00
- Runs in a [Web Worker ](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers )
2022-08-25 17:46:57 -07:00
- Drawn in an [OffscreenCanvas ](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas )
2022-05-16 21:52:26 -07:00
- NTP server time mode ([ntp.js ](http://www.ntpjs.org/ ))
2022-01-02 00:42:53 -08:00
- Synced to system clock on load
- Date tooltip
2023-07-08 09:50:23 -07:00
- Calendar popup
2022-01-02 00:42:53 -08:00
2022-08-25 17:46:57 -07:00
### Background
2022-01-02 00:42:53 -08:00
2022-05-16 21:52:26 -07:00
- 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 ))
2022-10-12 11:09:27 -07:00
- [Waves ](https://www.vantajs.com/?effect=waves )
2022-05-16 21:52:26 -07:00
- [Hexells ](https://znah.net/hexells/ )
2022-09-24 22:06:13 -07:00
- [Matrix ](https://rezmason.github.io/matrix/ )
2022-10-12 11:09:27 -07:00
- [Coastal Landscape ](https://www.shadertoy.com/view/fstyD4 )
2023-04-07 13:21:49 -07:00
- Set via image/video (Fill, Fit, Stretch, Tile, Center)
2023-02-02 20:09:15 -08:00
- Picture Slideshow
2022-05-16 21:52:26 -07:00
- [Astronomy Picture of the Day ](https://api.nasa.gov/#apod )
2023-04-18 12:46:04 -07:00
- AI Generated Wallpapers [Stable Diffusion ](https://stability.ai/stable-diffusion )
2022-01-02 00:42:53 -08:00
### URL
- Query parameter loading
- Examples:
2022-08-25 17:46:57 -07:00
- `/?url=/CREDITS.md`
- `/?app=Browser`
2022-01-02 00:42:53 -08:00
# Apps 🧪
### [BoxedWine](http://www.boxedwine.org/) (**_.exe, .zip_**)
- Runs 16/32-bit Windows applications
### Browser (**_.htm, .html_**)
- Loads websites (_w/HTTP header support_)
- Bookmark bar
- Favicon support
- Back/Forward & Reload
2022-01-02 01:54:46 -08:00
- Google search via Address bar
2022-01-02 00:42:53 -08:00
### [DevTools](https://eruda.liriliri.io/)
- Console, Elements, Network, Resources, Sources, DOM
- Activate from Start Menu or **_SHIFT+F12_ **
2022-08-25 17:46:57 -07:00
### [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
2022-10-12 11:09:27 -07:00
### [IRC](https://kiwiirc.com/)
- Internet Relay Chat Client
- Connects over WebSockets
2022-01-02 00:42:53 -08:00
### [js-dos](https://js-dos.com/) (**_.exe, .jsdos, .zip_**)
- DOS emulator
- Automatic save states on close
2022-01-02 01:02:19 -08:00
- /Users/Public/Snapshots
2022-01-02 00:42:53 -08:00
- Automatic window resize
2022-01-28 22:42:53 -08:00
### [Marked](https://marked.js.org/) (**_.md_**)
- Markdown Viewer
2023-09-26 23:11:29 -07:00
### 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
2022-01-02 00:42:53 -08:00
### [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
2022-08-25 17:46:57 -07:00
### [Paint](https://github.com/1j01/jspaint) (**_.bmp, .gif, .ico, .jpg, .png, .tiff, .webp,_**)
- Create & edit images
2022-01-02 00:42:53 -08:00
### [PDF](https://mozilla.github.io/pdf.js/) (**_.pdf_**)
2022-10-12 11:09:27 -07:00
- Render/Print PDF's
2022-01-02 00:42:53 -08:00
- Page current/count & Zoom
### Photos
- [Supported Formats ](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#supported_image_formats )
2022-12-29 14:33:02 -08:00
- [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_**)
2022-01-02 00:42:53 -08:00
- Fullscreen & [Zoom ](https://github.com/anvaka/panzoom )
### [Ruffle](https://ruffle.rs/) (**_.swf, .spl_**)
- Flash Player emulator
2023-04-22 20:40:28 -07:00
### [Stable Diffusion](https://stability.ai/stable-diffusion)
- Creates 512x512 images using artificial intelligence
- Runs locally using [WebSD ](https://mlc.ai/web-stable-diffusion/ )
2022-01-02 00:42:53 -08:00
### [Terminal](https://xtermjs.org/)
- File system support
2022-01-02 01:54:46 -08:00
- Autocomplete & history
2022-01-02 00:42:53 -08:00
- Command list via `help`
- [Git support ](https://isomorphic-git.org/ ) (checkout & clone)
- [Python support ](https://pyodide.org/ ) (**_.py_**)
- [WebAssembly Package Manager ](https://wapm.io/ )
2022-04-06 21:50:03 -07:00
- Ex: `wapm cowsay moo` ([\# ](https://wapm.io/package/cowsay ))
2022-01-02 00:42:53 -08:00
- [Weather information ](https://wttr.in/ )
2022-04-04 20:21:39 -07:00
- [eSheep ](https://adrianotiger.github.io/web-esheep/ )
2022-01-19 22:16:35 -08:00
- Activate from Start Menu or **_SHIFT+F10_ **
2023-01-22 20:27:02 -08:00
- Neofetch
2022-01-02 00:42:53 -08:00
2022-11-26 19:30:18 -08:00
### [TinyMCE](https://www.tiny.cloud/tinymce/) (**_.rtf, .whtml_**)
2022-01-02 00:42:53 -08:00
2022-01-02 01:54:46 -08:00
- Read & WYSIWYG modes
2022-01-02 00:42:53 -08:00
- File save support
### [Virtual x86](https://copy.sh/v86/) (**_.img, .iso_**)
- x86 emulator
- Automatic save states on close
2022-01-02 01:02:19 -08:00
- /Users/Public/Snapshots
2022-01-02 00:42:53 -08:00
- Automatic window resize
### [Video Player](https://videojs.com/)
- [Supported Formats ](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs )
2022-01-02 01:54:46 -08:00
- Plays [YouTube ](https://github.com/videojs/videojs-youtube ) videos/shortcuts
2023-02-02 20:15:49 -08:00
- Keyboard Shortcuts (Volume, Seek, Scale, Fullscreen)
2022-01-02 00:42:53 -08:00
2022-08-25 17:46:57 -07:00
### [Vim](https://github.com/coolwanglu/vim.js)
- Code/text editor
- Supports all file types
2022-01-02 00:42:53 -08:00
### [Webamp](https://webamp.org/) (**_.mp3, .wsz_**)
- Winamp audio player
- [Skin support ](https://skins.webamp.org/ )
2022-08-25 17:46:57 -07:00
- Playlist & streaming support
2022-10-12 11:09:27 -07:00
- Visualization support (["Milkdrop" ](https://github.com/jberg/butterchurn ))
2023-06-24 22:05:53 -07:00
2023-09-26 23:35:56 -07:00
# 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
2023-06-24 22:05:53 -07:00
# Try It 🚀
##### Requirements
- [Node.js ](https://nodejs.org/en/download/ )
- [Yarn ](https://yarnpkg.com/en/ )
##### Development
```
2023-09-26 23:23:51 -07:00
yarn install
2023-11-21 22:00:09 -08:00
yarn build:prebuild
2023-06-24 22:05:53 -07:00
yarn dev
```
##### Production
```
2023-08-28 09:13:21 -07:00
yarn install
2023-06-24 22:05:53 -07:00
yarn build
2023-11-23 08:52:57 -08:00
yarn serve
2023-06-24 22:05:53 -07:00
```
2023-09-26 23:35:56 -07:00
##### Docker
2023-06-24 22:05:53 -07:00
```
docker build -t daedalos .
docker run -dp 3000:3000 --rm --name daedalos daedalos
```
2024-01-10 13:44:56 -08:00
##### 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 ))