Matugen の配色生成とアプリ反映
このページの目次
Matugen は画像や色からパレットを作り、テンプレートへ埋め込む。起動済みアプリの色が変わるかは、そのアプリの読み込み方法にも依存する。生成と反映を分けて調べる。
4.1.0 で確認した例を独立ディレクトリで試し、正式テーマへ接続するのは後にする。
四つの段階
| 段階 | 生成物 | 問題の例 |
|---|---|---|
| 入力 | 画像、色、明暗 | 画像なし、モード不一致 |
| パレット | primary、surface など | 役割や方式の選択 |
| テンプレート | アプリ専用設定 | 構文やパス |
| 反映 | 実行中の読み込み | ファイルは新しく状態は古い |
surface と on_surface は背景と前景の組、primary は強調に使う。単色の好みだけで選ばず、選択、警告、無効状態も確認する。
隔離した生成例
新しい matugen-lab などへ移動し、ghostty.template を保存する。
background = {{colors.surface.default.hex}}
foreground = {{colors.on_surface.default.hex}}
cursor-color = {{colors.primary.default.hex}}
同じ場所の config.toml:
[config]
[templates.terminal]
input_path = "ghostty.template"
output_path = "generated.theme"
その場所から明示設定で実行する。
出力を見る。
実色が三つあり、未展開の記号がないことを確認する。4.1.0 の hex は既に # を含むため、追加すると ## になる。更新後も一時出力で形式を確認する。Matugen
画像を使う場合は実ファイルを置いて matugen -c ./config.toml image ./wallpaper.png とする。明暗は --mode light / dark で指定できる。
アプリごとの構文
Waybar 用 GTK CSS の例:
@}};
@}};
@}};
Ghostty は key/value、Zellij は KDL である。まず静的設定を動かし、同じ構造を生成する。入出力パス、書き込み可能な場所、対象の検証器を確認してから正式パスへ反映する。
hook と再読み込み
最初は post_hook なしで生成を確認する。hook はアプリへの通知であり、出力検査の代わりではない。
Ghostty はテーマと検証・再読み込み、Waybar は独立設定と指定インスタンス、GTK は CSS と新規窓、Zellij は KDL と新旧セッション、外殻は公開テーマ API をそれぞれ確認する。
SIGUSR2 を全アプリへ一般化しない。旧 OSC 一括送信は独自コードで、対象選択や復用器の転送条件がある。公式に対応した反映方法を優先する。
現在の Caelestia 連携
外殻が壁紙、明暗、方式を選び、caelestia-sync-app-theme が名前を Matugen へ変換する。壁紙状態を読み、ファイルロックで並行生成を制限する。
アプリ用出力には Ghostty、Zellij、GTK、KDE、Fuzzel、Fcitx5 がある。外殻自身のテーマ状態は ii 時代のファイルではない。同じ入力でも役割の対応が異なれば色は一致しない。
一部だけ変わらないとき
入力、モード、実際の config を確認し、独立生成の終了状態と内容を見る。正式ファイルの場所・時刻とアプリの読み込み先を比較し、再読み込みを単独実行する。
新しい窓だけ正しければ実行中反映、両方誤るなら生成とテーマ指定を調べる。復旧は保存済みテーマと設定を戻してから再読み込みする。複数アプリの生成は全体トランザクションではなく、部分反映も確認が必要である。