見出し画像

デフォルトブラウザ「以外」でWebページを複数開く 〜AppleScriptとの連携〜【前編】

今回のお題

パソコンを起動して、Webブラウザを立ち上げ、毎日見るサイトを複数開く。
ニュースサイトや天気予報がそれにあたるわけですが、皆さんはそういった日々のルーティンはありますか。

自分はこの一連の作業が定型化しているので、自動運転スクリプトを既に作ってあります。

これは元々が全て AppleScript で、さほど多くない行数で書いたプログラムなんですが、それを Automator で実現することを考えてみます。イメージ的に AppleScript と連携することになるだろうと思ったので、例題としては良いだろうと。ではいってみましょう。


どうやって決めたんだっけデフォルトブラウザ

この記事を書くにあたって考えざるを得なかったのがデフォルトブラウザ問題。
最近の Mac OS X バージョンでは、「システム環境設定」の「一般」から変更できることを今更調べて知ったわけですが、自分の環境は古いもので、これが無いんですわ 笑

画像1

(中段に見える「デフォルトの〜」プルダウンリストで選ぶ)


で、一体オレはどうやってデフォルトブラウザを決めたのか。
いろいろやったあげく、各ブラウザの設定でやっていたのだと思い出しました。

あらためて見るとなんだか酷いなコレ…
各ブラウザがデフォルトブラウザ情報を上書きするってわけでしょ。どうなのこの仕様、って。笑

まぁそれは良いとして。
設定がOS側のUIとして無いにしても、シェル(ターミナル)でその情報を得たり書き換えたりできるんじゃないかと思ったんですよ。例えば、起動音をシェルから消したりできるように。

でもこれがいくら検索しても出て来ない。 じゃあいいよもう。 笑
シェルでできれば、この記事は『シェルスクリプトとの連携』になったわけですが、まぁ気を取り直していきましょう。


デフォルトブラウザの挙動

まず最初に、システム環境設定でデフォルトブラウザが決められている時にどうする、どうなるかを見てみます。

画像2

Automator を起動したら「アプリケーション」を選んで、こんな風にします。これだけでいいんですよ。

アクションを「インターネット」に絞り込んで、右のペインのように配置してください。
「指定された URL を取得」アクションの上では、ひとまず1サイトのみ書き込んでいます。というか最初から入っていますね。このままいきましょう。

続くアクションは「Webページを表示」。
これで窓の右上の「実行」を押してみてください。
デフォルトブラウザで表示されるはずです。

試しに、システム環境設定でそれを変更しながら実行を各々押してみてください。その通りにブラウザが変更されてサイトが表示されると思います。

なるほど挙動はわかった。

もし、普段使いのブラウザから切り替える必要があるとしたら、一々システム環境設定でデフォルトブラウザを変更するのは面倒だし、その必要もなくなるよ、ってのが今回のやり方の良いところ。
(勿論、自動でシステム環境設定を操作することもできてしまうわけですが… 笑)
今回の目的は、デフォルトはそのままに、Automator のプログラム側から別のブラウザを指定しサイトを閲覧する、ということになります。


アクションを組み立てる

さあ、いよいよ作り込んでいきましょう。
とは言っても、今回もこれだけなんです。

先程試してもらった「指定された URL を取得」→「Webページを表示」。
その後者のみ「AppleScript を実行」に差し替えます。

画像4

その窓の中に、コードらしきものが書かれていますね。
一度、かなづちアイコンのボタンをクリックしてみてください。すると文法チェックがされてキーワードの色が変化します。通常ここでコードにエラーがあれば捕捉されます。

淡いグレーのままの (* Your script goes here *)。
この部分に自分のコードを書き込んでいきます。前後に書いてもいいし、この行を消してしまってもいいです。

「(*」で開始し「*)」で終了するブロックはコメントブロック(コメントアウト)と言って、主にコードを(後から)見る人のための説明・注釈等を書き入れるためのもの。

これは複数行に渡るコメントで使えます。反対に、単一行なら「--」(半角マイナスx2)。以下のように2種類のコメントパターンが使えます。

-- これは単一行コメントです

(*
これは
複数行
コメントです
*)


そして、そこに書き込むコードはこれ。短いし簡単です。
意味はわからなくてもいいです。じゃあまたね!

画像4

on run {input, parameters}

	--set webBrowser to "Google Chrome"
	set webBrowser to "Firefox"

	repeat with theURL in input
		tell application webBrowser to open location theURL
	end repeat

	return input

end run

…て、そんなわけにはいかない 笑

短いコードなのでちょうど良いとばかり、プログラミングにあまり馴染みのない方向けの説明をしようと思ったら、思いがけず長くなってしまったので、続きは次回。じゃあまた!


いいなと思ったら応援しよう!