Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
cumet04 opened this issue Sep 23, 2023 · 4 comments
Closed

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

cumet04 opened this issue Sep 23, 2023 · 4 comments

Comments

@cumet04
Copy link
Owner

cumet04 commented Sep 23, 2023

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

GoogleIME

Windows Terminal v1.14.186以降、GoogleIMEが有効な場合、Terminal起動時にIME状態がおかしな状態に切り替わるバグが存在する。 refs microsoft/terminal#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 microsoft/terminal#14349
※おそらくWin10では問題ない。社用マシンでは何事も起こっていない

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

PowerToys Keyboard Manager

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

  • ショートカットリマップ -> 入力キーをModifier+他キーにする制約があり、事実上使い道がない
  • リマップ機能でIME Non-Convertを入れる -> 動いた

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

@cumet04
Copy link
Owner Author

cumet04 commented Sep 24, 2023

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

IME

GoogleIME

  • WindowsTerminal最新を使う場合、起動ごとに変換状態がアレになる
    • 起動時のみ。タブやpaneを増やした場合には起こらない
  • 操作や挙動は概ねいい感じ。Esc1タップで強制IMEオフができる・キーコンフィグの自由度が高くUS配列キーボードでも戦える
  • 変換は概ね良好だが、一部特殊な場合に少々ウザい変換をするときがある(xxシて、カタカナ語に無駄に中点を入れようとするなど)
  • Windowsセットアップ的にファーストパーティではないので、別途インストールが必要

MS IME (互換性モード)

  • WindowsTerminal & Win11の場合、ターミナル上で日本語入力が実質不可能
  • 操作や挙動はまぁまぁ。GoogleIMEと近いが、強制IMEオフはEsc2タップになる。
    • 入力・変換時に直前の単語?に半端な点線下線が入ったりして気になることがある
  • 変換はぼちぼち。まぁ使えるが、GoogleIMEと比べると日常的な変換でも謎な候補がでてやり直すことが多い
    • ただ、設定に「クラウド候補を使う」みたいなのが存在することに気づいたので、これを使うと多少違うかもしれない

MS IME (最新)

  • WindowsTerminalと組み合わせても普通に使える(多分)
    • 未検証なのでわからないが、自分で体験した既知の問題は無い
  • 操作設定が極めて貧弱。Escタップは実質できない(ATOKモードにすれば入力キャンセルだけはできる)し、事実上JISなど余分なキーが多いキーボードを使うしかない
    • PowerToysなど使うにしても、無変換相当のキーがHHKB-USでは足りない
    • Ctrl+Spaceなど2ストロークを許容するならいけるかも
    • JISじゃなくても、余分なキーが多ければUSでもいい
  • 変換は互換モードに準ずる...はず。未使用なので不明

Terminal

WindowsTerminal (v1.13.1143)

  • GoogleIMEと組んでも普通に使える
  • 流石に結構古い (2022-05-25) ので、社用マシンなどに入れ続けるにはセキュリティなど不安

WindowsTerminal (最新)

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

  • 探して検証するのがめんどくさい。特にCJKが問題なく動くものを探り当てるのが面倒
  • ファーストパーティではないので、別途インストールが必要
  • 見た目が残念なものを除くと、選択肢が少ない

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

@cumet04
Copy link
Owner Author

cumet04 commented Sep 24, 2023

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

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

ncaq added a commit to ncaq/dotfiles that referenced this issue Nov 16, 2023
[IME mode changed at startup in Google Japanese Input · microsoft/terminal](microsoft/terminal#14407)
という問題が存在しており、
[ターミナルとIMEについてのログ · cumet04/dotfiles](cumet04/dotfiles#17)
を参考にひらがな切り替えのショートカットを追加することで誤魔化しを考える。
@cumet04
Copy link
Owner Author

cumet04 commented Dec 28, 2023

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

@cumet04 cumet04 closed this as completed Dec 28, 2023
@cumet04
Copy link
Owner Author

cumet04 commented Mar 14, 2024

📝 WindowsTerminal & GoogleIMEのバグはGoogleIME側のバージョンアップで直った
microsoft/terminal#14407 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant