DiscordやChatGPTなどで文字の入力途中にEnterキーで誤送信させない方法
こんな事ありませんか?
「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
配下にインストールします。
以下のコマンドをターミナルにコピペ&実行しましょう
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にインストールされます。
{
"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の場合
{
"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の場合
"bundle_identifiers": [
"^com\\.hnc\\.Discord",
+ "^com\\.google\\.Chrome$"
]
Safariの場合
"bundle_identifiers": [
"^com\\.hnc\\.Discord",
+ "^com\\.apple\\.Safari$"
]
Discord以外のアプリにも実装したい場合は、わかりやすいように設定ファイル名をEnter-modificationのように書き換えていいかもしれませんね。
Discussion