DIWAN
A Media Centre for the Whole Screen
大画面のためのメディアセンター
Overview
概要Films, music and games in one grid, driven by a controller, no keyboard needed. Diwan (دیوان) is both the hall where people gather and a collected body of works.
映画・音楽・ゲームを一つのグリッドに。コントローラーだけで操作でき、キーボードは不要です。Diwan(دیوان)は「人が集う広間」と「作品集」の両方を意味します。
Built for the sofa: on first launch the library is empty by design, and Diwan only indexes the folders you point it at.
ソファで使うために作りました。初回起動時のライブラリはあえて空にしてあり、指定したフォルダだけを読み込みます。
How it was built
開発Films go through mpv as a child process: Diwan launches it borderless at the screen's exact size and drives it over its JSON IPC socket, while drawing its own on-screen controls through a transparent window on top. That gives 10-bit HEVC, HDR and real audio and subtitle track switching. Music plays in-app through Web Audio so the visualisers can read the actual waveform.
映画はmpvを子プロセスとして起動し、画面と同じサイズの枠なしウィンドウで再生。JSON IPCソケット経由で制御しながら、透明なウィンドウを重ねて独自の操作画面を描画します。これにより10bit HEVC、HDR、音声・字幕トラックの切り替えに対応。音楽はWeb Audioでアプリ内再生し、ビジュアライザーが実際の波形を読み取れるようにしています。
What it does
機能Navigate everything from a gamepad; Start opens Settings.
すべてゲームパッドで操作。Startボタンで設定を開きます。
Audio and subtitles side by side, with language codes resolved and sidecar .srt/.ass picked up.
音声と字幕を並べて選択。言語コードを名前に変換し、外部の.srt/.assも自動で読み込み。
Position is remembered per file, with a gold line on the tile showing how far in you are.
ファイルごとに再生位置を記憶し、タイルの金色の線で進み具合を表示。
Local libraries with tags and art read by the Rust lofty crate.
Rustのloftyでタグとアートワークを読み込むローカル音楽ライブラリ。
Stack
技術構成Tauri 2 and Rust with a React 19 interface; video through mpv, music through Web Audio.
Tauri 2とRust、React 19のUI。映像はmpv、音楽はWeb Audioで再生。
A living-room app should never ask you to find the keyboard.
リビングのアプリは、キーボードを探させてはいけない。