ChatGPT : Ctrl+Enter で送信する (original) (raw)

ChatGPT で Enter を押したら意図せず送信されたりされなかったりで挙動が一致しないのと、Enter で改行、Ctrl+Enter で送信とした方が分かりやすいのでやってみた。

※ Shift+Enter で改行のようだが、端末(win10 と win11 のOS 違い?)によっては Enter で改行になるのでよく分からない。その場合は tab を二回押して (送信ボタンにフォーカスを移動して) Enter が必要でめんどくさい (よくファイルダイアログが開く)。ime の設定周りが影響している?

で実装 & 設定変更

(function() { 'use strict';

document.body.addEventListener('keydown', function(e) {
    if (!(e.ctrlKey && e.key === 'Enter') || e.isComposing) {
        return;
    }

    if (e.srcElement.id != "prompt-textarea") {
        return;
    }

    let ele = document.querySelector("button[data-testid='send-button']")
    ele.click();
  
    setTimeout(()=> {
        let ele = document.querySelector("button.cursor-pointer");
        console.log(ele);
        if (ele != null) {
            ele.click();
        }
    }, 3000);
});

})();

keyhac

gpt = keymap.defineWindowKeymap(
    exe_name="vivaldi.exe", 
    class_name="Chrome_WidgetWin_1", 
    window_text="ChatGPT"
)
gpt["Enter"] = "Shift-Enter"

Google IME の設定

と、思ったら既に Chrome 拡張があった。

chrome.google.com

実装を見るに tampermonkey でやろうとしてたことと大差がないのだが・・・うまくいかなかったのなんでだろ。