Auto Start プラグインで自動起動させる

Recipe ID: plugin-009

OS のログイン時にアプリを自動起動させるための tauri-plugin-autostart プラグインの使用方法です。

1. モジュールのインストール

npm run tauri add autostart

2. Permissions (権限) の設定

src-tauri/capabilities/default.json に以下の権限を追加します。

{
  "permissions": [
    "autostart:allow-enable",
    "autostart:allow-disable",
    "autostart:allow-is-enabled",
    ...
  ]
}

3. Rust 側の設定

src-tauri/src/lib.rs でプラグインを初期化します。tauri_plugin_autostart::Builder を使用して設定を行います。

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_autostart::Builder::new()
            .args(["--flag1", "--flag2"]) // 起動時に渡す引数
            // .app_name("My Custom Name") // 必要に応じてアプリ名を指定可能
            .build())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

引数(args)には自動起動時に渡したいコマンドライン引数を指定できます。

4. 自動起動の制御 (Frontend)

フロントエンドから自動起動の有効/無効を切り替えます。

import { enable, isEnabled, disable } from '@tauri-apps/plugin-autostart';

// 現在の状態を確認
const active = await isEnabled();
console.log('Auto start enabled:', active);

// 有効化
if (!active) {
  await enable();
}

// 無効化
// await disable();

5. Rust 側での制御 (Optional)

Rust 側から自動起動の状態を操作することも可能です。

use tauri_plugin_autostart::ManagerExt;

// setup 内などで
let autostart_manager = app.autolaunch();
// 有効化
let _ = autostart_manager.enable();
// 無効化
let _ = autostart_manager.disable();
// 状態確認
println!("registered for autostart? {}", autostart_manager.is_enabled().unwrap());

注意点

  • 開発中の動作について: 開発モード(npm run tauri dev)では自動起動の登録自体は成功する場合がありますが、実際に起動されるパスが開発用のものになるため、意図した通りに動作しないことがあります。必ずリリースビルド(インストーラー経由)でインストールしたアプリで動作確認を行ってください。
  • 引数の指定: Builderargs メソッドで指定した引数は、自動起動された際にアプリに渡されます。