MacでChromeとSafariのブックマークを自動同期させる方法

MaciPhoneを使っていると時々、手間だなと感じる時があります。

その一つがブラウザのブックマークの同期です。

僕はMacではGoogle Chromeを使用していて、iPhoneではSafariを使っています。MaciPhoneで使っているブラウザが使っているため、同然のことながらブックマークが自動的に同期されることはありません。

そのため、ブックマークの管理が煩雑になり、目当てのサイトを探すのに手間取ることがありました。

Windowsであれば、iCloudブックマークを使えば簡単に同期できます。しかし、Macの場合、調べた限りでは自動で同期する方法がありませんでした。

ChromeでブックマークをエクスポートしてSafariでインポートしてやればいいのですが、それすら煩わしいわけです。

パソコンにやらせればできることは可能な限り、パソコンにやらせる

最近、強く思うようになったことの一つです。

人間の手が介入する時点でパソコンに使われてる気がするんですよ。(事前準備は別です)

そんなわけで僕もプログラマーの端くれなので全自動でChromeSafariのブックマークを同期する方法を考えました。

AppleScriptChromeSafariのブックマークを自動同期させる方法

Macには標準でAppleScriptが搭載されています。一言でいうとマクロです。OSに搭載されている純正のスクリプトだけあって色々なことができるわけです。今回はこれを使います。

まず、LaunchPadのその他から「スクリプトエディタ」を開きます。スクリプトエディタはAppleScriptを書くためのエディタです。

新規作成から以下のようにコマンドを入力します。

tell application "Safari"
    activate
    tell application "System Events"
        tell application "System Events"
            tell process "Safari"
                tell menu bar 1
                    tell menu bar item "ファイル"
                        tell menu "ファイル"
                            tell menu item "読み込む"
                                tell menu "読み込む"
                                    click menu item "Google Chrome..."
                                    delay 0.5
                                    keystroke return
                                end tell
                            end tell
                        end tell
                    end tell
                end tell
            end tell
        end tell
    end tell
end tell

コマンドを入力したら任意の場所に保存します。僕はMacを2台持っているのでiCloud Driveに保存しています。

試しに実行してみましょう。同期されていれば成功です。

実行する前にSafari側のブックマークを削除しておきましょう。重複登録されて面倒です。

これで同期させることはできました。ただ、毎回スクリプトを手動で実行する必要があるため、完全自動ではありません。

そこでスクリプト実行をカレンダーに登録します。

適当に開始時間と終了時間を設定します。スクリプトを実行するだけなので開始時間と終了時間は同時刻でいいです。

次に通知方法を設定します。「通知」→「カスタム」を選択します。

プロダウンの選択は上から順番に以下の通りです。

  1. 「ファイルを開く」
  2. 「その他」から上記で作成したスクリプトファイルを選択する
  3. 「0分前」に設定する。そうすると自動的に「イベントの開始時刻」になる

これで設定は完了です。

設定した開始時間にスクリプトが実行され、ブックマークが同期されれば自動同期は成功です!

まとめ

Macのカレンダーは繰り返し設定が「毎日」が最小単位なのでリアルタイム同期とはなりませんが今のところ、必要十分です。

今回の試みでAppleScriptが便利だということがわかったので色々駆使して効率化を図っていきたいと思います。