解决Arch下VSCode无法输入中文的问题
如今VSCode的用户很多,在Arch Linux下收录了三个版本,Code-OSS、Visual Studio Code 和VSCodium,世界总是很复杂,我选择Code-OSS,只因其在Extra中而不是AUR。 三者功能相似差异不大,基础工具软件用习惯就好,下文统一简称vscode。
在Linux Wayland环境下,用户会偶遇各种输入法问题,Electron 便是其中的重灾区,vscode 依赖Electron,Chromium也是。
没记错的的话,Chromium 不久前才彻底解决Linux Wayland 下的输入问题,消除了东亚人民的一大痛苦(Electron某个版本后才比较好支持中文输入),在此之前我被迫一直使用Firefox。
轻折腾,能接收Xwayland,其实大部分软件默认下也没有问题。回到主题,vscode 在独立窗口管理器 Labwc 中,无法切换输入法,一直是英文输入状态,这个问题困扰了我很久,一直等 Eletron 升级。
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 运行,不理解的,可以参考这个连接
后两行支持中文输入,其中 --wayland-text-input-version=3
比较关键,成熟的桌面环境KDE/Gnome等可能不需要这个就可以(没有测试过,懒,不想测试,猜测的)。
Labwc 在 release 版本 0.7.2 中支持了, 由Keio University的一个日本人提交的:
Support input methods (or input method editors, commonly abbreviated IMEs) like Fcitx5, using protocols text-input-v3 and 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# Example environment file
4
5# This allows xdg-desktop-portal-wlr to function (e.g. for screen-recording)
6XDG_CURRENT_DESKTOP=wlroots
7
8# Set keyboard layout to Swedish
9# XKB_DEFAULT_LAYOUT=se
10XKB_DEFAULT_LAYOUT=us
11
12# Set two keyboard layouts and toggle between them using alt+shift
13#XKB_DEFAULT_LAYOUT=se,de
14#XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle
15
16# Force firefox to use wayland backend
17MOZ_ENABLE_WAYLAND=1
18
19# Set cursor theme.
20# Find icons themes with the command below or similar:
21# find /usr/share/icons/ -type d -name "cursors"
22XCURSOR_THEME=breeze_cursors
23
24# Disable hardware cursors. Most users wouldn't want to do this, but if you
25# are experiencing issues with disappearing cursors, this might fix it.
26#WLR_NO_HARDWARE_CURSORS=1
27
28# For Java applications such as JetBrains/Intellij Idea, set this variable
29# to avoid menus with incorrect offset and blank windows
30# See https://github.com/swaywm/sway/issues/595
31#_JAVA_AWT_WM_NONREPARENTING=1
32_JAVA_AWT_WM_NONREPARENTING=1
33#
34
35# fcitx5
36QT_IM_MODULE=fcitx
37XMODIFIERS=@im=fcitx
38INPUT_METHOD=fcitx
39SDL_IM_MODULE=fcitx
这个大部分网上资料都会提到,其次输入法引擎Ibus
和 Fcitx
配置是第二道关卡。
接着是 DE(KDE/Gnome/Xfce/COSMIC) 或者说 WM(如Labwc、Sway) 支持不一样,第三道关卡。
最后一道关卡就是软件本身了,比如 Electron 必须是高于某个版本才行(具体是那个版本往上,我忘记了,可以自行搜索,好像是34),第四道关卡。
软件本身不支持是最痛苦的,比如 Dota2
刚出来时就不行,再比如 Chromium 就得等升级。
3. 截图证明
说了这么多,没图没真相,强势截图:
可见功能正常,如果读者认为有帮助,关注下我的公众号,也是支持方式之一,毕竟每写一个文章,耗时2个小时以上。在Labwc环境下,解决这个问题,不出意外应该是中文世界独一份,至少我还没有搜到。


版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。
相关文章:
- 迷你主机组装记
- greetd和regreet使用教程
- Wayland 环境下gif录屏
- labwc环境启用wlogout
- 快速隐藏和呼出终端
- 我的工具箱
- Xray科学上网简要
- Labwc更换定制皮肤
- Labwc 便捷配置
- 窗口管理器labwc使用记