Blueickx Blog

Mac User Productivity & MacOS Automation

SafariブラウザのウインドウサイズをMacのディスプレイサイズぴったりに拡げる

AppleScript 1-2-3

10数年前に入手した AppleScript 1-2-3(Sal Soghoian and Bill Cheeseman 共著, Apple Training Series, Peachpit Press)は、 初心者向けの 879ページもある分厚い本だ。

f:id:ickx:20140208173431p:plain

プログラム経験がほとんど無い初心者向けに、Mac さえ持っていれば自習できるように考えられて構成されている。だから、プログラムを書ける人には冗長すぎる。そもそも書ける人 は AppleのDevelopersサイトでTech Noteをいくつか読めばわかって書けるだろうから、こんな自習書は手に取らないだろう。

この1-2-3本はそうしたプログラマーの人達とは全く別のユーザー層に向けて、オブジェクト指向スクリプトを使わせようという、とんでもなく高いハードルに挑戦した、意欲作だったのではないか? 想定読者層が違う、というより、AppleScript 自体の想定ユーザー層が違うのだ。

1993年にリリースされたAppleScript("...AppleScript was released in October 1993 as part of System 7.1.1 (System 7 Pro, the first major upgrade to System 7)")は、C言語やBasicがまだまだ主流だった時代で、もとからプログラマーではなく、一般人のmacユーザーを想定していたのだと思う。

Lesson 1 : The First Step

その一番最初の Lesson 1 に選ばれたAppleScriptの題材は、macOS の Finder window オブジェクトだ。 よくある他の言語のプログラム入門書では、最初に "hello world!" を出力する、とかなのだけれど、1-2-3では Finder Window をいきなり動かす。もう紹介したScript 1.1 は tell application "Finder" to close every window 、で、その次のScript 1.2は、

tell application "Finder" to open the startup disk

The tell Block

で、ファーストステップでは10ページくらい Finder Window の操作に何本ものスクリプトの実例と説明があって、最後のほうでは、AppleScript特有の tell Block のNested入れ子構造説明まで終えている。

AppleScript の最大の特色だと思うのだけど、tell Block が何かわかると、AppleScriptスクリプト文の構造が簡単に分かるようになる気がする。だから、tell Block の書き方に慣れる事が必要で、コマンドの羅列では無いため、nestが深くなると、どんどんスクリプトが大きくなってしまう(そのため「AppleScriptなんてコードが冗長すぎてとても書いてられない」というプログラマーさん達の意見は至極もっともだと思います。)

f:id:ickx:20200922020133p:plain

SafariブラウザのウインドウをMacのディスプレイサイズぴったりに広げる

ディスプレイサイズは、イコール、Finder の desktop のウインドウなんですね。 先にSafariで何かウインドウを開いておいてから、走らせてください。

今夜のSCRIPT -- MacのディスプレイサイズをGETして、SafariのウインドウサイズをSETし直す

tell application "Finder" to get the bounds of the window of the desktop

tell application "Safari" to set the bounds of the front window to {0, 22, (3rd item of the result), (4th item of the result)}

次のLesson 2 は Dictionary...

Lesson 1 だけでも57ページまであった。どんどん敷居が高くなりそう...

--おまけ。SafariでURLを開くには open location の後にURL文字列入れます。

tell application "Safari"

open location "https://en.wikipedia.org/wiki/AppleScript#History"

end tell

P.S. WikiPediaAppleScriptが解説されているが、日米ともにWikiPediaのルールを少々はみ出しているようだ。熱い人が書いているんだろうな。気持ちがよく分かる。