⌨️

karabiner-elements で Mac版のChatGPTアプリでReturn と Shift + Return を入れ替える

2024/07/05に公開
1

TL;DR

みなさんMac版のChatGPTアプリを使っていますか?

ChatGPT は Return キーでメッセージを送信します。
複数行にわたるメッセージを送信する場合、Shift + Return で改行を入力します。
この挙動、逆だといいですよね。

実際 Chrome拡張機能で入れ替える例をよくみますね。

karabiner-elements で Return と Shift + Return を入れ替える設定を紹介します。

ルールの確認

自分は karabiner.tsを使っているので、それを使った実装を紹介します。
karabiner.tsについては以下の記事を参照してください。

https://zenn.dev/ryoppippi/articles/85373aaf0c92e0

やっていることはシンプルです。
https://github.com/ryoppippi/dotfiles/blob/6ab729e9edd8877baacd240e4b09fe0ad5d37950/karabiner/utils.ts#L13-L32
https://github.com/ryoppippi/dotfiles/blob/c24beec0aaedd37a51a9d70d5f72c0c6b8f19448/karabiner/karabiner.ts#L8-L11
https://github.com/ryoppippi/dotfiles/blob/c24beec0aaedd37a51a9d70d5f72c0c6b8f19448/karabiner/karabiner.ts#L77-L96

  • ChatGPT の Bundle Identifer を探してくる(ここでは com.openai.chat)
  • Bundle Identifer が com.openai.chat の時にルールを有効にする
  • Retrun + Shift が押された時に Return を送信する
  • Return が押された時に Shift + Return を送信する
  • ついでに Command + Return で Return を送信する

としています。

これがコンパイルされるとこのようになります。

karabiner.ts を使ってない人はこちらをコピペして使ってください。
https://github.com/ryoppippi/dotfiles/blob/d736fa2856f85f6e52aca5ea157745b266c1dbe5/karabiner/karabiner.json#L222-L300

まとめ

karabiner.ts使おう

Discussion

NoriNori

最後に書いていただいたJSONを元にMessengerで、

  • return -> shift + return
  • command + return -> return

を行おうとしたのですが、日本語変換中の確定のreturnまでshift + returnになってしまうため、日本語の確定ができませんでした。こういった問題はChatGPTアプリでは起こらないでしょうか?(私のMacのバージョンではChatGPTアプリが動作しないので確認できなくて申しわけありません)

karabinerで日本語変換中の状態をコンディションで指定できればよいのでしょうが…