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

Mac では .command 拡張子はダブルクリックできたりするので、もしかしてログインアイテム (System Preferences -> Accounts -> Login items) に .command ファイルを使えるんじゃないかと思った。

できた。

ログインアイテムを極力減らして、再起動時のストレスを減らす作戦。

というわけで、こんなファイルを書いて、実行権限を付けて保存した。(そういえば shebang を付け忘れてることに気付いたけど動いてるのでいいや。付けた)

  • login.command
#!/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

-g はバックグラウンドで開くオプション。そいつをログインアイテムに登録。

(他のログインアイテムは消した)


あとは再起動すると、ログインした瞬間にターミナルが開いて、120秒後からアプリが30秒間隔で開きはじめる。

ターミナルが開いちゃうのはアレかなーと思うけど、自分は OS が起動してる時間 = ターミナルが起動してる時間なので、むしろこれでいい。

ターミナルを開きたくない人は Platypus とかで .app にしちゃったらいいと思います。試してないけど。


DelayedLauncher というソフトに発想を得た。ただし、DelayedLauncher の場合は指定した時間後に登録したアプリが全部一気に開くので、結局一時操作不能になってしまって残念になる。