シェルからGeekletをリフレッシュする 3月19日, 2019
GeekToolでデスクトップを飾って遊んでいる。ちょっと必要があって, bashのスクリプトからGeekletをリフレッシュしたくなった。設定する秒数を指定する方法ではなく, 自分の思うタイミングで励起したいのだ。
まず思いつく単純なやり方として情報が多いのは, AppleScriptを利用してリフレッシュするものだ。
tell application “GeekTool Helper”
tell geeklet id “vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz”
refresh
end tell
end tell
こんなAppleScriptを用意して,それをスクリプトから呼ぶわけだ。しかし, 考慮中のものは,Launchctlに起動されたbashスクリプトからGeekletを呼んでデスクトップに表示するものだ。単純化すれば,
■よくありそうな手順
・Launchctlからbashスクリプトを起動する
↓
・スクリプト内でGeekletをリフレッシュするために, "AppleScriptファイルを呼ぶ"
/usr/bin/osascript /Users/me/Library/Scripts/sample.scpt
↓
・AppleScriptがGeekletをリフレッシュする
このようにAppleScriptを介するのがちょっと不愉快に思ったのだ。それで「bashからGeekletを直接リフレッシュする」方法があるだろうと思って調べたが,簡単にはヒットしなかった。ここに書き留めておく意味もあるかもしれない。結論は簡単なことで, AppleScriptのファイルは不要。"Geekletを直接リフレッシュする"。
例えばこんな風に,
$ /usr/bin/osascript -e ‘tell application “GeekTool Helper”
to refresh geeklet id “vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz”’
単純なことだった。この効用は, ターミナルから入力すれば確認できる。まあ, ファイルは不要とは言え, AppleScriptを用いることには変わらないのだけど。
【追記】icalBuddyのCatalinaへの対応 10月23日, 2019 GeekTool自身は問題なく動くのだが, 併用しているicalBuddyがNGとなった。不安定。「これは困った」と思っていたら早速対応してくれた方があった。 ここ のicalBuddy64.gitを使わせてもらう。 THANKS!