はじめに
皆さんは毎日同じサイトを訪れるルーティーンはありますか?
毎日同じサイトを訪れる場合、ブックマークなどを利用することが多いと思います。でもこれって多少面倒ですよね。
そこで、スクリプトを使用すればSpotlightやRaycastからワンコマンドでまとめて開くことができます。
今回は、これを実現するやり方を解説します。
スクリプトコード
tell application "Google Chrome"
make new window
activate
delay 1
tell application "System Events" to keystroke "f" using {command down, control down}
open location "https://qiita.com/"
open location "https://www.nikkei.com/"
open location "https://www.raycast.com/"
end tell
先ほどのスクリプトはこの9行のコードで実現できます。
以下に細かめの解説を書いておくので、興味のある方はご覧ください。
コードの解説
tell application "Google Chrome"
- AppleScriptに対して「Google Chrome」のアプリに命令を送る、と宣言しています
make new window
- Chromeで新しいウィンドウを作成します
activate
- Google Chromeをアクティブ(最前面)にします。あとでショートカットキーをChromeに与えるための措置です
delay 1
- 1秒間の遅延(待機)を挿入します。これは新しいウィンドウが確実に作成され、ショートカットキーを受け付けるための余裕を持たせる目的です
tell application "System Events" to keystroke "f" using {command down, control down}
- 「System Events」アプリケーションを使用して、
command
キーとcontrol
キーを押しながらf
キーを押します。Chromeのウィンドウをフルスクリーンモードにするためのキーボードショートカットです
open location "https://qiita.com/"
open location "https://www.nikkei.com/"
open location "https://www.raycast.com/"
- URLを開きます。これらはそれぞれ別のタブで開いてくれます
end tell
-
tell application "Google Chrome"
ブロックを終了します。スクリプトはここで終わり、という合図ですね
実際にワンコマンドで開く準備
まず、ターミナルを開いて以下のコマンドを入力します。
mkdir -p ./script && cat << 'EOF' > ./script/open_all_at_once_Tabs.scpt
tell application "Google Chrome"
make new window
activate
delay 1
tell application "System Events" to keystroke "f" using {command down, control down}
open location ""
open location ""
open location ""
end tell
EOF
このコマンドを実行すると、./script/open_all_at_once_Tabs.scpt
にコードがすでに入力された状態に なっているはずです。
あとはVScodeでもviでもいいので、このファイルを編集してください。
open location ""
を増やしたり減らしたりして、開きたいサイトのURlを入力して保存しましょう。
それが終わったら次にショートカットを作成します。
↓
↓
↓
この画面になればOKです。
+
ボタンを押して新規でショートカットを作成します
右の検索バーに「シェル」と打ち込み、シェルスクリプトを実行
をダブルクリックすると、何やら追加されると思います。
。
echo "Hello World"
を消して、以下のように書き換えます。
osascript ./script/open_all_at_once_Tabs.scpt
osascript
はAppleScriptを実行するコマンドです。
そして、実行しやすいようにショートカットの名前も変更しておきましょう。(普通英語で書きます。このあと視認できやすいように日本語で書いているだけです)
⌘+S
で保存しておきましょう。
そのあとでSpotlightやRaycastでショートカット名を叩くと..
このように出てきますね!以後これを実行するだけでいつでも、指定したサイトがまとめて自動で開きます。
なお、初回実行のみ権限回りの設定をしなければいけないかもしれません。
Shortcuts Events
、ショートカットにアクセシビリティの権限を付与しておきましょう。(一回ショートカットを実行しないと項目に出てこないかもしれません)
おわりに
AppleScriptは他にも便利な使い道がありそうなので、思いつき次第、記事にしていきたいと思います。