デスクトップアプリ
kobune-desktop は、メニューバーに常駐する GPUI 製の小さなアプリケーション です。稼働中の環境、その URL、ログを確認できます。
常時開いておくことは想定していません。現在の状況を確認し、必要な環境を開く ためのものです。
全体を 1 つのウィンドウで見たい場合は kobune studio です。ターミナルのものと同じ ダッシュボードをブラウザに配信するもので、このアプリと違いリリースアーカイブに 同梱されています。
起動
$ cargo build --release -p kobune-desktop
$ ./target/release/kobune-desktopビルド
GUI は CLI より前提条件が多く、ビルドも複雑です。
Xcode Command Line Tools があれば十分です。 完全な Xcode は不要です。 runtime_shaders を有効にしているため、Metal のシェーダは実行時にコンパイル されます。
bindgen がシステムヘッダを見つけられない場合は、PATH の先頭に別のツール チェーンが存在しています。WASI SDK が典型的な原因です。
$ export PATH=$(echo $PATH | tr ':' '\n' | grep -v wasi-sdk | paste -sd: -)
$ unset WASI_SDK_PATH
$ export LIBCLANG_PATH=/Library/Developer/CommandLineTools/usr/lib
$ cargo build -p kobune-desktop症状は CoreMedia などのフレームワークが見つからないというもので、原因は macOS のフレームワークを認識しない clang が使われていることです。
画面構成
- workspace のサイドバー。 各サービスの状態が継続的に更新されます
- 詳細ペイン。 URL のコピーとブラウザでの表示、起動・停止ボタン
- ログビューア。 選択中の workspace のログを表示します
- メニューバーのアイコン。 メニューから稼働中のサービスに直接遷移できます
システムのライト / ダーク設定に追従します。タイトルバーから手動で切り替える こともできます。
実装していない機能
daemon を起動することはありません。 daemon の管理は launchd の役割であり、 GUI が重ねて管理すると責務が分散します。接続できないと表示された場合は、CLI から daemon を起動するか、LaunchDaemon を設定して常時稼働させてください。
CLI と同じ daemon API を参照しているため、一方で確認できる情報はもう一方でも 確認できます。GUI のみが保持する状態はありません。