🐙

かなキーをホールドしている間だけIMEをオンにするようにしたら結構良かった

2022/09/05に公開

私は普段 MacBook を使っているので IME を切り替えるときは英数・かなを押して切り替えていますが、以下のような不満を抱えていました。

  • 今 IME がオンなのか分かりづらい
  • たまに押し忘れて誤入力してしまう(vim で i と入力したら い になったり)
  • 英語と日本語の入り混じった文章を書くとき切り替えが面倒

そこで、普段は IME がオフで かなキー をホールドしている間だけ IME がオンになるようにしたらどうだろうと思い試してみました。

その方法と感想を書きます。

前提 or 私の環境

  • macOS
  • 分割キーボード
  • QMK

なにがしたいのか

文章だけでは伝わらないかもしれないので画像を貼ります。

キーボードの画像 キーの割り当て説明

まず何も押していない状態では常に英字が入力されます。

そして画像でいう青いキーの内一番右側のキー(以降かなキーと呼びます)を押している間はローマ字入力になり、日本語を入力できます。

キーを離すと IME がオフになり、ついでに Enter を送信するようにしています。

そうすることでローマ字入力後確定する手間が1つ減ります。

更に私の場合かなキーの隣がバックスペースなのですが、これだとローマ字入力中に押せないのでその間だけ左側の Enter キーをバックスペースに切り替えています。

ちなみに使っているキーボードは keyball61 というトラックボール搭載の左右分離型キーボードで、最高のキーボードです!

https://shirogane-lab.com/products/keyball61?variant=40394438049837

QMK のコード

process_record_user を使ってカスタマイズしているだけです。

KC_LANG1_ENT という独自キーを定義して、それを押下したら かな を、離したら 英字 と Enter を送信しています。

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    switch (keycode) {
        case KC_LANG1_ENT:
        if(record->event.pressed) {
            tap_code(KC_LANG1);
        } else {
            tap_code(KC_ENT);
            tap_code(KC_LANG2);
        }
        return false;
    }
    return true;
}

感想

この入力方法を 4 ヶ月ほど続けていますが、以前のようなストレスを感じることが無くなりとても満足しています。

IME の状態が明確なのが精神的に心地よいです。

今回は QMK でしたが Karabiner-Elements などでも似たようなことが出来ると思います。

問題点 or 改善点

  • かなキーを押したけど特に何も入力せずに離したとき Enter が送信されてしまうのをどうにかしたい
  • たまに IME がオフにならない時がある
  • windows での挙動が少しおかしい
GitHubで編集を提案

Discussion