ubuntu22.04安装中文输入法且与ros2与clion不冲突

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启动脚本:

start-fcitx5.sh

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

把脚本加入到开机启动项里就实现开机自启动了:

相关推荐
欧云服务器4 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI4 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
The️4 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
再战300年4 天前
Samba在ubuntu上安装部署
linux·运维·ubuntu
qwfys2004 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
木尧大兄弟4 天前
Ubuntu 系统安装 OpenClaw 并接入飞书记录
linux·ubuntu·飞书·openclaw
小虾爬滑丫爬4 天前
ubuntu上设置Tomcat 开机启动
ubuntu·tomcat·开机启动
老师用之于民4 天前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code
小虾爬滑丫爬4 天前
Ubuntu 上设置防火墙
ubuntu·防火墙
林开落L5 天前
解决云服务器内存不足:2 分钟搞定 Ubuntu swap 交换区配置(新手友好版)
运维·服务器·ubuntu·swap交换区