本記事の概要
Mac の Safari で Claude を使用すると自動でメッセージが送信されてしまって面倒なのでどうにかしたい.変換を確定させるだけでチャットが送信されてしまう.
解決策としては,ある条件で起動した Safari で起動した Claude のみ 「(特定のキー)+Enter」でメッセージを送信できるように設定した.
Requirements
- Mac OS
- Safari
解決策
1. Karabiner-Elements のインストール
Karabiner-Elements をインストールして,Karabiner-Elements
および Karabiner EventViewer
が使用できる状態にしておく.
2. Claude を Docker に固定
Safari で Claude を開き,ブラウザ右上の「共有」ボタンから Dock に追加
(英語では Add to Dock
)
すると,Dock に Claude のアイコンが追加されている.これは Safari 経由で Claude を立ち上げるためのショートカットになる.以下,これを Claude on Safari と呼ぶ.
- 仮に
Add to Dock
が存在していない場合
iOS のバージョンから起因している可能性が高い.MacOS Sonoma からこの機能が実装されたようなので,仮にオプションがなければ OS のバージョンを確認してみてほしい.
3. Karabiner EventViewer から Claude on Safari の ID を見つける
Karabiner EventViewer
を立ち上げ.Frontmost Application を選択し,先ほど Dock に追加した Claude on Safari を立ち上げる.すると,Bundle Indentifier
および File Path
が表示されるので,Copy to pasteboard
などで Bundle Indentifier
の情報を獲得する.
4. Karabiner-Elements に Claude on Safari を登録する.
Add your own rule
の部分に以下のコードを記載する.
{
"description": "********** 1 **********",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"********** 2 **********"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "********** 3 **********"
},
"to": [
{
"key_code": "********** 4 **********",
"modifiers": [
"********** 5 **********"
]
}
],
"type": "basic"
}
]
}
以下,それぞれ
********** 1 **********
このスクリプトのタイトル.例えば「Claude on Safari: Enter + X to send」のように設定する.
********** 2 **********
3.で取得した Bundle Indentifier
をここに記載する.
ただし, エスケープ記号などを追加する必要がある ので注意.
例えば,"^com\\.apple\\.Safari.WebApp.AAAAAAAAAAAAAAAAAAAAAAA$"
のような形で入力することになる.
********** 3 **********
通常の送信コマンドをここに付記する.通常は "return_or_enter"
でよい.
********** 4 **********
通常の送信コマンドをここに付記する.通常は "return_or_enter"
でよい.
********** 5 **********
Enter キーと何のキーを同時に押すことで送信をさせるかを決定する.
例えばキーコードを入力してやればよい.例えば左 Shift キーであれば "left_shift"
と入力してあげればよい.
6. (予備) 動作確認
通常のやり方で Safari を立ち上げ,他のアプリなどでこれまで通り問題なく動作をしているかどうかを確認する.また,Dock から Claude on Safari を立ち上げて,設定した通りに Claude のメッセージ送信ができるようになっているかの確認をする.