ログイン時に時間差でアプリケーションを起動する

2009年11月12日

「システム環境設定」>「アカウント」>「ログイン項目」を登録しておくとログイン時にアプリケーションを自動的に起動してくれるので便利です。

ログイン項目

しかし登録しすぎると同時にアプリケーションを起動するのでCPUリソースを食われてしまいますし、最悪レインボーカーソルがでてユーザからの操作を受け付けなくなってしまいます。

起動して待機しておいて欲しいけれどログインしてすぐには使わないアプリは後で起動して欲しい。

そんなわがままとも当然とも思える要求に答えてくれる方法がby edvakf in hatenaさんで紹介されていたので試してみました。

具体的にはシェルスクリプトファイルをログイン項目に追加して時間差でアプリを起動する方法です。

まずテキストエディタを開き以下のようなテキストファイルを作ります。

#!/bin/sh
cat $0
sleep 120; open -g /Applications/Mail.app
sleep 30;  open -g /Applications/Quicksilver.app
sleep 30;  open -g /Applications/Eijiro\ Viewer.app
sleep 30;  open -g /Applications/Dropbox.app
sleep 30;  open -g /Applications/Caffeine.app

起動させたいアプリ名を列挙します。

「sleep 数字」待ち時間を秒単位で指定。

「-g」はバックグラウンドで起動するためのオプションです。

これを「login.command」という名前で保存します。

次にターミナルで「login.command」に実行権限を与えます。

chmod +x login.command

あとは「login.command」をシステム環境設定に登録して完成です。

この方法だとターミナルが絶対に起動してしまうので、それが嫌な人はPlatypusでシェルスクリプトをアプリケーション形式にしてしまいましょう。

Platypusを利用して時間差起動アプリを作る
「Script Path」で先程作った「login.command」を指定。

「Output」をNoneにして「Runs in background」にチェックを入れておくと、存在を意識させずに時間差起動してくれます。

AutomatorやAppleScriptでも似たようなことができそうですね。

delay 10
launch application "Mail"
delay 20
launch application "Quicksilver.app"
delay 30
launch application "Dropbox"
delay 40
launch application "Caffeine"