Arch で VSCode が中国語入力できない問題の解決
VSCode は現在、多くのユーザーを抱えており、Arch Linux 向けには Code-OSS、Visual Studio Code、VSCodium の 3 つのバージョンが提供されています。世界は常に複雑ですが、Code-OSS を選んだのは、AUR ではなく Extra リポジトリにあるという理由だけです。3 つの選択肢は機能的に似ており、違いはほとんどありません。基本的なツールに慣れれば、問題なく動作します。以降はこれらを vscode と表記します。
Linux Wayland 環境では、ユーザーが様々な入力メソッドの問題に遭遇することがありますが、特に Electron は脆弱な領域です。vscode は Electron に依存しており、Chromium も同様です。
私の記憶が正しければ、Chromium は最近 Linux Wayland での入力メソッドの問題を完全に解決し、東アジアのユーザーにとって大きな悩みの種となっていた問題が解消されたはずです(中国語入力サポートは、Electron の特定のバージョン以降でようやく利用しやすくなりました)。それ以前は、Firefox を使わざるを得ませんでした。
少し調整した後、Xwayland を受け入れることができ、ほとんどのソフトウェアはデフォルトで問題なく動作するはずです。話を元に戻すと、vscode はスタンドアロンウィンドウマネージャー Labwc では入力メソッドを切り替えられず、常に英語を使用します。この問題は長い間悩まされており、Electron のアップグレードをまだ待っています。
1Version: 1.101.0
2Commit: dfaf44141ea9deb3b4096f7cd6d24e00c147a4b1
3Date: 2025-06-17T21:19:01.152Z
4Electron: 35.5.1
5ElectronBuildId: undefined
6Chromium: 134.0.6998.205
7Node.js: 22.15.1
8V8: 13.4.114.21-electron.0
9OS: Linux x64 6.15.2-arch1-1
ざっと調べたところ、34 より前のバージョンでは中国語入力がサポートされていることを思い出しました。前提条件は満たされています。
1. 解決策
設定ファイルはこちらです:
1➜ ~ cat ~/.config/electron-flags.conf
2--enable-features=WaylandWindowDecorations
3--ozone-platform-hint=auto
4--enable-wayland-ime
5--wayland-text-input-version=3
最初の2行は純粋なWayland操作を有効にします。理解できない場合は、こちらのリンクを参照してください。
最後の2行は中国語入力を有効にします。--wayland-text-input-version=3
が最も重要です。KDE/Gnomeのような成熟したデスクトップ環境では、この設定は不要かもしれません(私はテストしていませんし、面倒くさくてテストしていませんので、これは単なる推測です)。
Labwc は、慶応大学の日本人研究者によって提出されたリリース 0.7.2 で、以下の機能をサポートしています。
Fcitx5 などの入力メソッド(または入力メソッドエディタ、一般的に IME と略される)を、text-input-v3 および input-method-v2 プロトコルを使用してサポートします。
私のようにスタンドアロンのウィンドウマネージャを使用している場合は、--wayland-text-input-version=3
を追加することで中国語入力を有効にすることができます。試してみたところ、中国語を入力するには、Labwc で --enable-wayland-ime
と --wayland-text-input-version=3
の両方を有効にする必要があることがわかりました。日本語と韓国語も似たようなものだと思います。結局のところ、コンピューターは東アジア人が発明したものではなく、キーボードには数十個のキーしかなく、入力メソッドが必要なのです。
2. その他
Electron に依存するソフトウェアが複数ある場合、それらを個別に設定するにはどうすればよいですか?
Electron パッケージは ~/.config/electronXX-flags.conf ファイルを読み込みます。ここで、XX は Electron のバージョンを表します。バージョンファイルが存在しない場合は、共有の ~/.config/electron-flags.conf にフォールバックします。
Arch Wiki の英語版と中国語版の内容は異なる場合がありますので、ご注意ください。不明な場合は、こちらの リンク をご覧ください。中国語版には、英語版や日本語版にはない入力メソッドに関する追加の指示が含まれています。中国語版のメンテナーは、まるで働き者の小さな蜂のように、信じられないほど勤勉です。素晴らしい!👍
そこに記載されている入力メソッドの解決策は私の状況には当てはまりませんが、いくつかのアイデアを提供してくれます。
ご覧のとおり、Linux Wayland Labwc 環境における中国語入力の問題を解決するのは、万能な解決策ではなく、プロセスはかなり長くなります。 (Linux初心者の方はご安心ください。ほとんどのソフトウェアは問題なく動作するはずです。)
一般的に、環境変数が最初のハードルとなります。
1
2➜ ~ cat .config/labwc/environment
3#環境ファイルの例
4
5# これにより、xdg-desktop-portal-wlr が機能するようになります(例:画面録画)。
6XDG_CURRENT_DESKTOP=wlroots
7
8# キーボードレイアウトをスウェーデン語に設定
9# XKB_DEFAULT_LAYOUT=se
10XKB_DEFAULT_LAYOUT=us
11
12# 2つのキーボードレイアウトを設定し、Alt+Shift キーで切り替えます。
13#XKB_DEFAULT_LAYOUT=se,de
14#XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle
15
16# Firefox で Wayland バックエンドの使用を強制します。
17MOZ_ENABLE_WAYLAND=1
18
19# カーソルテーマを設定します。
20# 以下のコマンドまたは同様のコマンドでアイコンテーマを検索します。
21# find /usr/share/icons/ -type d -name "cursors"
22XCURSOR_THEME=breeze_cursors
23
24# ハードウェアカーソルを無効にします。ほとんどのユーザーはこれを希望しないでしょうが、もしカーソルが消える問題が発生している場合は、これで解決できるかもしれません。
25#WLR_NO_HARDWARE_CURSORS=1
26
27# JetBrains/Intellij Idea などの Java アプリケーションでは、この変数を設定してください。
28# メニューのオフセットが正しく表示されず、ウィンドウが空白になるのを防ぐためです。
29# https://github.com/swaywm/sway/issues/595 を参照してください。
30#_JAVA_AWT_WM_NONREPARENTING=1
31_JAVA_AWT_WM_NONREPARENTING=1
32#
33
34# fcitx5
35QT_IM_MODULE=fcitx
36XMODIFIERS=@im=fcitx
37INPUT_METHOD=fcitx
38SDL_IM_MODULE=fcitx
これはほとんどのオンラインリソースで言及されています。2つ目のハードルは、入力メソッドエンジン Ibus
と Fcitx
の設定です。
次に、DE(KDE/Gnome/Xfce/COSMIC)やWM(LabwcやSwayなど)によってサポートが異なる点が3つ目のハードルです。
最後のハードルはソフトウェア自体です。例えば、Electronは特定のバージョン以上である必要があります(バージョン番号は忘れましたが、ご自身で調べてみてください。34のようです)。これが4つ目のハードルです。
サポート不足が最も大きな問題です。例えば、Dota 2
はリリース当初は動作しませんでしたし、Chromiumはアップグレードを待たなければなりません。
3. スクリーンショットによる証明
ここまで話しても、画像がなければ真実は分かりません。そこで、スクリーンショットを掲載します。
機能は正常に動作しているようです。もしこの記事が参考になったと思われたら、私の公式アカウントをフォローしていただけると嬉しいです。結局のところ、記事1つを書くのに2時間以上かかります。当然のことながら、この問題をLabwc環境で解決するのは中国語圏では他に類を見ない、少なくとも私がこれまでに出会ったことはありません。
著作権に関する声明:
- 出典のないコンテンツはすべてオリジナルです。、無断転載はご遠慮ください(転載後にレイアウトが崩れたり、内容が制御不能になったり、継続的に更新できない等の理由から)。
- このブログのコンテンツを非営利目的で解釈したい場合は、(読者の便宜のため)「オリジナル ソース」または「参照リンク」の形式でこのサイトの関連 Web ページ アドレスを提供してください。
このシリーズの投稿:
- greetd と regreet の使い方チュートリアル
- 私のツールボックス
- スタンドアロンウィンドウマネージャーにおける画面録画問題のトラブルシューティング
- Arch LinuxでBluetoothデバイスにスムーズに接続する方法
- Linux 用の Python の最新バージョンをインストールする
- OpenLDAP モニタリング
- ヒステリーサイエンスインターネットブリーフ
- Wofi 使い方チュートリアル