本文へスキップ
nomunomu0504.dev

WORKS OSS

sub-screen-player

モニター下に置く細長い USB サブディスプレイを macOS / Linux / Windows から動かす。時計、システムダッシュボード、画像や動画を最大 60 fps で。

概要

upHere / MiraBox D92(1920×462)のような USB サブディスプレイは、メーカーの Windows 専用アプリでしか動かないことが多い。ssp という単一バイナリの小さなデーモンがディスプレイを保持し、時計、自分の数値を出せるシステムダッシュボード、画像、アニメーション、動画、Web ページ、ライブフレームを表示する。

技術的なポイント

  • HID 経由のデバイスプロトコルを Rust で実装。フレームのエンコードと送信を別スレッドに分け、最大 60 fps
  • デーモンは HTTP と WebSocket の API を持ち、外部から何でも描ける。Claude Code の通知を時計の上に出す、といった使い方も
  • デバイスを足すときはプロトコル部分だけ書けばよく、それ以外は共通。Homebrew と Scoop で配布