🔧

NotebookLMで日本語入力中のEnter確定送信を防ぐTampermonkeyスクリプト

2024/12/08に公開

はじめに

NotebookLMを日本語で利用する際、変換確定のためにEnterキーを押すと、そのままテキストが送信されてしまう問題があります。これによって、まだ確定したくない入力途中の文字列が送信されてしまい、非常に煩わしい状況が発生します。

この問題をTampermonkeyを利用して解消するスクリプトを貼ってます。

背景

NotebookLMは、Googleが提供するノートブック型のLLMツールですが、UIが英語圏向けに最適化されているため、日本語入力時の使い勝手がやや劣る場合があります。その一例が、変換中のEnterキー押下で入力欄のテキストがそのまま送信されてしまう現象です。

この問題を解決するためには、Enterキーイベントを横取りし、変換中(isComposing状態)のEnter押下をテキスト送信として扱わないようにする必要があります。

https://notebooklm.google/

対応策: Tampermonkeyスクリプト

以下のスクリプトをTampermonkeyに登録することで、NotebookLM上で日本語変換確定のためのEnterキーが、そのままテキスト送信になってしまう問題を防ぐことができます。

// ==UserScript==
// @name         Notebook LM 日本語入力修正
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  日本語入力時にEnterキー確定を防ぐ
// @author       knziiy
// @match        https://notebooklm.google.com/notebook/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    document.addEventListener('keydown', function(event) {
        if ((event.key === 'Enter' && event.isComposing) || event.keyCode === 229) {
            event.stopPropagation();
        }
    }, { capture: true });
})();

スクリプトの説明

  • event.isComposing: 日本語入力中(変換中)を判定するプロパティ
  • event.key === 'Enter' && event.isComposing: 変換中にEnterが押された場合を判定
  • event.stopPropagation(): 親要素へのイベントの伝播を止めることで、元々NotebookLMが持っているEnter押下で送信する処理をブロック

@matchで指定されているURLに対して、このスクリプトが自動的に動作します。Tampermonkeyにインストールした後、NotebookLMを再読み込みすればすぐに適用されます。

なお、2024年下期以降頃の最近ではTampaermonkeyでスクリプトを動作させるには開発者モードをオンにする必要がありましたのでご注意ください。

参考:

https://kuds.blog/google/tampermonkey-script-issue-mv3/

Discussion