回答:
これは、主に「アイドル」の特定の定義がないため、達成するのが非常に難しい偉業です。私が実際にアイドル機能を持っているのを見た唯一のプログラムは、インスタントメッセージングクライアントとGrowlの最近のMac App Storeリリースです。そして、それらは、マウス/キーボードのアクティビティが発生していないときに設定された分数後にオフになる設定可能な時間を単に持っています。
数年前のMacworldフォーラムでも同様の議論があり、「アイドル」状態になったときに使用状況を監視してアプリケーションを起動するAppleScriptの作成と実行を本質的に伴う特定の投稿がありました。
property idleCheck : 20 as integer
property idleCheck_usr : 120 as integer
set timer to 0
on idle
--Check idle time
set idletime to do shell script "ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print int($NF/1000000000); exit}'"
set idletime to idletime as string
set idletime to idletime as integer
tell application "System Events"
if idletime is less than idleCheck then (* 20 is 20 seconds. If a key was tapped within the idleCheck seconds, it quits the app. *)
tell application "TextEdit" to quit
return idleCheck -- checks again in ... seconds
else
if idletime is greater than idleCheck_usr then (* If a key was tapped after the idleCheck_usr seconds it opens the app. *)
tell application "TextEdit" to launch
end if
return idleCheck
end if
end tell
end idle
この場合、アイドル状態は2分後になりますが、必要に応じて簡単に変更できます。TextEditの代わりにTransmissionを開くように行を変更することもできます。
アクション(アイドル状態でのアプリケーションの起動)が発生するためには、このAppleScriptを開いて実行したままにする必要があることに注意してください。
「SleepWatcher 2.2(Mac OS X 10.5から10.7で実行、ソースコードを含む)は、Macのスリープ、ウェイクアップ、アイドル状態を監視するMac OS Xのコマンドラインツール(デーモン)です。次の場合にUnixコマンドを実行できます。 MacまたはMacのディスプレイは、ユーザーの操作なしで一定時間経過した後、またはユーザーが休憩後に活動を再開したとき、またはMacノートブックの電源が接続または切り離されたときに、スリープモードになるか起動します。 Macをスリープモードにするか、最後のユーザーアクティビティからの時間を取得します。」
(コマンドを使用して)アプリを起動するには、次のようにする必要があります。
open /Applications/Transmission.app
Power Managerを使用すると、非アクティブ状態の後にアプリケーションを起動できます。
Jasonが彼の答えで言及しているように、Appleのアイドル時間の実装は予測が困難です。Power Managerは、ユーザーアクティビティに基づいて非アクティビティの測定値を使用します。これは予測しやすく、探しているものになる可能性が高くなります。
スクリーンセーバーの開始がidelとしての意味である場合は、スクリーンセーバーになり、AppleScript広告をスクリーンセーバーと呼ぶScriptSaverを見ることができます。