惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
量子位
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog
I
InfoQ
Jina AI
Jina AI
The Cloudflare Blog
Recorded Future
Recorded Future
Recent Announcements
Recent Announcements
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
F
Fortinet All Blogs
WordPress大学
WordPress大学
P
Proofpoint News Feed
D
DataBreaches.Net
爱范儿
爱范儿
雷峰网
雷峰网
D
Docker
B
Blog
Engineering at Meta
Engineering at Meta
腾讯CDC
N
Netflix TechBlog - Medium
C
Check Point Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
T
Tenable Blog
GbyAI
GbyAI
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 三生石上(FineUI控件)
T
The Blog of Author Tim Ferriss
博客园 - 聂微东
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
SecWiki News
SecWiki News
S
Security @ Cisco Blogs
S
Security Affairs
V
V2EX
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
C
CERT Recently Published Vulnerability Notes
Y
Y Combinator Blog

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法 券商费率调整记 迷你主机组装记 Labwc更换定制皮肤 树莓派跑分流代理 实用自动代理配置示例 九年老鼠标复活记 Openvpn示例 Mac下如何旋转webp图片 如何隐藏Vscode中Markdown PDF插件的头部内容 解决Linux下网络配置无法变更保存的问题 labwc环境启用wlogout Ubuntu下新官方微信尝鲜 简单检测用户是否开启广告屏蔽 Atuin ZFS下卡顿问题解决 Wine安装64位微信 Fish 和 Atuin使用记 Fastapi简单实现临时下载链接 Fastapi微信公众号开发简要 Hugo根据语种展示不同内容 如何修复Waybar微信图标错误 信封加密简要 Linux环境下维护公众号记录 快速隐藏和呼出终端 Wayland环境自动切换壁纸 SuperTuxKart 试玩 简单抓取雪球股票快讯 为什么你的kill命令不能列出信号表 Wine安装微信保姆教程 Hysteria科学上网简要 Ubuntu 23.10 钉钉无法启动解决方法 网站导航栏防止插入Adsense自动广告 Linux环境按键检测 Hugo文末添加最后修改时间 Wayland环境ksnip无法复制问题解决 我眼中的股票市场 Caddy简单图片防盗链 greetd和regreet使用教程 Wayland环境下截图加后期修改 Wayland 环境下gif录屏 Firefox的一些有趣功能 Ubuntu 切换系统语言 Firefox 标题栏高度调整 网站添加回到顶部功能 Hugo自定义字体 Labwc 便捷配置 Wofi使用教程 窗口管理器labwc使用记 文件共享软件Dufs推荐 Hugo静态站点接入Adsense广告 Fcitx5配置详解 Ubuntu安装chrome的方法总结 一种Xterm.js的全屏方案 Google网址收录api Python示例 手机听离线音乐 Snipe it资产导入 应用启动器yofi使用配置 Snipe it资产管理系统安装使用 Ubuntu开机启动加速 Vue3 vite TypeScript跨域等相关设置 Ubuntu手动升级Libreoffice Ubuntu设置alacritty为默认终端 简体文章批量转换为繁体 使用Inkscape调整svg图片大小 实用命令 使用mitmproxy给手机app抓包 Python中rstrip方法细解 Github同主机多仓库部署deploy key问题处理 Linux安装最新版本Python KeePassXC使用教程 Ubuntu 22.10连接蓝牙耳机报错br-connection-profile-unavailable解决方法 Caddy日志配置轮转和格式化
解决Arch下VSCode无法输入中文的问题
2025-06-20 · via mephisto.cc

如今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

这个大部分网上资料都会提到,其次输入法引擎IbusFcitx 配置是第二道关卡。

接着是 DE(KDE/Gnome/Xfce/COSMIC) 或者说 WM(如Labwc、Sway) 支持不一样,第三道关卡。

最后一道关卡就是软件本身了,比如 Electron 必须是高于某个版本才行(具体是那个版本往上,我忘记了,可以自行搜索,好像是34),第四道关卡。

软件本身不支持是最痛苦的,比如 Dota2 刚出来时就不行,再比如 Chromium 就得等升级。

3. 截图证明

说了这么多,没图没真相,强势截图:

Labwc Wayland codeoss

可见功能正常,如果读者认为有帮助,关注下我的公众号,也是支持方式之一,毕竟每写一个文章,耗时2个小时以上。在Labwc环境下,解决这个问题,不出意外应该是中文世界独一份,至少我还没有搜到。