読者です 読者をやめる 読者になる 読者になる

イメージに染まるまで……

Mac,iOSなどAppleの製品についての記事や、セキュリティだったりGTDの記事を書いています。

Safariで終了を確認する 〜ホントに終了させていいの?をAutomatorで作る。

AppleScript Mac Tips Browser

はじめに

ChromeOperaにある、終了の前に確認をする機能。間違えてCommand + Qを押してしまった時にとても便利ですよね。

けれど、この機能はSafariにはありません。

以前、こちらの記事でも作成されていましたが、AutomatorSafariの終了を確認するダイアログを表示するAutomatorを、AppleScriptだけで作り直してみました。

ringosuki.hateblo.jp

このAutomatorは、非常に愛用させていただいていたので、ちょっとだけ改修する形で書かせていただきました。

動機

まず、時折(とは言ってもほとんどの場合起こりませんでしたが)このAutomatorが走った時に、Automatorのプロセスが正常に終了しなかったというエラーの表示が出ることがありました。これを防ぐことができるのではないか、という気持ちから、書き直すことを決めました。

これが起こるのは、ダイアログが表示されてからキャンセルを押した時でしたので、キャンセルの処理がなされた時だけ、エラーが返されるはずです。

とは言ったものの、書き直しは非常に簡単です。それは、Safariの終了を選択させるダイアログをtryで囲むことです。tryで囲むと、内部のエラーの返答を無視するようになるため、エラーの表示がなくなるのではないかと考えたのです。

これで、時折出てきていたエラーが出なくなる……はず、です。

作り方

先ほどもあげた記事の中で丁寧に説明されていますので、そちらを参照した方がよりわかりやすいと思いますが、簡単な説明をしておきます。

まず、Automatorでサービスの作成を選択。

f:id:nya-0:20151013203658p:plain

赤く囲んだ部分の、「次の項目を受け取ります」を「入力なし」に、「検索対象」を「Safari.app」に変更します。

f:id:nya-0:20151013203800p:plain

ここから、「Apple Scriptを実行」を処理の中に入れて、以下のスクリプトをコピペします。

try --エラーを無視する
set dialogResult to display dialog "Safariを終了します。取り消す場合は10秒以内にキャンセルボタンを押してください" giving up after 10 with icon caution --10秒経つと、自動的にダイアログが消えて、Safariが終了。
if button returned of dialogResult is "OK" then
tell application "Safari”
quit
end tell
-- ここまででSafariが終了する選択肢が閉じる。elseはない。
end if
end try

これを保存すれば、サービス自体は完成です。名前は「確認してSafariを終了」とでもしておきましょう。

この後、システム環境設定から、SafariのCommand + Qのショートカットをこのサービスに割り当てる作業を行います。

システム環境設定を開き、キーボード>ショートカット>アプリケーションに移動します。+ボタンでアプリケーションでSafariを選択。Safariの終了をコマンド名を正確に打ち込みます。正確にコマンドを打ち込まなければ機能しませんので、しっかりと確認してください。

これで、Safariのメニューバーの項目を見てみてください。最初に割り当てられているSafariを終了させるメニューから、当初あったCommand + Qが消えています。

そして、サービスを選択する画面にある、Safariのサービスの中に、今回作成したサービスの名前が入っていて、こちらにcommand + Qが割り当てられていれば成功です。

f:id:nya-0:20151013204528p:plain

お疲れ様でした。

おわりに

この機能が欲しいアプリがある場合、上のサービスの中のアプリケーション名を変えると、他のものでも応用が利きます。ただし、すべてのアプリケーションでの動作は保証できません。

私の環境では、iTunesでは動作しましたが、Firefoxでは動作しなかったりしました。

ちなみに蛇足ですが、こちらでは、通常のSafariの終了をoption + command + Qに割り当て直していましたが、

ringosuki.hateblo.jp

実はこのショートカットキー、もともとSafariのすべてのウィンドウを閉じて終了する機能が割り当てられているので、こちらの機能を使う方は、割り当て直す必要はないかと思います。

f:id:nya-0:20151013204552p:plain

どうぞ、このサービスもお使いください。

参考サイト

ringosuki.hateblo.jp