succi0303 blog

This is my personal blog. All posts are my own.

Tampermonkeyを使ってVikunjaのテキスト入力がIMEのEnterキーを拾う問題を解決した

Vikunjaは、セルフホストできるTodoistライクなタスク管理サービスです。とても使いやすいのですが、Macで利用する場合に問題があります。それはIMEの漢字変換を確定するEnterボタンによってテキストが入力されてしまうことです。この問題が解決できない限り、Mac環境でVikunjaを常用することは難しいです。

ウェブサイトにユーザースクリプトを適用するブラウザ拡張であるTampermonkeyを利用することでこの問題を解決できました。ChromeFirefoxなどTampermonkeyが利用できるブラウザで同じように適用できます。

設定方法は以下の通りです。

  • ブラウザの拡張機能でTampermonkeyを追加する。
  • Tampermonekyのダッシュボードを開き、「+」ボタンを押して新しいスクリプトを作成する。
  • エディタで以下のスクリプトを記述して保存する。
    • <your vikunja host>の部分をVikunjaのURLに合わせて書き換える。
// ==UserScript==
// @name         Vikunja handling ime enter for mac
// @namespace    http://tampermonkey.net/
// @version      2024-07-23
// @description  try to take over the world!
// @author       <your name>
// @match        https://<your vikunja host>/*
// @icon         https://<your vikunja host/
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    document.addEventListener('keydown', function(event) {
        if (event.key == 'Enter' && event.isComposing) {
            event.stopPropagation();
        }
    }, {capture: true});
})();

isComposingIME変換中か判断し、変換中のEnter入力のプロパゲーションを防いでいます。Vikunjaと同じように、IME変換のEnterで文字入力が確定するサービスは多々存在するので、そういったサービスも同じ方法で対策できると思われます。