cumet04 / dotfiles

MIT License
3 stars 0 forks source link

ターミナルとIMEについてのログ #17

Closed cumet04 closed 9 months ago

cumet04 commented 1 year ago

terminalとIMEの選択と問題の記録

GoogleIME

Windows Terminal v1.14.186以降、GoogleIMEが有効な場合、Terminal起動時にIME状態がおかしな状態に切り替わるバグが存在する。 refs https://github.com/microsoft/terminal/issues/14407

202309現在のissueの状況的には、これはTerminalのバグではなくGoogleIME側の問題だという主張になっており、解決の気配が無い。

Terminalの古いバージョンを使い続けることもできるが、一時凌ぎならともかくかなり永続的になりそうな状況では厳しいため、GoogleIMEを捨ててMicrosoftIMEに切り替えてみることにした。

MicrosoftIMEとキーコンフィグ

現在のMicrosoftIMEにはキーコンフィグがこれしかない。

image

キー候補がこれしかないため、US配列が実質使えない。また割り当てられる挙動は少ない上、変換・無変換をIME-オフにしても、入力中は変換キーとして機能してしまう(強制オフにはできない)。 US配列で何とかする場合、PowerToys KeyboardManagerやAutoHotKeyなどを使う解決策になる。

しかしながら、全般設定に「以前のバージョンのMicrosoftIMEを使う」という設定があり、これを有効にするとそこそこまともなキーコンフィグができるようになる。

image

ちなみにこの状態の場合、もともとのキーにある「ImeOff」レコードのキー部分を変更することで、たとえばEscキーx2で強制IMEオフみたいなことができるようになる。

image

通常のレコードの場合は入力中などの挙動選択肢に「IME-オフ」が出現しないため、この方法でしかこれは実現できない。

WindowsTerminal & MicrosoftIME on Win11

この組み合わせかつIMEを「以前のバージョンのMicrosoftIMEを使う」にしている場合、ターミナル上で日本語するとぶっ壊れた入力になったりターミナル自体がクラッシュするバグが存在する。 refs https://github.com/microsoft/terminal/issues/14349 ※おそらくWin10では問題ない。社用マシンでは何事も起こっていない

issueは長らく直っていないが、冷静に考えて、ただでさえ優先度の低いCJKの、しかもJだけの問題で、かつ互換性モードでのみ再現するバグを直す意義は限りなく低いと思われる。 そうでなくとも互換性モードを使い続けるのは微妙なので、それに依存し続けるのはよくないよなぁとは思う。

PowerToys Keyboard Manager

MS IMEのキー入力を何か代替できるか

リマップなので単独キーを単独キーにしか置き換えできない。たとえばEscにEcsとNon-Convertを両方割り当てて連打するようなことはできない。

cumet04 commented 1 year ago

現時点での選択肢について

IME

GoogleIME

MS IME (互換性モード)

MS IME (最新)

Terminal

WindowsTerminal (v1.13.1143)

WindowsTerminal (最新)

その他のターミナルを探す

書いてて気付いたけどHyperってvercelなの?俄然気になってきた

cumet04 commented 1 year ago

現状、総合的にWinTerminalのバグを許容してGoogleIMEを使うのがトータル幸福度が高そうなため、それでいく。 バグはTerminal新規起動時しか発生しないし、そんなしょっちゅう起動・終了するわけではないので、許容できる。

キーコンフィグでIMEオンのキーに モード: 入力文字なし, コマンド: ひらがなに入力切替 を追加設定しておけば、キー2連打で正常に戻せるので、問題の軽減になる。

cumet04 commented 9 months ago

↑コメントの状態で運用してなんら問題無いのでclose

cumet04 commented 7 months ago

📝 WindowsTerminal & GoogleIMEのバグはGoogleIME側のバージョンアップで直った https://github.com/microsoft/terminal/issues/14407#issuecomment-1995761063