Skip to content
Copied!
published on 2026-06-08

スキーマリファレンス

Settings (v0.2.2)

スキーマは TOML で記述し,ビルド時にバイナリへ埋め込まれます。作者はフィールドの意味と TOML 構造を把握すれば,設定 UI を組み立てられます。型・デフォルト値の厳密な一覧は settings-schema クレート(settings-schema/src/lib.rs)を参照してください。

トップレベル

フィールド説明
tabsタブ定義の配列(必須)
icon_styleMaterial Symbols のバリアント: "rounded" / "outlined" / "sharp"
theme"os" / "light" / "dark"テーマ
langUI 言語 — ローカライゼーション
lang_keylang = "os" のとき,親アプリの言語設定を読み取る設定キー
background_colorライトテーマのカラーオーバーライド(CSS #rrggbb
[dark]ダークテーマのカラーオーバーライド
save_button"os" / "show" / "hide" — 保存 UI の表示モード
[ui_strings]組み込み UI 文字列の上書き — ローカライゼーション
content_width / content_heightコンテンツ領域の論理サイズ(px)
[[constraints]]名前付き CEL 制約 — 検証

Tab

フィールド説明
idタブの識別子
labelタブの表示名(ローカライズ可)
iconMaterial Symbol 名(アイコンフォントを同梱した場合)
content_width / content_heightタブごとのサイズ上書き
fieldsフラットなフィールド配列(section_map とは排他)
section_map動的サブセクション — 下記 SectionMap を参照

SectionMap

タブの中に,設定ファイルの内容に応じて増減するサブセクション群(サブタブ)を配置するための仕組みです。

tab_style = "segmented"allow_add_remove = false(固定セクション)の例:

section_map: segmented / fixedsection_map: segmented / fixed

tab_style = "underline"allow_add_remove = true(可変セクション)の例:

section_map: underline / variablesection_map: underline / variable

フィールド説明
key_prefix設定ファイル上のテーブル名(例: "providers"
allow_add_removeサブセクションの追加・削除を許可するか
fields各サブセクション内のフィールド定義
tab_style"underline" / "segmented"
max_widthtab_style = "segmented" のときの最大幅

allow_add_remove = false のとき,サブタブのキー一覧は設定ファイルの内容から自動取得されます。スキーマ側にキーを列挙する必要はありません。

Field(共通)

フィールド説明
key設定キー(ドット区切り)。separator では不要
labelラベル(ローカライズ可)
type"string" / "bool" / "number"
widgetウィジェット種別 — ウィジェットリファレンス
hint / sublabel補助テキスト(ローカライズ可)
hint_direct / hint_envexclusive_radio 用の補助テキスト
options / options_from選択肢(静的指定 / section_map からの動的取得)
exclusiveexclusive_radio 用の設定テーブル
min / max / step / suffix数値ウィジェット用
min_width / max_width / rowsレイアウト調整
is_directory / file_filter / file_extensionsfile_path
key_label / value_labelkey_value_map
validate検証ルール — 検証
option_states選択肢の無効化 — 検証

保存モード(save_button

動作
"os"macOS では自動保存。Windows / Linux では保存バー(OK / Cancel / Apply)を表示
"show"常に保存バーを表示
"hide"常に自動保存

保存バーが表示されるとき,左から OK(保存して閉じる)・Cancel(破棄して閉じる)・Apply(保存して開いたまま)の 3 ボタンが並びます。検証エラーがある間は OK / Apply が無効になります。

外部変更の検知

Settings は設定ファイルを監視しています。未保存の編集がなければ,外部からの変更は自動的に画面へ反映されます。未保存の編集があるときは Reload(再読み込みして編集を破棄)・Keep Editing(編集を継続し外部変更を無視)の競合ダイアログが表示されます。

ウィンドウサイズ

タブを切り替えると,そのタブの content_width / content_height(省略時はトップレベルの値)に合わせてウィンドウがリサイズされます。タブバーや保存バーの高さは,スキーマに icon が指定されているか,および save_button の設定によって変わります。