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 ファイルを配置)。
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 API(フロント/バック)

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

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

3.3 設定との連携

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