Snap版VS CodeのIME問題とOSSの難しさ
「Snap版VS Codeは日本語を入力できない」
この問題は以前から知られており、私もLinuxでSnap版VS Codeを使い始めたときに直面しました。解決策は見つかっておらず、結局Deb版を使うことで回避しました。現在、日本語で検索すると十人が十人、Snap版VS Codeを使うのをやめてDeb版に切り替えることを勧めています。
ひょっとして誰も開発者に教えていないから、非日本語圏で知られていないのでは?
そう思って、VS CodeのGitHubリポジトリにあたったところ、中国語IMEに関して全く同じ問題がIssue #96041として登録されていました。登録が2020年4月で、VS Codeのsnap版リリースは2019年4月ですから、リリースして1年目くらいにIssue登録されたことになります。
また、それよりも早く2019年7月に同様のIssue #77382が登録されていますが、こちらは開発者によって、後からオープンされた#96041に統合されています。
VS Code同様にSnap版ElectronアプリケーションのObsidianはIMEから入力できないと報告されています。
Snapの開発者であるCanonicalはsnapによるIME対応が難しいことを2018年頃には認識していました。そのため、わざわざCompatibility with CJKV input method frameworksというドキュメントが公開されています。
VS CodeのIssue 96041は登録されて5年以上経ちます。一度「解決した!」と宣言されたものの、即座に「問題は依然再現する」と指摘されています。しかも、先のSnapドキュメント"Compatibility with CJKV input method frameworks"を書いた、Rin-Buo-Ren氏によってです。
氏は2021年3月31日のコメントでで、こう述べています。
This is due to the fact that there are compatibility issues for containerized(including snap and flatpak) application's graphical toolkits to communicate with the input method framework running on the host's system (the host may use a different graphical toolkit version, which may feature an interface that is incompatible with the one used in the application).
Architectural changes may be required in the relative upstream components to improve the situation, but it is unlikely something that a downstream project (VSCode) can tackle.
ElectronかFcitxの修正が必要だと書いてあるように読めるのですが、そうなのでしょうか。例えば、Snap版のBitWardenはElectronアプリケーションであり日本語入力が問題なく動作します。同様にElectronベースのDraw.ioのSnap版も日本語入力が可能です。
何にしても、この問題は5年に渡って解決されないままです。Issueのコメント数は100を超えており、削除されたコメントからは感情的なやり取りがあったろうことが予想されます。
Electron, Fcitx, Snapといった全く違う場所で設計されたコードが連携しているが故の難しさでもありますが、このIssueのhelp wantedタグからは、開発者が匙を投げていることが伺えます。OSSならではと言う感じがします。それぞれの技術のすべてに長けた人が飛び込んで解決しない限り、Snap版VS Codeは「ただしCJKV IMEユーザーを除く」状態が続きそうです。
Discussion