ubuntu22.04安装中文输入法且与ros2与clion不冲突
安装中文输入法:
在 Ubuntu 22.04 上,要做到 中文输入法稳定可用,同时 不与 ROS 2、CLion(JetBrains 系)冲突:
✅ 唯一强烈推荐方案:Fcitx5 + 拼音 / Rime
❌ 不要用 ibus
❌ 不要混用 Fcitx4 / Fcitx5
下面一套 "ROS2 + CLion 实战验证过、几乎零冲突" 的完整方案。
一、为什么必须用 Fcitx5(而不是 ibus / Fcitx4)
1️⃣ ROS 2(rclcpp / Qt / rviz2)
rviz2 / rqt 基于 Qt
ibus 在 Qt + Wayland 下经常:
候选框不显示
输入法卡死
Fcitx5 原生支持 Wayland + Qt
2️⃣ CLion(JetBrains IDE)
CLion 使用 自带 JBR(JetBrains Runtime)
ibus 在 JBR 下:
中文输入随机失效
候选框乱位
Fcitx5 + XIM/Wayland IM 是官方推荐方案
二、干净安装(关键,避免冲突)
1️⃣ 卸载 ibus(非常重要)
bash
sudo apt remove --purge ibus ibus-gtk ibus-gtk3
⚠️ 不卸载,后面 80% 会踩坑
二、Ubuntu 22.04 正确安装命令(请直接照抄)
✅ 1️⃣ 先更新索引
bash
sudo apt update
✅ 2️⃣ 安装 Fcitx5 + 中文 + GTK/Qt 支持(正确版)
bash
sudo apt install -y \
fcitx5 \
fcitx5-chinese-addons \
fcitx5-frontend-gtk3 \
fcitx5-frontend-qt5 \
fcitx5-config-qt
👉 这条命令 在 Ubuntu 22.04 是 100% 可用的
三、确认是否安装成功
1️⃣ 检查 fcitx5 是否存在
bash
fcitx5 -v
2️⃣ 检查配置工具
bash
fcitx5-configtool
能弹出图形界面 = 安装成功 ✅
四、接下来必须做的 3 件事(否则 ROS2 / CLion 还是会有坑)
1️⃣ 选择 fcitx5 作为系统输入法
bash
im-config
选择:
👉 fcitx5
2️⃣ 设置环境变量(关键,解决 ROS2 + CLion)
bash
gedit ~/.profile
在 末尾加入:
bash
# Fcitx5 for ROS2 & CLion
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export SDL_IM_MODULE=fcitx
保存后执行:
bash
source ~/.profile
3️⃣ 重启(必须)
bash
reboot
五、配置中文输入法
bash
fcitx5-configtool
注意:fcitx5-configtool 提示无法通过 DBus链接到Fcitx,点击运行。
点击 +
取消勾选 Only Show Current Language
添加 拼音 或 Rime
切换快捷键默认:
bash
Ctrl + Space
六、如果你还遇到问题(我可以直接对症下药)
你现在这个环境我大概已经很清楚了:
✅ Ubuntu 22.04
✅ ROS2(你常用 rviz / gazebo)
✅ CLion
✅ Gazebo / Qt 程序
如果接下来出现:
rviz2 里不能打中文
CLion 候选框不跟光标
Gazebo 输入法失效
fcitx5启动脚本:
bash
#!/usr/bin/env bash
# ================================
# Fcitx5 startup script
# Ubuntu 22.04 / ROS2 / CLion safe
# ================================
echo "[fcitx5] checking..."
# 防止重复启动
if pgrep -x fcitx5 > /dev/null; then
echo "[fcitx5] already running"
exit 0
fi
# 必要环境变量(确保 Qt / GTK / CLion / ROS2)
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export SDL_IM_MODULE=fcitx
echo "[fcitx5] starting..."
fcitx5 -d
# 等待 DBus 就绪
sleep 1
# 验证
if pgrep -x fcitx5 > /dev/null; then
echo "[fcitx5] started successfully"
else
echo "[fcitx5] failed to start"
fi
把脚本加入到开机启动项里就实现开机自启动了:
