mdslide

ADR-0014 アプリの設定は設定シートに集め、資料の設定はメイン画面に残す

状況

決定

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

結果

状態