[已解决]fcitx5在terminal和wps-office中无法输入中文

经过测试,如果不选择中文桌面环境,不能在个别软件中输入中文。

我选择了en_US.UTF-8,在terminal与wps中无法输入中文,fcitx5能使用,单不能输入中文字符。
现在,如何才能解决这个问题呢

不能输入是怎么样的现象呢?有东西被输入吗?光标有移动吗?
locale 命令的输出如何?

我用KDE英文,装的fcitx,当前版本4.2.9.8-1,设置了如下环境变量,终端和WPS(wps-office-cn)没有问题

XIM=fcitx
XIM_PROGRAM=fcitx
XMODIFIERS="@im=fcitx"
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx

使用fcitx5 没有字符输入到wps软件中,fcitx在浏览器中照常使用。使用fcitx5时,在键盘上敲字母,fcitx5可以正常响应,但按下回车后,中文字符没有显示在wps软件中。
输入英文可以,fcitx5不按空格,按回车键可以显示输入的英文字母

光标可以移动

这是我的locale变量:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

/etc/locale.gen和/etc/locale.conf 都设置为en_US.UTF-8

我的变量:
~/.pam_environment
INPUT_METHOD DEFAULT=fcitx5
GTK_IM_MODULE DEFAULT=fcitx5
QT_IM_MODULE DEFAULT=fcitx5
XMODIFIERS DEFAULT=@im=fcitx5

终端也一样吗?是什么终端呢?

感谢各位的帮助,我想我找到了解决方法,因为使用英文界面,所以terminal软件将编码更改为了ASCII,所以输入中文无效

感觉您的帮助
问题已经解决了
使用的终端是xfce-terminal

问题解决之后,建议编辑该主题的第一个帖子,在标题前加上「[已解决]」。

所以楼主是用哪种方式解决的呢?我也是fcitx5,方便分享一下吗

我也遇到了,还未解决

arch wiki上有有关报错
https://wiki.archlinux.org/index.php/WPS_Office#Fcitx5_cannot_input_Chinese
https://wiki.archlinux.org/index.php/Fcitx5#The_newest_wps_cannot_use_fcitx5

修改过/usr/bin/wps & /usr/bin/et &/usr/bin/wpp 依据wiki增加两段export后,仍无法使用,但是在wps中新建了一个文件,为空,保存后,再次打开,突然发现可以使用中文了。另外直接打开wps新建文件仍无法输入中文,只有打开现有文件才可输入中文,并且在打开现有文件后创建文件可输入中文。

我使用fcitx5的,我更新了一下WPS,按照wiki所说的我修改了.xprofile发现好像不行(可能我没有重启的原因?),我把那加入/usr/bin/wps的两行改了一下

export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE="fcitx5"

我就可以切换到拼音输入了。希望可以帮助到某些人。

1 Like

感谢很有帮助

虽然是很久之前的帖子了,但目前 aur 上的 wpsoffice-cn 仍然无法输入中文。网上已经有很多解决方案了,但我感觉都不算优雅。修复WPS Office的Fcitx5输入法问题 的评论区提到用 pacman hook 来解决看上去算是相对好的办法了。

我个人的解决方案是不用 pacman 来管理这些包,而是在 Arch 上用 Nix 来管理。只需要一份配置文件即可,大大降低心智负担。我的 fcitx5 是在 Arch 上配置的,使用 home-manager 安装了 wpsoffice-cn 包,手动修改了快捷方式

{ pkgs, lib, ... }:

let
  # 定义通用的环境变量前缀,WPS 通常运行在 XWayland 下,这些变量对 Fcitx 是必须的
  wpsEnv = "env XMODIFIERS=\"@im=fcitx\" GTK_IM_MODULE=\"fcitx\" QT_IM_MODULE=\"fcitx\" SDL_IM_MODULE=fcitx";
  # WPS 模板配置文件路径
  wpsTemplates = "${pkgs.wpsoffice-cn}/opt/kingsoft/wps-office/office6/asso_template";
in
{
  # 如果在非 NixOS 上使用的话,开启下面的选项
  # targets.genericLinux.enable = true;
  xdg.enable = true;

  home.activation.copyWpsTemplates = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
    run mkdir -p $HOME/Templates

    verboseEcho "Copying WPS templates to ~/Templates..."

    run install -m 644 "${wpsTemplates}/wps.docx" "$HOME/Templates/新建 Word 文档.docx"
    run install -m 644 "${wpsTemplates}/wps.xlsx" "$HOME/Templates/新建 Excel 工作表.xlsx"
    run install -m 644 "${wpsTemplates}/wps.pptx" "$HOME/Templates/新建 PPT 演示文稿.pptx"
  '';

  xdg.desktopEntries = {
    wps-office-wps = {
      name = "WPS 文字";
      genericName = "Word Processor";
      comment = "WPS Office Writer";
      exec = "${wpsEnv} ${pkgs.wpsoffice-cn}/bin/wps %F";
      icon = "wps-office-wpsmain";
      terminal = false;
      categories = [
        "Office"
        "WordProcessor"
      ];
      mimeType = [
        "application/msword"
        "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
        "application/rtf"
        "text/rtf"
      ];
    };

    wps-office-et = {
      name = "WPS 表格";
      genericName = "Spreadsheet";
      comment = "WPS Office Spreadsheets";
      exec = "${wpsEnv} ${pkgs.wpsoffice-cn}/bin/et %F";
      icon = "wps-office-etmain";
      terminal = false;
      categories = [
        "Office"
        "Spreadsheet"
      ];
      mimeType = [
        "application/vnd.ms-excel"
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        "text/csv"
      ];
    };

    wps-office-wpp = {
      name = "WPS 演示";
      genericName = "Presentation";
      comment = "WPS Office Presentation";
      exec = "${wpsEnv} ${pkgs.wpsoffice-cn}/bin/wpp %F";
      icon = "wps-office-wppmain";
      terminal = false;
      categories = [
        "Office"
        "Presentation"
      ];
      mimeType = [
        "application/vnd.ms-powerpoint"
        "application/vnd.openxmlformats-officedocument.presentationml.presentation"
      ];
    };

    wps-office-pdf = {
      name = "WPS PDF";
      genericName = "PDF Reader";
      exec = "${wpsEnv} ${pkgs.wpsoffice-cn}/bin/wpspdf %F";
      icon = "wps-office2023-pdfmain";
      terminal = false;
      categories = [
        "Office"
      ];
      mimeType = [ "application/pdf" ];
    };
  };
}

同时,它还会将一些模板放入 ~/Templates 目录下,可以使用右键新建文档。如果有一样用 Nix 管理包的小伙伴,可以尝试这种方法。