概要
daedalOS は、ブラウザ上で動作する先進的なデスクトップ環境。 豊富な ファイル操作機能 と多様なアプリケーションが統合。 AIチャット、エミュレータ、エディタ など多彩なツールを搭載。 Node.js/Yarn/Docker による簡単な開発・運用環境。 4年以上にわたる情熱的な開発プロジェクト。
daedalOS 機能概要
- ブラウザ上で動作するデスクトップ環境 の提供
- ファイルシステム と エクスプローラ 機能
- 戻る・進む・履歴・上層移動・アドレスバー・検索機能
- サムネイル/詳細表示切替
- 内部・外部ドラッグ&ドロップ対応
- 読み込み進捗ダイアログ
- ZIP書き込み、ZIP/ISO読み込み、7Z/GZ/RAR/TAR等の展開
- IndexedDbへの書き込み
- グループ選択・並べ替え・ドラッグでの配置変更
- 音楽・画像・動画・エミュレータの状態アイコンの自動キャッシュ
- コンテキストメニュー
- 切り取り・コピー・ショートカット作成・削除・リネーム
- ファイル追加・ディレクトリマッピング
- 「開く」オプション、場所を開く、新規ウィンドウ、ターミナルで開く
- ダウンロード、アーカイブ追加、ここで展開、壁紙設定、各種変換、プロパティ表示
- 並べ替え、新規フォルダ・テキスト作成、スクリーンショット
- キーボードショートカット
- CTRL+C/V/X/A、Delete、F2、F5、Backspace、矢印、Enter
- SHIFT+CTRL+R、SHIFT+F10、SHIFT+F12
- フルスクリーン時:Windowsキー、Windows+R
- ファイル情報ツールチップ、並べ替え、アイコン位置保持
- ウィンドウ機能
- サイズ変更・ドラッグ・最小化・最大化・閉じる
- サイズ・位置・最大化状態の保持
- 開閉アニメーション
- スタートメニュー
- 展開可能サイドバー
- アプリリスト、ドキュメント/ピクチャ/ビデオショートカット、電源(セッション消去)
- スポットライト効果、フォルダ対応、キーボードショートカット(SHIFT+ESCまたはフルスクリーン時Windowsキー)
- タスクバー
- ウィンドウプレビュー、フォーカス表示
- 検索メニュー(最近のファイル表示)
- AIチャットエージェント(Prompt API & WebLLM、要約・画像生成)
- 時計
- Web Workerで動作、OffscreenCanvas描画
- NTPサーバー同期、システムクロック連携
- 日付ツールチップ、カレンダーポップアップ
- 壁紙&スクリーンセーバー
- 動的アニメ壁紙(OffscreenCanvas/Web Worker)
- Waves、Hexells、Matrix、Coastal Landscape
- 画像・動画から設定(フィル・フィット・ストレッチ・タイル・中央)
- スライドショー、Astronomy Picture of the Day、AI生成壁紙(Stable Diffusion)
- カスタムスクリーンセーバー、3D FlowerBox、3D Maze、Pipes
- URLクエリパラメータでのロード例:/?url=/CREDITS.md、/?app=Browser
- 動的アニメ壁紙(OffscreenCanvas/Web Worker)
アプリケーション一覧
- BoxedWine :16/32bit Windowsアプリ実行
- Browser :HTMLサイト表示、CORS対応、ブックマークバー、favicon、Google検索、IPFS、chrome://dino
- DevTools :コンソール、Elements、Network、Resources、Sources、DOM
- EmulatorJS :多機種対応ゲームROM再生
- IRC :WebSocket経由IRCクライアント
- js-dos :DOSエミュレータ、自動セーブ、ウィンドウ自動リサイズ
- Marked :Markdownビューア
- Messenger :暗号化DMクライアント(Nostr Protocol NIP-04対応)
- Monaco Editor :コード/テキストエディタ、全ファイル形式、保存、Prettier整形
- Paint :画像作成・編集(bmp, gif, ico, jpg, png, tiff, webp)
- PDF :PDF表示・印刷、ページ送り・ズーム
- Photos :HEIF, JPEG XL, QOI, TIFF対応、フルスクリーン・ズーム
- Ruffle :Flash Playerエミュレータ
- Stable Diffusion :AIによる画像生成(ローカル実行)
- Terminal :ファイルシステム、オートコンプリート・履歴・パイプ、コマンド一覧、Git/Python/WebAssemblyサポート
- Weather情報
- eSheep :アニメーション
- Neofetch :システム情報表示
- TinyMCE :WYSIWYGエディタ、rtf/whtml対応
- Virtual x86 :x86エミュレータ(img/iso)、自動セーブ、ウィンドウ自動リサイズ
- Video Player :YouTube再生、ショートカット(音量・シーク・スケール・全画面)
- Vim :テキストエディタ
- Webamp :Winamp互換オーディオプレーヤー、スキン・プレイリスト・ストリーミング・ビジュアライザー
- ゲーム :ClassiCube(Minecraft Classic互換)、DX-Ball(ブロック崩し)、Space Cadet Pinball(3Dピンボール)、Quake III Arena
開発・運用要件
- Node.js、 Yarn 必須
- 開発手順
- yarn install
- yarn build:prebuild
- yarn dev
- 本番運用手順
- yarn install
- yarn build
- yarn serve
- Docker対応
- docker build -t daedalos .
- docker run -dp 3000:3000 --rm --name daedalos daedalos
- 注意点
- yarn install時にdigital envelope routines::unsupportedエラー発生時は、NODE_OPTIONSに--openssl-legacy-providerを指定
補足・開発背景
- デモサイト :https://dustinbrett.com
- 開発歴4年以上、個人の情熱プロジェクト
- 目標 :自分のPCにリモート接続したかのような体験をWeb上で再現
- 今後も継続的な進化を目指す