某些软件输入法无法切换为中文输入法

系统信息

uname -a

Linux tinmin-hppavilionlaptop14bf0xx 5.6.16-1-MANJARO #1 SMP PREEMPT Wed Jun 3 14:26:28 UTC 2020 x86_64 GNU/Linux

/etc/os-release

ID=manjaro
ID_LIKE=arch
BUILD_ID=rolling
PRETTY_NAME="Manjaro Linux"
ANSI_COLOR="32;2;24;144;200"
HOME_URL="https://manjaro.org/"
DOCUMENTATION_URL="https://wiki.manjaro.org/"
SUPPORT_URL="https://manjaro.org/"
BUG_REPORT_URL="https://bugs.manjaro.org/"
LOGO=manjarolinux

桌面环境为 kde

locale

LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=

fcitx安装过程

yay -S fcitx fcitx-configtool fcitx-gtk3 fcitx-gtk4 fcitx-qt4 fcitx-qt5
yay -S fcitx-lilydjwg-git
yay -S fcitx-qt4
yay -S fcitx-rime

出现的问题

在更改文件名、kate编辑器、konsole均无法切换输入法,只能输入英文

求大神帮忙

Hi,
KDE 的話試試看建立一個名為 ~/.pam_environment 的文件,並加入

GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE  DEFAULT=fcitx
XMODIFIERS    DEFAULT=@im=fcitx

登出登入後應該就可以正常使用 fcitx
https://wiki.archlinux.org/index.php/Fcitx_(简体中文)#设置_IM_环境变量

设置了,跟.xprofile一样,也是只能在后面安装的软件使用fcitx

sudo pacman -S manjaro-asian-input-support-fcitx

用這個設置行嗎?

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

试过了,不行

还是一样,只是多了些韩语,google输入法

重启过了吗?

注销了,我现在重启看看

不行 :sleepy:

試試執行 fcitx-diagnose,看看有沒有什麼錯誤提示。

系统信息:

  1. uname -a:

    Linux tinmin-hppavilionlaptop14bf0xx 5.6.16-1-MANJARO #1 SMP PREEMPT Wed Jun
    3 14:26:28 UTC 2020 x86_64 GNU/Linux

  2. lsb_release -a:

    LSB Version: n/a
    Distributor ID: ManjaroLinux
    Description: Manjaro Linux
    Release: 20.0.3
    Codename: Lysia

  3. lsb_release -d:

    Description: Manjaro Linux

  4. /etc/lsb-release:

    DISTRIB_ID=ManjaroLinux
    DISTRIB_RELEASE=20.0.3
    DISTRIB_CODENAME=Lysia
    DISTRIB_DESCRIPTION="Manjaro Linux"

  5. /etc/os-release:

    NAME="Manjaro Linux"
    ID=manjaro
    ID_LIKE=arch
    BUILD_ID=rolling
    PRETTY_NAME="Manjaro Linux"
    ANSI_COLOR="32;2;24;144;200"
    HOME_URL="https://manjaro.org/"
    DOCUMENTATION_URL="https://wiki.manjaro.org/"
    SUPPORT_URL="https://manjaro.org/"
    BUG_REPORT_URL="https://bugs.manjaro.org/"
    LOGO=manjarolinux

  6. 桌面环境:

桌面环境为 kde

  1. Bash 版本:

    BASH_VERSION='5.0.17(1)-release'

环境:

  1. DISPLAY:

    DISPLAY=':0'

  2. 键盘布局:

  3. setxkbmap:

    xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };                   
        xkb_types     { include "complete"      };                           
        xkb_compat    { include "complete"      };                           
        xkb_symbols   { include "pc+cn+inet(evdev)"     };                   
        xkb_geometry  { include "pc(pc105)"     };                           
    };                                                                       
    
  4. xprop:

    _XKB_RULES_NAMES(STRING) = "evdev", "pc105", "cn", "", ""
    
  5. Locale:

  6. 全部可用 locale:

    C
    en_US.utf8                                                               
    POSIX                                                                    
    zh_CN.utf8                                                               
    
  7. 当前 locale:

    LANG=zh_CN.UTF-8
    LC_CTYPE="zh_CN.UTF-8"                                                   
    LC_NUMERIC=zh_CN.UTF-8                                                   
    LC_TIME=zh_CN.UTF-8                                                      
    LC_COLLATE="zh_CN.UTF-8"                                                 
    LC_MONETARY=zh_CN.UTF-8                                                  
    LC_MESSAGES="zh_CN.UTF-8"                                                
    LC_PAPER=zh_CN.UTF-8                                                     
    LC_NAME=zh_CN.UTF-8                                                      
    LC_ADDRESS=zh_CN.UTF-8                                                   
    LC_TELEPHONE=zh_CN.UTF-8                                                 
    LC_MEASUREMENT=zh_CN.UTF-8                                               
    LC_IDENTIFICATION=zh_CN.UTF-8                                            
    LC_ALL=                                                                  
    
  8. 目录:

  9. 主目录:

    /home/tinmin
    
  10. ${XDG_CONFIG_HOME}:

环境变量 XDG_CONFIG_HOME 没有设定。

XDG_CONFIG_HOME 的当前值是 ~/.config (/home/tinmin/.config)。

  1. Fcitx 设置目录:

当前 fcitx 设置目录是 ~/.config/fcitx (/home/tinmin/.config/fcitx)。

  1. 当前用户:

脚本作为 tinmin (1000) 运行。

Fcitx 状态:

  1. 可执行文件:

/usr/bin/fcitx 找到了 fcitx.

  1. 版本:

Fcitx 版本: 4.2.9.7

  1. 进程:

找到了 2 个 fcitx 进程:

      1458 fcitx
      1476 fcitx-dbus-watc                                                      
  1. fcitx-remote:

fcitx-remote 工作正常.

  1. DBus 界面:

使用 dbus-send 来检查 dbus。

DBus 名称 org.fcitx.Fcitx 的所有者是 :1.42

DBus 名称 org.fcitx.Fcitx 的 PID 所有者是 1458

Fcitx 配置界面:

  1. 配置工具封装:

/usr/bin/fcitx-configtool 找到了 fcitx-configtool。

  1. 用于 GTK+-2.0 的配置界面:

未找到 gtk2 的配置界面.

  1. 用于 GTK+-3.0 的配置界面:

/usr/bin/fcitx-config-gtk3 找到了 fcitx-config-gtk3

  1. KDE 的配置界面:

kcmshell4 未找到.

前端设置:

Xim:

  1. ${XMODIFIERS}:

环境变量 XMODIFIERS 已经正确地设为了 "@im=fcitx".
从环境变量中获取的 Xim 服务名称为 fcitx.

  1. 根窗口上的 XIM_SERVERS:

Xim 服务的名称与环境变量中设置的相同.

Qt:

  1. qt4 - ${QT4_IM_MODULE}:

环境变量 QT_IM_MODULE 已经正确地设为了 "fcitx".

  1. qt5 - ${QT_IM_MODULE}:

环境变量 QT_IM_MODULE 已经正确地设为了 "fcitx".

  1. Qt 输入法模块文件:

找到了 Qt4 的输入法模块: /usr/lib/qt4/plugins/inputmethods/qtim-fcitx.so.
找到了 fcitx 的 qt 模块: /usr/lib/fcitx/qt/libfcitx-quickphrase-editor5.so.
找到了 fcitx 的 qt 模块: /usr/lib/fcitx/qt/libfcitx-unikey-macro-editor.so.
找到了 Qt5 的输入法模块: /usr/lib/qt/plugins/platforminputcontexts/libfcitxplat forminputcontextplugin.so.

Gtk:

  1. gtk - ${GTK_IM_MODULE}:

环境变量 GTK_IM_MODULE 已经正确地设为了 "fcitx".

  1. gtk-query-immodules:

  2. gtk 2:

/usr/bin/gtk-query-immodules-2.0 找到了 gtk 2.24.32gtk-query-imm odules.
版本行:

       # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.32

已找到 gtk 2.24.32 的 fcitx 输入法模块.

       "/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so"  
       "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/lo

cale" "ja:ko:zh:*"

  1. gtk 3:

/usr/bin/gtk-query-immodules-3.0 找到了 gtk 3.24.20gtk-query-imm odules.
版本行:

       # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.20

已找到 gtk 3.24.20 的 fcitx 输入法模块.

       "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so"  
       "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/lo

cale" "ja:ko:zh:*"

  1. Gtk 输入法模块缓存:

  2. gtk 2:

/usr/lib/gtk-2.0/2.10.0/immodules.cache 找到了 gtk 2.24.32 的输入法模
块缓存.
版本行:

       # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.32

已找到 gtk 2.24.32 的 fcitx 输入法模块.

       "/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so"  
       "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/lo

cale" "ja:ko:zh:*"

  1. gtk 3:

/usr/lib/gtk-3.0/3.0.0/immodules.cache 找到了 gtk 3.24.20 的输入法模
块缓存.
版本行:

       # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.20

已找到 gtk 3.24.20 的 fcitx 输入法模块.

       "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so"  
       "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/lo

cale" "ja:ko:zh:*"

  1. Gtk 输入法模块文件:

  2. gtk 2:

找到的全部 Gtk 2 输入法模块文件均存在.

  1. gtk 3:

找到的全部 Gtk 3 输入法模块文件均存在.

配置:

Fcitx 插件:

  1. 插件配置文件目录:

找到了 fcitx 插件配置目录: /usr/share/fcitx/addon.

  1. 插件列表:

  2. 找到了 35 个已启用的插件:

    fcitx-autoeng
    fcitx-chttrans                                                           
    fcitx-classic-ui                                                         
    fcitx-clipboard                                                          
    fcitx-cloudpinyin                                                        
    fcitx-dbus                                                               
    fcitx-freedesktop-notify                                                 
    fcitx-fullwidth-char                                                     
    fcitx-googlepinyin                                                       
    fcitx-hangul                                                             
    fcitx-imselector                                                         
    fcitx-ipc                                                                
    fcitx-ipcportal                                                          
    fcitx-keyboard                                                           
    fcitx-kimpanel-ui                                                        
    fcitx-lua                                                                
    fcitx-m17n                                                               
    fcitx-mozc                                                               
    fcitx-notificationitem                                                   
    fcitx-pinyin                                                             
    fcitx-pinyin-enhance                                                     
    fcitx-punc                                                               
    fcitx-quickphrase                                                        
    fcitx-remote                                                             
    fcitx-rime                                                               
    fcitx-sayura                                                             
    fcitx-spell                                                              
    fcitx-table                                                              
    fcitx-unicode                                                            
    fcitx-unikey                                                             
    fcitx-vk                                                                 
    fcitx-x11                                                                
    fcitx-xim                                                                
    fcitx-xkb                                                                
    fcitx-xkbdbus                                                            
    
  3. 找到了 1 个被禁用的插件:

    fcitx-qw
    
  4. 插件库:

所有插件所需的库都被找到。

  1. 用户界面:

找到了 2 个已启用的用户界面插件:

   fcitx-classic-ui
   fcitx-kimpanel-ui                                                            

输入法:

  1. 找到了 7 个启用的输入法:

    fcitx-keyboard-cn
    googlepinyin
    rime
    hangul
    mozc
    sayura
    unikey

  2. 默认输入法:

您已经正确的将一个键盘输入法 "fcitx-keyboard-cn" 设为默认.

日志:

  1. date:

    2020年 07月 08日 星期三 13:17:18 CST

  2. ~/.config/fcitx/log/:

    总用量 4
    -rw-r--r-- 1 tinmin tinmin 44 7月 7 19:08 crash.log

  3. ~/.config/fcitx/log/crash.log:

    fcitx: BadWindow (invalid Window parameter)

看起來好像沒什麼問題,會不會是字型?你有裝 noto-fonts-cjk 嗎?裝了後設成預設字型看看。
你的 fcitx 是從 Manjaro 官方套件庫裝的嗎?看之前的文章好像有人裝來自 archlinuxcn 的 fcitx 遇到些問題,改成原版的 fcitx 就好了。
另外就是 KDE 下有 GUI 設定工具叫 kcm-fcitx,也可以裝看看。

kcm-fcitx 装了会这样
image

pacman -Qdt 查一下孤儿包?

删了还是没什么用,kcm-fcitx还是装了之后,点配置输入法弹出那个

我會建議把 fcitx 相關的套件全部移除,還有各個設定檔也移除,重新登入後再重頭設定一次。
可以直接安裝 manjaro-asian-input-support 後,重新登入看看是否有效。
或是你不想同時安裝 ibus 及 fcitx5 的話,參考 fcitx Archwiki 重頭設定。
雖然 @SamLukeYes 建議可直接安裝 manjaro-asian-input-support-fcitx,不過我在 Manjaro GitLab 中只看到 manjaro-asian-input-support 這個套件。

manjaro-asian-input-support是pkgbase,manjaro-asian-input-support-ibus、manjaro-asian-input-support-fcitx和manjaro-asian-input-support-fcitx5才是那个PKGBUILD构建出的软件包

1 Like

我尝试了20.0.3的所有manjaro不同桌面,其他都可以,就kde不行,在试以前版本

以前的版本就别用了,毕竟manjaro是滚动更新的。如果kde不行,就用别的桌面环境吧。

Forum kindly sponsored by