0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Discord デスクトップアプリ版で、Enter を送信ではなく改行にする方法

0
Posted at

デフォルトの挙動

Discord のチャットでは、Enter でメッセージ送信、Shift Enter が改行となっています。これ、IME を使っていると、確定させるつもりの入力で送信されてしまい、大変都合が悪いです。これをなんとかしたいというのが今回のテーマになります。

動作を検証した IME は、MS IME、ATOK、Google 日本語入力になります。

なお、Gemini や ChatGPT でも同じ問題があるのですが、こちらはブラウザでの入力なので拡張機能が使えます。
私は定番の ChatGPT Ctrl+Enter Sender を愛用しています。大変助かっています。ありがとうございます。

ブラウザ版ではなくアプリ版となると、こういった技が使えません。なので、AutoHotkey を利用することになります。

設定の手順

設定の手順は、2段階に分けることができます。AutoHotkey での設定と、IME 側の設定です。
MS IME の場合には、AutoHotkey だけでいけると思います。IME 設定が必要なのは、ATOK と Google 日本語入力です

AutoHotkey の設定

AutoHotkey についての基本的な知識がある前提で話を進めます。

IME の状態を把握するため、IMEv2.ahk を利用します(IMEv2.ahk のごく一部の機能しか使わないので、利用は必須ではありません)

IME が入力を扱っている場合には Enter を Enter として扱い、それ以外の場合で Discord.exe がアクティブの場合には Enter を Shift Enter にします。
また、Ctrl Enter を Enter にして、Ctrl Enter での送信を可能にしています。これは外してもいいし、別のキーにしてもいいです。IME のキー設定をカスタマイズしている場合には、Ctrl Enter だと都合が悪いケースもあるかもしれません。

#Requires AutoHotkey v2.0

; 同じフォルダに配置した IMEv2.ahk を読み込む
#Include IMEv2.ahk

; Discord のウィンドウがアクティブな時のみ動作させる
#HotIf WinActive("ahk_exe Discord.exe")

; Ctrl + Enter で送信 (Discord標準の Enter を送信)
$^Enter::Send("{Enter}")

; Enter の挙動を IME の変換状態によって分岐
$Enter:: {
    ; IME_GetConverting() が 1以上 (変換中・候補表示中) の場合は確定の Enter
    if (IME_GetConverting()) {
        Send("{Enter}")
    } else {
        ; 変換中でない場合は改行のために Shift + Enter を送信
        Send("+{Enter}")
    }
}

#HotIf

AutoHotkey のスクリプトへのショートカットをスタートアップ(Explorer のアドレスバーに shell:startup と入力すればいける)に置けば、自動起動できるはずです。

IME 側の設定

この AutoHotkey のスクリプトは、ATOK や Google 日本語入力について、変換ウィンドウが表示されている状態を認識して判断しています。しかし、変換中であっても、変換ウィンドウが表示されていない状態も存在します。インライン変換と呼ばれるやつです。この状態に対応するため、IME 側で、Shift Enter で確定するように設定を変更します。

ATOK では "変換中" において Shit Enter で全文確定を設定します。

スクリーンショット 2026-04-24 092724.png

Google 日本語入力でも "変換中" に Shift Enter で確定を設定します。

スクリーンショット 2026-04-24 092616.png

これにより、AutoHotkey が IME 起動中ではないと判断するインライン変換(つまり、AutoHotkey が Enter を Shift Enter に置換している状態)において、Shift Enter で確定することが可能になります。

補足

今回は Discord の話でしたが、同じようなツールで同じような解決が可能です。
個人的には、Slack のようにアプリ内で設定させてほしいところです。

あと、Discord は Webhook を利用して、自分用チャンネル経由でスマートフォンに通知を送るといったことができます。友達ゼロでも便利です。私は、登録したウェブページに変更があった場合に Discord 経由で通知が行くようにしています。Google Cloud 使わなくても、Windows PC のタスクスケジューラで動かせます。(タスクスケジューラは、タスクスケジューラーにしなかったんだね)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?