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