manjaro系统kde界面,之前无论使用x11还是wayland,steam一直无法使用fcitx5输入法。但是发现切换成wayland后有一个叫做“fctix输入法前端”的设置。启动这个设置不能使steam使用fctix输入法,使用x11时就算设置环境变量也不能使用fctix输入法,但是我在wayland环境变量上添加GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx SDL_IM_MODULE=fcitx GLFW_IM_MODULE=ibus后就可以使用输入法,搞笑的是系统会告诉我“检测到设置了 GTK_IM_MODULE 和 QT_IM_MODULE 而且 Wayland 输入法前端正在正常工作。推荐使用 Wayland 输入法前端。”但是仅使用wayland输入法前端会不仅会导致steam无法使用fctix而且obsidian wechat等electron软件都无法使用。但是设置环境变量后就都可以使用
目前 steam 不支持 wayland,在 X11 中也仅支持 xim ,所以只有 XMODIFIERS=@im=fcitx 是有用的。而且必须同时设置 LANG=zh_CN.UTF-8 才能让 steam 启用自己的输入法支持,详见 https://github.com/ValveSoftware/steam-for-linux/issues/781
但是仅使用wayland输入法前端会不仅会导致steam无法使用fctix而且obsidian wechat等electron软件都无法使用
需要给让 electron 软件运行在 wayland 下,添加 flag --ozone-platform-hint=auto ;如果是旧版本 electron 还可能需要手动启用 wayland 输入法支持,添加 flag --enable-wayland-ime 。具体可以参考 Electron 和 Chromium 的 wiki 页面。
至于 wechat ,如果你指的是 https://aur.archlinux.org/packages/wechat-bin ,它并不是 electron 程序,而是一个阉割了 wayland 支持的 Qt ,所以需要 QT_IM_MODULE=fcitx 才能使用输入法。正常的 Qt 程序并不需要,所以只给它自己设定这个环境变量就好。
至于这些环境变量该不该用,为什么要用,建议阅读 https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland
系统 Manjaro KDE wayland linux6.18内核 fctix5 所有涉及版本都是AUR中的最新版非flatpak
不知道大家steam对中文输入法的支持情况,但是我用了linux五年获得的消息是,steam正常模式对于各种输入法框架好像一向都不支持。所以今天突然成功在steam中输入中文并且游戏内也可以打字所以和大家分享一下情况,但是具体原理我并不清楚(linux 输入法一团混乱
)所以我给大家分享我的这方面所有操作
manjaro在去年年底还是x11界面,当时我就是使用fctix5然后再~/.xprofile中设置环境变量 export GTK_IM_MODULE=fcitx,export QT_IM_MODULE=fcitx, export XMODIFIERS=@im=fcitx,export SDL_IM_MODULE=fcitx,export GLFW_IM_MODULE=ibus对于其他应用都有效果但是steam和游戏不能使用输入法。到了wayland后在设置中启用了一个名叫“fctix wayland前端”的选项,但是electron系列都无法使用需要添加--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime才能同时使用输入法。但是如果我在环境变量/etc/enviroment中进行设置。但此时会报告“检测到设置了 GTK_IM_MODULE 和 QT_IM_MODULE 而且 Wayland 输入法前端正在正常工作。推荐使用 Wayland 输入法前端。”但是此时输入法的兼容性表现的更好,在electron和steam中都可以使用
非常有用的wiki推荐,很感谢很感谢 ![]()
欧欧,没想到这个问题在steam的git有反馈,一直没有搜出来过,看英文的官方wiki也都是说在只大屏幕模式能使用,所以才想着分享一下
哈哈哈,老师讲解的好好,很感谢。
我的fcitx软件包是fctix5 fcitx5-chinese-addons fcitx5-configtool fcitx5-material-color fcitx5-qt。
对于想要在steam中启用输入法的朋友可能有比较简单的建议,(没有经过仔细思考
)就是尝试使用wayland KDE 在etc/enviroment中进行设置环境变量,不要再~/.xprofile或者./xinit。这个应该是x11中的自启动环境变量加载。
上面那位朋友说steam不支持wayland只有x11支持但是我确实在x11中无法启动steam中输入法,并且游戏中也一直无法使用输入法。今天的操作过后不仅steam可以使用输入法并且所有游戏内都可以使用输入法。虽然这种输入法似乎无法识别输入框,仅仅是在游戏的层级左上统一显示输入法框架,并且根据回车传送给游戏中的文本框,但是已经足够使用
谢谢,这个环境变量我在 Debian 13 下也实测可行。之前我参照这个帖子,加的环境变量是 GTK_IM_MODULE=xim ,还以为是 Debian 的包太旧了才没有效果。
你设置环境变量的方式还是有点太粗暴了,一般来说不推荐在 /etc/environment 放环境变量,至少与输入法有关的部分是这样。具体的环境变量设置方法一般是看自己的桌面环境(例如 KDE Plasma 6.3.6 可以自己写脚本放到 ~/.config/plasma-workspace/env/ 下),并且对于单个应用的话改 desktop 文件最方便。
一般来说,应用启动器会扫描所有 $XDG_DATA_DIRS 中的目录,在其中找 desktop 文件。最常规的两个目录,一个是系统级的,在 /usr/share/applications,另一个是用户级的,在 ~/.local/share/applications ,后者有更高的优先级。你可以从 /usr/share/applications 下面找到 steam 的 desktop 文件,复制到 ~/.local/share/applications 下面并修改它。
附上实测可行的 Steam 的 desktop 文件的 Exec 部分(这是 Debian 13 的,Arch Linux 的会有不同):
Exec=env LANG=zh_CN.UTF-8 XMODIFIERS=@im=fcitx /usr/games/steam %U
顺便提一下 Git 和 GitHub 是完全不同的东西。
再顺便安利一下 clsty/linux-ime-helper: Linux 输入法助手(shell 脚本),假如一个应用无论如何都搞不定输入法,但粘贴文字没问题,可以试试这个小工具。


