webruary

RSS

  • HOME
  • Web
  • Googleチャットの改行を「Enterのみ」送信を「Ctrl+Enter」にするスクリプト

Googleチャットの改行を「Enterのみ」送信を「Ctrl+Enter」にするスクリプト

逆になんで「Shift+Enter」で改行、「Enter」で送信がデフォルトなんだろうと。
たしかに、Googleに限らずチャットって改行をしないような、短い文章のやりとりなイメージはあるけど…。

でも個人的には短い文章を連投するより、改行しつつ一度にまとめて送信したい。

普段は誤送信を防ぐために、タスクバーからMery(テキストエディタ)を起動して、文字を打ってからGoogleチャットにペーストして送信してますが、めんどくて「まっ、だいじょぶやろ」と思ってGoogleチャット直で入力すると途中で誤送信。

って言うくらい、自分の中でEnterは改行なんですッ。

なので何か対策はないかと調べたら、Chrome用の拡張機能はあったのですがFirefox用がない…。

ただ調べてる途中で、Googleチャットとは関係ないけどユーザースクリプトであれこれする記事を見つけ、「この方法ならFirefox・Chrome関係なく使えるやんッ。」と思いユーザースクリプトを作成することにしました。

ここから続き

シリコンパワー公式ストアのセール・割引対象商品一覧

Tampermonkey用のスクリプト

と言うことで「Enterのみで改行」、「Ctrl+Enterで送信」にするスクリプトを作成しました。
チャッピーが 🤖

UserScript
// ==UserScript==
// @name         Google Chat Enter=改行 / Ctrl+Enter=送信
// @namespace    https://tampermonkey.net/
// @version      1.0
// @description  Google Chat Web版で Enter を改行、Ctrl+Enter を送信に変更
// @match        https://chat.google.com/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function () {
	'use strict';

	// Google Chat の入力欄を判定
	function isChatInput(target) {
		return target &&
			target.isContentEditable &&
			target.closest('[contenteditable="true"]');
	}

	document.addEventListener('keydown', function (e) {

		if (e.key !== 'Enter') return;
		if (!isChatInput(e.target)) return;

		// Ctrl + Enter → 通常の送信処理に任せる
		if (e.ctrlKey && !e.shiftKey && !e.altKey) {
			return;
		}

		// Enter → 改行
		if (!e.ctrlKey && !e.shiftKey && !e.altKey) {
			e.preventDefault();
			e.stopImmediatePropagation();

			// Google Chat が通常の改行として処理する
			const newEvent = new KeyboardEvent('keydown', {
				key: 'Enter',
				code: 'Enter',
				keyCode: 13,
				which: 13,
				bubbles: true,
				cancelable: true,
				shiftKey: true
			});

			e.target.dispatchEvent(newEvent);
		}
	}, true);
})();

なんで送信を「Shift+Enter」にしなかったかと言うと、Winodwsユーザーなのでショートカットキーは「Ctrl」を押しながらが基本なので。

ちなみに、最初Geminiにスクリプト作成してもらいましたが、エラーで使い物になりませんでした。
チャッピーは一発だったのに…。

でもこのミームのおかげで、Geminiは愛嬌があって好き。
AIミーム

ついでにWeb版のGeminiもEnterで改行にするスクリプト

チャッピーさすが 🤖

UserScript
// ==UserScript==
// @name         Gemini - Enterで改行
// @namespace    https://tampermonkey.net/
// @version      1.0.0
// @description  Gemini Web版でEnterキーを改行にする
// @match        https://gemini.google.com/*
// @run-at       document-start
// @grant        none
// @noframes
// ==/UserScript==

(function () {
	'use strict';

	// 入力欄かどうか判定
	function isInputElement(target) {
		if (!target) return false;

		// textarea
		if (target.tagName === 'TEXTAREA') {
			return true;
		}

		// contenteditable
		if (target.isContentEditable) {
			return true;
		}

		// textbox
		if (target.getAttribute?.('role') === 'textbox') {
			return true;
		}

		return false;
	}

	// IME変換中かどうか
	function isComposing(e) {
		return e.isComposing || e.keyCode === 229;
	}

	 // Enterキー処理
	document.addEventListener('keydown', function (e) {

		if (e.key !== 'Enter') return;
		if (!isInputElement(e.target)) return;

		// 日本語入力中は何もしない
		if (isComposing(e)) return;

		// Enter → 改行
		if (
			!e.ctrlKey &&
			!e.shiftKey &&
			!e.altKey &&
			!e.metaKey
		) {
			e.preventDefault();
			e.stopImmediatePropagation();

			// Shift + Enterを発生させて改行させる
			const newEvent = new KeyboardEvent('keydown', {
				key: 'Enter',
				code: 'Enter',
				keyCode: 13,
				which: 13,
				bubbles: true,
				cancelable: true,
				shiftKey: true
			});

			e.target.dispatchEvent(newEvent);
		}
	 }, true);
})();

最初はChatGPTとGeminiの両方対応で「Enterのみで改行」「Ctrl+Enterで送信」を作成してもらったんですが、「ChatGPTは最近Enterを改行にする設定が追加されたよ。」との事だったのでChatGPTはなくしました。
そして「Ctrl+Enterで送信」は注意書き的な感じで「送信ボタンを押したほうが良いよ。」とのことだったので、こちらも省きました。

  • はてなにブックマークする
  • LINEでシェアする
  • ツイートする
  • facebookでシェアする

Sponsored Links

Comment Form

※ コメント欄には反映されません。むしろ hoge@~ のままでも大丈夫です。
※ <b> のみ使用でき、URL は自動リンクされます。

投稿したコメントは管理人が承認するまで表示されません。
それと、日本語が含まれない場合は投稿がスルーされる(スパム対策)のでご注意ください。