📖

DiscordやChatGPTなどで文字の入力途中にEnterキーで誤送信させない方法

2024/04/07に公開

こんな事ありませんか?

「DiscordやChatGPTなど、文字の入力途中に改行しようとしたら送信されてしまった。」
「その後、送信したメッセージを削除して編集 or 再送信した。」

これ、地味にめんどくさいですよね。笑

解決策はいくつかありますが、今回ご紹介するのはKarabiner-Elements

解決策:Karabiner-Elementsを使おう!


Karabiner-Elementsとは、macOSのキーボードをカスタマイズするためのツールで、キーバインド設定などができます。キーバインドとは、PCのどのキーに何の役割を割り振るか、という意味です。

キーバインド設定次第であらゆる変更ができるのですが、例えばEnterで改行だったのが、Shift + Enterで改行できるようになります。

役割 変更前キー 変更後キー
改行 Enter Shift + Enter
全選択 command + A Shift + A

では、実際の手順を見てみましょう!

手順

1、設定ファイルをインストール

ターミナルコマンドを使います

JSONの設定ファイルを 自分のPCの~/.config/karabiner/assets/complex_modifications 配下にインストールします。

以下のコマンドをターミナルにコピペ&実行しましょう

tarminal
curl -o ~/.config/karabiner/assets/complex_modifications/discord-enter-modification.json https://gist.githubusercontent.com/Shuto-simpledesign/6c35f68d0f44a972ee1850e9b3657fa0/raw/1abb7cce1f7927b78d6237253adcbb3db11a4bfc/Discord-Enter-Modification.json

すると、以下のソースコードを持ったファイルが自分のPCにインストールされます。

discord-enter-modification.json
{
  "title": "Discord-Enter-Modification",
  "rules": [
    {
      "description": "Discord-Enter-Modification",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "return_or_enter"
          },
          "to": [
            {
              "key_code": "return_or_enter",
              "modifiers": ["left_shift"]
            }
          ],
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": ["^com\\.hnc\\.Discord"]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "return_or_enter",
            "modifiers": {
              "mandatory": ["command"]
            }
          },
          "to": {
            "key_code": "return_or_enter"
          },
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": ["^com\\.hnc\\.Discord"]
            }
          ]
        }
      ]
    }
  ]
}

2、arabiner-Elementsをインストール

公式サイトに入ってインストール

3、Complex modificationsを選択

4、Add predefined ruleを選択

5、Discord-Enter-Modificationを追加

Discord-Enter-ModificationをEnable(有効)にしましょう

これで設定完了です!! Discordの入力欄でEnterキーを押下したら改行され、Shift + Enterで送信されるはずです!

補足

上記の設定はDiscordアプリ内でのみ実装されます。というのも、bundle_identifiersはアプリケーションごとに付与されているIDだからです。なので**ChatGPTなどのブラウザにアクセスする必要があるWEBアプリには適応されません。**とはいえ、ChatGPTでも「プロンプト入力途中でEnterキーで送信してしまって二度手間になった」みたいな事ってありますよね?そんな時はChromeやBraveブラウザ等のbundle_identifiers(ID)を取得して、ブラウザ単位で実装することをお勧めします。

特定のアプリケーションを指定する場合は以下のように正規表現で記述します。

^com\\.brave\\.Browser$

ブラウザで実装する場合

主なブラウザのbundle_identifiersです。

ブラウザ bundle_identifiers
Brave com.brave.Browser
Chrome com.google.Chrome
safari com.apple.Safari

ここに正規表現を加えてソースコードに実装します。ブラウザに応じて適宜書き換えてください。

Braveの場合

discord-enter-modification.json
{
  "title": "Discord-Enter-Modification",
  "rules": [
    {
      "description": "Discord-Enter-Modification",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "return_or_enter"
          },
          "to": [
            {
              "key_code": "return_or_enter",
              "modifiers": ["left_shift"]
            }
          ],
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": [
                "^com\\.hnc\\.Discord",
+               "^com\\.brave\\.Browser$"
              ]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "return_or_enter",
            "modifiers": {
              "mandatory": ["command"]
            }
          },
          "to": {
            "key_code": "return_or_enter"
          },
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": [
                "^com\\.hnc\\.Discord",
+               "^com\\.brave\\.Browser$"
              ]
            }
          ]
        }
      ]
    }
  ]
}

Chromeの場合

discord-enter-modification.json
              "bundle_identifiers": [
                "^com\\.hnc\\.Discord",
+               "^com\\.google\\.Chrome$"
              ]

Safariの場合

discord-enter-modification.json
              "bundle_identifiers": [
                "^com\\.hnc\\.Discord",
+               "^com\\.apple\\.Safari$"
              ]

Discord以外のアプリにも実装したい場合は、わかりやすいように設定ファイル名をEnter-modificationのように書き換えていいかもしれませんね。

Discussion