当前位置: 首页 > 工具软件 > Fcitx > 使用案例 >

archlinux更新后fcitx5无法使用

殳俊
2023-12-01

现象

今天遇到一个非常奇怪的事情,我更新完archlinux以后发现我的fcitx5中文输入法无法使用了。
严谨点说:

  1. kitty终端中可以使用。
  2. 其他常见程序中都无法使用。
  3. i3wm和 KDE桌面环境中都无法正常使用

环境

简单看一下我的环境吧:

itkey@vivobook: ~ $ neofetch                                                    [17:47:20]
                   -`                    itkey@vivobook 
                  .o+`                   -------------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Host: VivoBook_ASUSLaptop K3402ZA_K3402ZA 1.0 
               `+oooooo:                 Kernel: 5.15.74-1-lts 
               -+oooooo+:                Uptime: 5 mins 
             `/:-:++oooo+:               Packages: 1377 (pacman) 
            `/++++/+++++++:              Shell: zsh 5.9 
           `/++++++++++++++:             Resolution: 2880x1800, 3840x2160 
          `/+++ooooooooooooo/`           WM: i3 
         ./ooosssso++osssssso+`          Theme: Breeze [GTK2/3] 
        .oossssso-````/ossssss+`         Icons: breeze [GTK2/3] 
       -osssssso.      :ssssssso.        Terminal: kitty 
      :osssssss/        osssso+++.       CPU: 12th Gen Intel i5-12500H (16) @ 4.500GHz 
     /ossssssss/        +ssssooo/-       GPU: Intel Alder Lake-P 
   `/ossssso+/:-        -:/+osssso+-     Memory: 2237MiB / 15621MiB 
  `+sso+:-`                 `.-/+oso:
 `++:.                           `-/+/                           
 .`                                 `/                           

原因分析

pambase 升级后不再读取设置在 ~/.pam_environment 的环境变量。在 ~/.pam_environment 中设置桌面环境用的环境变量的用户请注意,pambase >=20221020-1 之后取消了 user_readenv=1 参数,不再读取设置在 ~/.pam_environment 中的环境变量。可以考虑在 /etc/environment 设置系统全局的环境变量或者采用其它方案。
另请注意 /etc/environment 的语法格式和 ~/.pam_environment 并不相同,不能直接复制文件内容。细节请参阅 https://wiki.archlinux.org/title/Environment_variables_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#%E4%BD%BF%E7%94%A8_pam_env
关于其余设置环境变量的方案也可参考 https://wiki.archlinux.org/title/Environment_variables_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
fcitx5 相关的环境变量还可参考 https://wiki.archlinux.org/title/Fcitx5_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#%E9%9B%86%E6%88%90

检测方法

echo $INPUT_METHOD

可以先执行以上命令,正确的返回值是fcitx5

解决办法

pambase 升级后不再读取设置在 ~/.pam_environment 的环境变量。
我把配置放到~/.xprofile可以生效。内容如下:

export INPUT_METHOD=fcitx5
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

然后重启电脑,问题解决。
当然也可以配置在/etc/environment
内容如下:

INPUT_METHOD=fcitx5
GTK_IM_MODULE=fcitx5
QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5

以下内容可忽略。。。

折腾过程

本节只做记录,可以不看。
i3wm和 KDE桌面环境各种切换测试,配置文件也多方面调整,因为kitty终端中是可以正常使用的。
我的kitty启动命令与别的程序有点特殊

 env GLFW_IM_MODULE=ibus kitty

我用同样的方法启动别的程序也无法正常使用。各种无效的尝试,这里就不叙述了。

反正我最终准备放弃fcitx5了,准备使用IBus

卸载

大致的命令如下:

pacman -R fcitx5-chinese-addons
pacman -R libime
pacman -R fcitx5-im

安装

pacman -S fcitx5 fcitx5-chinese-addons fcitx5-im fcitx5-configtool --noconfirm

总结

真的好无语,真的好无语。为了这个输入法浪费了我两个小时啊。

 类似资料: