ADR-0014 アプリの設定は設定シートに集め、資料の設定はメイン画面に残す
状況
- 設定が画面のあちこちに散っていた。Vim キーバインドはコンソールバーの「ツール設定」シートの中、自動起動はコンソールバーのチェックボックス、マスターの取り込み・既定はツールバーの「マスター」ダイアログ、外観の切り替えは無し(OS 任せ)。
- 「マスター」ダイアログは、保管フォルダの管理(アプリの設定)と、この資料で使うマスターの選択(Markdown の frontmatter を書き換える資料の設定)を一つの画面でやっていた。
- メイン画面(ツールバー・コンソールバー)に、資料の操作と無関係な設定コントロールが混ざっていた。
決定
- アプリの設定(この Mac でどう動くか)は一枚の設定シート
SettingsSheet に集める。左にカテゴリ、右に一枚のページという macOS の環境設定の形。
- 一般: 外観(自動 / ライト / ダーク)
- エディタ: Vim キーバインド、ペイン幅を既定に戻す
- マスター: 保管フォルダ、pptx の取り込み、既定のマスター、削除
- ツール: CLI ツールの一覧と編集、自動起動
入口はツールバーの歯車、⌘,、Electron のアプリメニュー「設定…」、コンソールバーの歯車(ツールのタブを直接開く)。
- 資料の設定(この deck.md がどう作られるか)はメイン画面に残す。ツールバーのマスター選択は frontmatter の
master: を書き換える操作なので設定シートには入れない。レイアウト・文字サイズもプレビュー側のまま。
- 設定シートで pptx を取り込んだとき、既定のマスターが無ければそれを既定にする。資料の Markdown は触らない(解決順 frontmatter → フォルダの
master.pptx → 既定、ADR-0013)。既定が変わったら開いている資料も追従する(deckStore が設定を購読)。
- 外観は
settings.appearance.theme。CSS のトークンは light-dark() で一度だけ書き、<html data-theme> の color-scheme で側を決める。Electron には nativeTheme.themeSource を渡し、ウィンドウの縁とサイドバーの透過をページと同じ側に揃える。
- 別ウィンドウ(BrowserWindow)にはしない。設定の唯一の正は
settings.json(ADR-0010)で、シートなら IPC と状態同期を増やさずに済む。
- Electron にアプリメニューを置く。標準のロール(編集・表示・ウインドウ)に加えて「設定…」(⌘,)と「使い方」(⌘/)。キーは renderer が処理して既定動作を止めるので、メニューのアクセラレータは発見性とマウス操作のため。
結果
ToolsSheet と MasterDialog は SettingsSheet のタブに吸収して削除。コンソールバーから自動起動のチェックボックスが消え、起動・設定・終了だけになる。
- 設定を増やすときは
SettingsFile / DEFAULT_SETTINGS に項目を足し、UI は SettingsSheet のタブに置く。メイン画面に設定コントロールを置かない。
- IPC に
theme:set と、メニューからの app:open-settings / app:open-help が増える。
状態