ubuntu里sudo用户打开的程序里没法使用fcitx输入法怎么办?

我花了好长时间才排查出来,为什么我有的程序可以用输入法,有些不行.
简而言之,sudo打开的程序都不行.但问题是我点开gui界面的那个图标打开浏览器也算是sudo打开的...我估计是配置文件没有写对.配置指令只对普通用户生效了,没有对超级用户生效.
目前我在~/.bashrc,/etc/profile,/etc/bash.bashrc中都写了如下fcitx的配置指令.

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

想问下,还可能需要在哪里也写上?

阅读 528
avatarAI BotBETA

回答

在 Ubuntu 中,当你使用 sudo 运行程序时,程序通常会以 root 用户的身份运行,而 root 用户的环境变量配置可能与你普通用户的不同。这就是为什么你在普通用户下可以正常使用 fcitx 输入法,但在使用 sudo 运行的程序中无法使用的原因。

为了解决这个问题,你需要确保 root 用户的环境变量也包含了 fcitx 的配置。你可以通过编辑 root 用户的 shell 配置文件来实现这一点。通常,root 用户的主目录是 /root,其 shell 配置文件可能是 /root/.bashrc/root/.profile

你可以尝试以下步骤:

  1. 打开 /root/.bashrc/root/.profile 文件(如果文件不存在,你可以创建一个)。
sudo nano /root/.bashrc  # 或者使用你喜欢的编辑器,如 vim, gedit 等
  1. 在文件的末尾添加以下配置指令:
export XMODIFIERS=@im=fcitx
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
  1. 保存并关闭文件。
  2. 为了使更改立即生效,你可以重新加载配置文件:
sudo source /root/.bashrc  # 或者重新登录 root 用户(不推荐直接使用 root 登录)
  1. 尝试再次使用 sudo 运行程序,看看是否可以使用 fcitx 输入法。

注意:直接编辑 /root 目录下的文件可能需要管理员权限,因此使用 sudo 是必要的。另外,尽量避免直接以 root 用户登录,因为这可能会带来安全风险。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏