Newer
Older
TelosDB / docs / plans / auto_start / auto_start_02_tech.md

自動起動計画: 02 技術方針

計画トップ


3.1 採用: tauri-plugin-autostart

  • プラグイン: tauri-plugin-autostartcrates.io)を採用する。
  • 対応 OS: Windows / macOS / Linux でログイン時起動をサポート。Android / iOS は非対応(Tauri のデスクトップ用途と一致)。
  • 実装の裏側(プラグインが担当):

    • Windows: レジストリ HKCU\Software\Microsoft\Windows\CurrentVersion\Run にアプリパスを登録。
    • macOS: Launch Agent(~/Library/LaunchAgents/ に plist を配置)。
    • Linux: XDG Autostart(~/.config/autostart/*.desktop に .desktop ファイルを配置)。
  • 起動引数(任意): プラグインの Builder.args([...]) を指定できる。自動起動時に「トレイのみで起動」など振る舞いを変えたい場合は、ここで引数(例: --minimized)を渡し、アプリ起動時に解釈する。

flowchart TB
  subgraph プラットフォーム別の実体
    W[Windows: レジストリ Run]
    M[macOS: LaunchAgents]
    L[Linux: autostart .desktop]
  end
  P[tauri-plugin-autostart] --> W
  P --> M
  P --> L
  U[ユーザー: enable/disable] --> P

3.2 導入の手順(Phase 1 で行うこと)

  • Cargo.toml: tauri-plugin-autostart を依存に追加。
  • Rust: tauri::Builder.plugin(tauri_plugin_autostart::init(...)) を登録。必要なら .args([...]) で起動引数を指定。
  • Tauri 設定: プラグインが tauri.conf.jsonplugins や capability を要求する場合は、ドキュメントに従い permission を追加。
  • フロント: @tauri-apps/plugin-autostartenable / disable / isEnabled を呼ぶ。Tauri コマンド経由でも可。

3.3 API(フロント/バック)

  • enable(): 自動起動を有効にする。
  • disable(): 自動起動を無効にする。
  • isEnabled(): 現在自動起動が有効かどうかを返す。

設定 UI のトグルや起動時の読み込みで上記を呼び出す。設定の永続化(localStorage や Tauri の app 設定)と連携し、「自動起動オン」のときだけプラグインの enable() を呼ぶ。

3.4 設定との連携

  • 設定項目「ログイン時に自動起動する」を追加する(現状は 06 UI 仕様 上で非表示のため、本機能実装時に設定パネルに表示する)。
  • オンにした場合: 設定を保存し、tauri-plugin-autostartenable() を実行。
  • オフにした場合: 設定を保存し、disable() を実行。
  • アプリ起動時: 保存済み設定を読み、isEnabled() と一致していなければ enable() / disable() で同期する(他ツールでレジストリ等をいじった場合のずれを吸収)。
  • アップデート後: 再インストールで実行ファイルのパスが変わると、既存の Run キー等は無効になる。次回起動時の「設定読み込み+isEnabled() との同期」で、設定がオンの場合は enable() を呼び直し、新しいパスで登録し直す。
stateDiagram-v2
  [*] --> 設定読み込み
  設定読み込み --> 同期: 設定値と isEnabled() が不一致
  設定読み込み --> 待機: 一致
  同期 --> enableまたはdisable
  enableまたはdisable --> 待機
  待機 --> ユーザーがトグル変更
  ユーザーがトグル変更 --> 保存してenable/disable
  保存してenable/disable --> 待機