问题描述
在 KDE Plasma + Wayland 环境下,通过 Flatpak 安装的微信 (com.tencent.WeChat) 无法使用 Fcitx5 输入法输入中文。
环境信息
- 操作系统: Debian GNU/Linux (forky/sid)
- 桌面环境: KDE Plasma + Wayland
- 输入法: Fcitx5
- 微信安装方式: Flatpak (Flathub)
根本原因
- 环境变量名不匹配: 微信 Flatpak 默认使用
fcitx5 作为模块名,但实际应该使用 fcitx
- 沙箱文件系统隔离: Flatpak 默认无法访问宿主机的 Fcitx5 配置目录
- Qt 平台兼容: 微信需要强制使用 X11/XWayland 模式以确保输入法兼容
解决方案
方法:使用 Flatpak Override 配置
执行以下命令配置微信的输入法环境:
# 配置输入法环境变量和文件系统权限
flatpak override --user \
--env=GTK_IM_MODULE=fcitx \
--env=QT_IM_MODULE=fcitx \
--env=XMODIFIERS=@im=fcitx \
--env=QT_QPA_PLATFORM=xcb \
--filesystem=xdg-config/fcitx5:ro \
com.tencent.WeChat
配置说明
| 参数 |
作用 |
GTK_IM_MODULE=fcitx |
GTK 应用使用 Fcitx 输入法模块 |
QT_IM_MODULE=fcitx |
Qt 应用使用 Fcitx 输入法模块 |
XMODIFIERS=@im=fcitx |
XIM 协议输入法标识 |
QT_QPA_PLATFORM=xcb |
强制使用 X11 后端(XWayland) |
--filesystem=xdg-config/fcitx5:ro |
允许微信读取 Fcitx5 配置 |
替代方法:使用 Flatseal GUI 配置
如果不习惯命令行,可使用 Flatseal 图形化工具:
- 选择 WeChat
- 在 Environment 选项卡添加以下变量:
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
QT_QPA_PLATFORM=xcb
- 在 Filesystem 选项卡添加:
验证步骤
- 完全退出微信(如有运行)
- 重新启动微信
- 进入任意聊天窗口,点击输入框
- 按
Ctrl+Space 切换至中文输入法
- 尝试输入中文,验证输入法候选框是否正常显示
注意事项
- 不要在系统环境变量中设置
GTK_IM_MODULE 和 QT_IM_MODULE,这会影响原生 Wayland 应用的输入法体验
- KDE Wayland 的原生应用应通过 系统设置 → 键盘 → 虚拟键盘 配置 Fcitx5
- 仅对需要 XWayland 的应用(如微信)单独配置环境变量
参考信息
1 个赞
mtians
(mtians)
2
Debian用不上Flatpak 没有哪个软件找不到deb包而需要Flatpak的。
Flatpak是Gentoo和openSUSE用的最多的软件来源。
Fedora偶尔也用得上,有些软件只有deb包没有rpm包。
Arch也有一些软件不在aur里,个别情况下也需要Flatpak
我只有用Debian的时候根本用不上任何deb以外的软件安装方式 Flatpak Snap Appimage 等等一律不再需要 DEB包是个软件它就有
但是 Flatpak 的沙箱做的不错, 我愿意用一点性能损耗换取安全, 为什么不呢?
1 个赞
其实 Flatpak 的沙箱也是有局限性的,并不是说用了 Flatpak 就一定安全:
个人比较关注的是,Flatpak 能隔离存储空间,控制应用程序能访问哪些文件。这种机制可避免部分软件扫描硬盘上的文件、造成泄密。
此外,这种机制可以隔离 /usr/bin/ 下的一些可执行文件,避免一些麻烦。比如:
而对于不以 Flatpak 安装的应用程序,其实也可以使用 Bubblewarp 进行隔离,比如:
注意这些文章都是 2021 年左右的,部分内容可能需要更新。
其实不提供 deb 安装包的软件还是挺多的。我常用的软件中,这两个就没有 deb 包:
(1)waylyrics,一个显示桌面歌词的小工具:
其实它也提供了 deb 版本的安装包,不过需要使用星火应用商店安装,而且是给 Ubuntu 准备的,Debian 可能用不了。
(2)wiliwili,一个 bilibili 桌面客户端(其实这玩意儿是为 Switch 等游戏机设计的,但桌面上使用的体验也很好):
Releases 里有 deb 格式的安装包,但对于 amd64 架构只有 flatpak 安装包。
当然, 现在没有绝对的安全, 以后大概也不会有, 但这并不意味着我们要将我们的隐私拱手相让不是吗?
感谢推荐, 我会去了解的
我想表达的不是使用 Flatpak 不重要,或者隐私、安全问题可以忽视,而是不要过度迷信 Flatpak 的安全机制。更重要的是自己提高安全意识。
但是直接用 deb 版的微信实在让我不放心, 使用 Flatpak 版的微信我好歹能限制它能访问的文件夹
而且 Flatpak 还可以统一更新(我记得没错的话 deb 版微信没有官方软件源), 真的很舒服啊
安全性的话我自认为我做的不算太糟, Flatpak 的权限控制相当于锦上添花了
可能……我们的沟通还是有些误会?我并没有任何一句话是建议您用 deb 版而非 flatpak 版的微信 
这个确实。我的微信、QQ 和腾讯会议用的都是 Flatpak 版,既在一定程度上提升安全性,也方便更新和管理。
而且我用的系统是 Linux Mint,它的更新管理器能同时更新 Flatpak 与 dpkg 应用,更是锦上添花。
啊, 那有可能是我想当然了
这么说的话有不少应用管理器都是可以同时管理 Flatpak 和 apt 的, 就比如 Gnome Software 或 Discover
不过我个人还是习惯终端操作
你是 Linux Mint 的长期用户吗? 我想给身边的新手朋友推荐一个 Linux 发行版, 听说 Linux Mint 对新手很友好, 可以请你分享一下你的使用感受吗?
是的,早年间用的是 Ubuntu,后来转到 Linux Mint 了。
先说缺点:系统装好后需要手动安装简体中文语言包和输入法,不过也就是一条命令的事儿:
sudo apt install language-pack-zh-hans language-pack-gnome-zh-hans firefox-locale-zh-hans thunderbird-locale-zh-hans fcitx5 fcitx5-pinyin fcitx5-chinese-addons
至于优点就比较多了:
- 感觉操作比较友好,系统更新、更换软件源、安装软件、安装闭源显卡驱动等都可以通过图形化界面完成,几乎不怎么用的到命令行。
- 相对而言比较稳定。虽然 Linux Mint 基于 Ubuntu,但之前用 Ubuntu 的时候隔三差五会出一些小问题,但 Linux Mint 基本没遇到过什么故障。
- 自带的小工具比较完善。除了 Firefox、Thunderbird、媒体播放器等软件外,Linux Mint 还自带了批量重命名工具(
bulky)、m3u8 播放器(hypnotix,添加适当的节目源后可以看电视、听广播)。
此外,Linux Mint 有三个桌面环境版本:
- Cinnamon:功能最完善,但占用的硬盘空间和内存略高于其他版本。比较推荐初学者使用。
- XFCE:如果电脑配置比较差可以选这个。
- MATE:也挺不错的,个人一直在用。
关于 Linux Mint 的更多信息可以看一下这个博客(虽说好久不更新了),博主是一位律师,常年使用 Linux Mint 办公,他在博客里记录了很多关于该系统的使用技巧:
我自己在使用 Linux Mint 时遇到的问题则记录在下面这个帖子中了:
1 个赞
是的,这个帖子本来是我自己的一个备忘录,后来为了方便在不同设备上看,就整理成帖子发出来了。
权限这玩意儿吧,你必须得使用的时候,他要多大的权限你不还得给,看看android的权限吧,权限设置越来越细,但app厂商还不是玩的越来越花。
不是一点用没有,但总感觉就是个心理安慰,所以我索性deb一条道走到黒了,早就裸奔那么多年了,躺平了…