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

はじめに

Settings (v0.2.2)

TOML 形式の設定ファイルを持つアプリ向けの,独立した設定ウィンドウです。本体とは別プロセスとして動作し,設定ファイルの読み書きのみを担います。

概要

  • スキーマ駆動schema.toml を手書きするだけで設定 UI が生成されます
  • 16 言語 — 組み込み UI 文字列とスキーマ内ローカライズ表の両方に対応します
  • Light / Dark — OS 追従または固定。カラーパレットをスキーマで上書きできます
  • ランタイム検証 — CEL 式によるフィールド検証に対応します(v0.2 以降)
  • 外部変更検知 — 設定ファイルの変更を監視し,競合時にダイアログを表示します
  • クロスプラットフォーム — macOS・Windows・Linux で動作します

スクリーンショット

LightDark
macOSmacOS Light(日本語)macOS Dark(英語)
WindowsWindows Light(ドイツ語)Windows Dark(日本語)
LinuxLinux Light(英語)Linux Dark(ドイツ語)

クイックスタート

1. schema.toml を書く

toml
icon_style = "rounded"
theme      = "os"
lang       = "os"

[[tabs]]
id    = "general"
label = { en = "General", ja = "一般" }
icon  = "settings"

[[tabs.fields]]
key    = "server.host"
label  = { en = "Host", ja = "ホスト" }
type   = "string"
widget = "text_input"

[[tabs.fields]]
key    = "server.port"
label  = { en = "Port", ja = "ポート" }
type   = "number"
widget = "drag_value"
min    = 1
max    = 65535

2. ビルドする

bash
cd repos/settings
make binary
# またはスキーマを明示する場合:
make SCHEMA=/path/to/schema.toml binary

3. 親アプリから起動する

rust
std::process::Command::new("path/to/settings")
    .arg("/path/to/config.toml")
    .spawn()?;

config.toml のパスを引数で渡します。省略時の既定パスは組み込みを参照してください。