Skip to content

自動起動の状態を設定ファイルに持つ - #51

Merged
somei-san merged 1 commit into
mainfrom
feature/start-at-login-in-config
Aug 19, 2026
Merged

somei-san merged 1 commit into
mainfrom
feature/start-at-login-in-config

Conversation

@somei-san

Copy link
Copy Markdown
Owner

背景

自動起動が有効かどうかの記録は LaunchAgent の plist の有無だけで、plist が外から消えると設定ごと失われる。何も表示されないため、次のログインで起動しないことで初めて気づく。plist は手で消した場合にも、他のツールが触った場合にも消える。

変更内容

  • 設定ファイル: [startup] start_at_login を足し、そちらを正とする。plist はこの値から書き出す
  • 起動時: 設定と plist を突き合わせ、食い違えば plist を設定に合わせる
  • ファイル監視: 手で書き換えたときも再読み込みで LaunchAgent に反映する
  • 設定ウィンドウ: トグルと自動起動の確認ダイアログは設定ファイルへの保存が先で、成功したときだけ plist を操作する。設定ファイルを読めないときは保存を中止する
  • CLI: --config-show に start_at_login を出す

仕様の注意点

  • 設定に値が無い利用者は、plist が実在するときだけ true を書き戻す。plist が無ければ設定ファイルを作らない
  • インストール済みの .app から起動していないときは plist を新規作成せず、警告だけ出す。開発ビルドのパスを焼き付けると次のビルドで自動起動が止まるため。.app ではない形で入れていて plist を消された場合は復活しない
  • plist の操作に失敗しても設定ファイルの値は残る

確認

  • cargo test(156 件)
  • ./scripts/visual_regression.sh(全ケース ok)
  • cargo fmt --check / cargo clippy --all-targets -- -D warnings
  • ./scripts/build_app_bundle.sh
  • 実機での plist の書き出しは未確認

関連リンク

有効かどうかの記録は LaunchAgent の plist の有無だけだったので、plist が外から
消えると設定ごと失われていた。`config.toml` の `[startup] start_at_login` を正と
し、plist をその値から導く。

起動時に設定と plist を突き合わせ、食い違えば plist を合わせる。設定に値が無い
利用者は、plist が実在するときだけ書き戻す。設定ファイルへの保存が先で、成功した
ときだけ plist を操作する。

インストール済みの `.app` から起動していないときは plist を新規作成しない。開発
ビルドのパスを焼き付けると次のビルドで自動起動が止まるため。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@somei-san
somei-san marked this pull request as ready for review August 19, 2026 00:16
@somei-san
somei-san merged commit 39180e1 into main Aug 19, 2026
2 checks passed
@somei-san
somei-san deleted the feature/start-at-login-in-config branch August 19, 2026 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

自動起動の状態を設定ファイルに持つ

1 participant