スキーマリファレンス
Settings (v0.2.2)
スキーマは TOML で記述し,ビルド時にバイナリへ埋め込まれます。作者はフィールドの意味と TOML 構造を把握すれば,設定 UI を組み立てられます。型・デフォルト値の厳密な一覧は settings-schema クレート(settings-schema/src/lib.rs)を参照してください。
トップレベル
| フィールド | 説明 |
|---|---|
tabs | タブ定義の配列(必須) |
icon_style | Material Symbols のバリアント: "rounded" / "outlined" / "sharp" |
theme | "os" / "light" / "dark" — テーマ |
lang | UI 言語 — ローカライゼーション |
lang_key | lang = "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 | タブの表示名(ローカライズ可) |
icon | Material Symbol 名(アイコンフォントを同梱した場合) |
content_width / content_height | タブごとのサイズ上書き |
fields | フラットなフィールド配列(section_map とは排他) |
section_map | 動的サブセクション — 下記 SectionMap を参照 |
SectionMap
タブの中に,設定ファイルの内容に応じて増減するサブセクション群(サブタブ)を配置するための仕組みです。
tab_style = "segmented" ・ allow_add_remove = false(固定セクション)の例:


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


| フィールド | 説明 |
|---|---|
key_prefix | 設定ファイル上のテーブル名(例: "providers") |
allow_add_remove | サブセクションの追加・削除を許可するか |
fields | 各サブセクション内のフィールド定義 |
tab_style | "underline" / "segmented" |
max_width | tab_style = "segmented" のときの最大幅 |
allow_add_remove = false のとき,サブタブのキー一覧は設定ファイルの内容から自動取得されます。スキーマ側にキーを列挙する必要はありません。
Field(共通)
| フィールド | 説明 |
|---|---|
key | 設定キー(ドット区切り)。separator では不要 |
label | ラベル(ローカライズ可) |
type | "string" / "bool" / "number" |
widget | ウィジェット種別 — ウィジェットリファレンス |
hint / sublabel | 補助テキスト(ローカライズ可) |
hint_direct / hint_env | exclusive_radio 用の補助テキスト |
options / options_from | 選択肢(静的指定 / section_map からの動的取得) |
exclusive | exclusive_radio 用の設定テーブル |
min / max / step / suffix | 数値ウィジェット用 |
min_width / max_width / rows | レイアウト調整 |
is_directory / file_filter / file_extensions | file_path 用 |
key_label / value_label | key_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 の設定によって変わります。