bgpict2.png 
わかばマークのMacの備忘録
初心者による Mac OSX の便利な使い方や、ソフトウェアの紹介など、Macのこといろいろ。

2023 / 12

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 



http://wakabamac.blog95.fc2.com/blog-entry-879.html

ScriptSaver
icn_ScreenSaver
ScriptSaver : スクリーンセーバを起動した(or 復帰)ときにAppleScriptを実行
OS10.3以上(UB)
フリーウェア


スクリーンセーバを起動したとき、もしくはスクリーンセーバから復帰したときに、指定しておいたAppleScriptを実行する「ScriptSaver」の紹介です。


インストール後に
システム環境設定デスクトップとスクリーンセーバスクリーンセーバ
を開き、「ScriptSaver」を選択して、オプションを開きます。
090308ss1.gif

▶ Activation Script
ここで、スクリーンセーバ起動時に実行する AppleScript を選択します。
Run asynchronously」にチェックすると、スクリーンセーバとAppleScriptが同時に起動しないようになります。
(スクリーンセーバが起動 → AppleScript を実行という順番)

▶ Screen Saver
ここで、使用するスクリーンセーバを選択します。
「ScriptSaver」は英語の言語リソースのソフトなので、スクリーンセーバの「RSS Visualizer」などは英語で表記されます。

▶ Deactivation Script
スクリーンセーバから復帰したときに実行する AppleScript を選択します。


「Activation Script」「Deactivation Script」に何も指定しなければ、スクリプトは実行せずに、指定したスクリーンセーバを起動するだけになります。
Location のテキストフィールドでパスを消去すれば、何も無しになります。

ScriptSaver で指定するAppleScriptは、別に
/Users/登録アカウント名/Library/Scripts/
/Library/Scripts/
の場所に保存していなくともOKで、どこの場所にあっても大丈夫です。



ScriptSaver を使うと、いろいろなことをできるので、その例を採り上げてみます。


【 iTunes のビジュアライザをスクリーンセーバとして使用する 】


iTunes のビジュアライザをスクリーンセーバとして使用することができます。

ScriptSaver をダウンロードしたときに、一緒にサンプルスクリプトが含まれていて、その中に「ShowiTunesVisualizer.scpt」というものがありますが、これでは(僕の環境では)スクリーンセーバが優先表示されてうまく機能しないし、iTunesを起動していないときには、勝手に iTunes を起動するので、作り直してみました。
property idleTime : 900 -- スリープするまでの時間(秒)「0」にするとスリープしない

on run
tell application "System Events"
set processList to name of every application process
end tell

if processList contains "iTunes" then
tell application "iTunes"
if player state is playing then
try
tell application id "com.apple.ScreenSaver.Engine" to quit
end try
activate
--set minimized of window 1 to false
set full screen to true
set visuals enabled to true
my sleepRun()
end if
end tell
end if
end run


on sleepRun()
if idleTime is 0 then return

repeat with i from 1 to idleTime
delay 1
tell application "System Events" to set currentApp to (name of the first process whose frontmost is true)
if currentApp is not "iTunes" then
return
else
tell application "iTunes"
if visuals enabled is false then return
end tell
end if
end repeat

--tell application "iTunes" to set full screen to false
tell application "iTunes" to set visuals enabled to false
tell application "System Events" to sleep
end sleepRun

(※ScriptSaver での設定時に「Run asynchronously」にチェックを入れないと機能しません。このスクリプトと併用して「Deactivation Script」で他のスクリプトを設定すると、たぶん機能しません。)

このスクリプトは、iTunes が再生中の場合のみビジュアライザを表示して、ビジュアライザから復帰しなければ15分後にスリープするようにしています。

ビジュアライザを表示するために、スクリプトで「スクリーンセーバを終了させる」といった、ちょっと本末転倒な作りになっています。




【 スクリーンセーバ起動中にメンテナンススクリプトを実行する】


夜中に自動的に起動するようになっている日/週/月ごとのメンテナンススクリプトをまとめて実行させます。

夜中にMacをスリープさせていたりして、実行されているかどうか、イマイチよくわからないメンテナンススクリプトを、スクリーンセーバが起動中に実行させるので、効率よく?実行できると思います。
-- //月ごとのメンテナンススクリプトをまとめて実行します
-- 下の行の "管理者アカウント名" "パスワード" を入力してから保存して下さい。
do shell script "/usr/sbin/periodic daily weekly monthly" user name "管理者アカウント名" password "パスワード" with administrator privileges

(※ "管理者アカウント名" と "パスワード" を入力してから保存して下さい)

ちなみにメンテナンススクリプトが、いつ最後に実行されたかを確認するには、ターミナルで次のコマンドを実行すると、わかります。

ls -al /var/log/*.out






【 スクリーンセーバ起動中に「アクセス権の修復」を行う 】


下記のスクリプトをScriptSaverの「Activation Script」に設定しておけば、スクリーンセーバ起動中に「アクセス権の修復」を行います。

上記の「日/週/月ごとのメンテナンススクリプト」とまとめて1つのAppleScriptにして、一緒に実行してもいいでしょう。
do shell script "diskutil repairPermissions /"

参考『スワップファイルをなくそう4 - Release Memory2 (for Tiger) (うむらうす)




【 スクリーンセーバから復帰後に"唄う" 】


スクリーンセーバから復帰したときに、Macが「唄う」ようにします。
「Deactivation Script」に設定してみて下さい。5曲あるうちのランダムで1曲選ぶので、おみくじ感覚で。
参考『Terminal Sings Songs
set theseSongs to {"say -v Good oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "say -v Bad oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "osascript -e" & quoted form of "say \"Dum dum dum dum dum dum dum he he he ho ho ho fa lah lah lah lah lah lah fa lah full hoo hoo hoo\" using \"Cellos\"", "osascript -e" & quoted form of "say \"oh This is a silly song silly song silly song this is the silliest song ive ever ever heard So why keep you listening listening listening while you are supposed to work to work to work to work its because i hate my job hate my job hate my job its because i hate my job more than anything else No its because youve no life youve no life youve no life and you better go get one after forwarding this crap\" using \"cellos\"", "osascript -e" & quoted form of "say \"Dum dum dee dum dum dum dum dee Dum dum dee dum dum dum dum dee dum dee dum dum dum de dum dum dum dee dum dee dum dum dee dummmmmmmmmmmmmmmmm\" using \"Hysterical\""}
set singCommand to item (random number from 1 to 5) of theseSongs
do shell script singCommand

(※ Safariなど一部Webブラウザでは半角の「\(バックスラッシュ)」が「¥」と表示されてしまいます。Firefoxだとちゃんと表示されます。Safariでもスクリプトリンクから開くと、ちゃんと半角の「\」で表示されます。)

ちょっと(いや、かなり)ウザかったりします・・・。






この記事では ScriptSaver 2.10 を使用しています。

(ダウンロードリンク)
Site top page : scattershot genius;
Download page : ScriptSaver: screensaver-triggered AppleScript « scattershot genius;

edit

Utility | CM:0 | TB:1

tag : AppleScript  ScreenSaver 

+



管理者にだけ表示を許可する
 

trackback URL



fuita report : スクリーンセーバーで、ログインウィンドゥへ

二人で、1台のMacを使い、2台のiPhoneをそれぞれのMobileMeアカウントで スムーズに同期させる方法を探していた。 iTunesでは、一つiTunesのアカウントでの同期となっているため、 2台のiPhoneの...

---------- fuita report | 2009/03/21, 21:13