💡

【Mac&Chrome】URLを踏んだ時、どのプロファイルで開くか選択する方法

2023/11/23に公開

この記事はMacでChromeを使っており、複数のプロファイルを使い分けている方向けとなります。

はじめに

Macを使っていて、送られてきたURLをクリックをすることは多々あります。メールやLINEなどで送られてきたもの、Notionやカレンダーなど自分がメモしたものなど。
クリックでChromeが立ち上がったと思ったら、アクセス権限があるアカウントじゃなかった...プライベートなことだから仕事用アカウントで開きたくなかった...っていうことがあったり、
わざわざ開きたいプロファイルのウィンドウをバックグラウンドに待機させておいてからクリックしたり...なんてことがあると思います。

今回はリンクをクリックしたときに、どのプロファイルで開くか選択できるようにする方法を紹介します。実際にはこのようになります↓

Hammerspoonとは

今回はHammerspoon(ハンマースプーン)というアプリを使用します。これは、macOS上で動作するオープンソースのソフトウェアで、Luaスクリプトを使用してOSの様々な機能や操作を自動化するためのツールです。Hammerspoonは、ウィンドウの管理、キーボード・マウスのイベントのフック、アプリケーションの起動や終了の制御、およびシステムの様々な側面にわたる自動化を可能にします。(ChatGPTより)

Hammerspoonは通常の応用ソフトウェア(アプリ)同士で起こりうる干渉がなく,ミドルウェアであるかのように機能するのがいいところです。

導入方法

Homebrewを使ってインストールします。

brew install hammerspoon

インストールが完了すると、アプリケーションに追加されているので起動します。Enable Accessibility をクリックして、アクセシビリティの許可を行います。許可されるとグレーアウトするはずです。
※環境によって(Mチップ)は、許可したのに、グレーアウトしないということが確認されていますが、再び開くと緑マークになっているようので,とりあえず無視して続けましょう。

PCを再起動したときに自動で起動するようにLaunch Hammerspoon at loginにもチェックを入れておきましょう。

メニューバーにHammerspoon(ハンマーとスプーンが合体したもの)のマークがあるのでクリックして、Open Configを選択するとinit.luaというファイルがソースコードエディタで開きます。このファイルは隠しファイルとなっており、Finderから開く際には注意が必要です。

luaコードの実装

init.luaに書くコードをgit hubからダウンロードします。
今回紹介するコードは、私の友人が作ってくれたものになります。「こんなの作れないかなぁ」と話してたら、彼が30秒でこのコードを書いてくれました↓
今後も彼が作ってくれたコードを紹介するかもしれません。
https://github.com/gokamoda/ChromeProfileSelector
ダウンロードしたファイルの中にinit.luaがあるので、その中のコードを何も考えずにopen configから開いたinit.luaにコピペします。

変更が必要なのは11, 12行目です。

init.lua
{"Profile 1", "Work"},
{"Profile 2", "Private"},

Chromeのプロファイルはローカルに保存されており、それを指定しているのが左側です。chromeのアドレスバーでchrome://version/と入力すると、プロフィールパス:の欄にこのような内容が書かれています。

つまり、このプロファイルはProfile 2という割り当てになっていることが分かります。もしこのアカウントがプライベート用なら右側にPrivateプライベートなどと入力すると分かりやすいでしょう。プロファイルは通常Default, Profile 1, Profile 2というふうに割り当てられていると思います。

3つ以上プロファイルを使い分けている場合は、下に続けて書くことができます。

実際に使ってみる

これでコードの準備は完了です。エディタを保存したあと、メニューバーのHammerspoonからReload Configをクリックします。ここで「デフォルトブラウザをHammerspoonに変更しますか」と表示が出るので、素直に変更します。ここに抵抗を覚える方もいるかもしれませんが、とりあえずやってみましょう!ダメだったら、戻せばいいだけのこと。

これで設定は終わりです。早速、リンクを踏んでみてください。リンクをクリックすると画面中央にプロファイルの画像と共に選択画面が出てくると思います。クリック以外に数字キーでも選択できます。

自分好みにカスタマイズする

選択画面をマウス周辺に出す

31, 32行目の

init.lua
local x = screen.x + (screen.w / 2) - (numProfiles * iconSize / 2)
local y = screen.y + (screen.h / 2) - (iconSize / 2)

を以下のように変更します

init.lua
local currentPosition = hs.mouse.absolutePosition()  --追加 
local x = currentPosition.x - (iconSize / 2)         --変更
local y = currentPosition.y - (iconSize / 2)         --変更 

そうすると、選択画面がマウスの位置に出てくるので、マウスの移動を最小に抑えられます。

明るさの設定

34, 38行目の["alpha"]の値を調整することでURLをクリックした時の背景やボックスの明るさを変更できます。
私は0.8 → 0.6, 0.4 → 0.2にしています。ここは自分の感性で調整しましょう。

Discussion