跳到主要内容

Debian13 KDE + fcitx5 环境 VSCode 无法输入中文解决方案

·1 分钟

问题描述 #

在安装了Debian13,桌面环境为KDE,输入法为fcitx5的情况下,VsCode无法输入中文。

  1. 通常启用fcitx5后,会在 /etc/environment 中配置如下环境变量:
INPUT_METHOD=fcitx5
XMODIFIERS=@im=fcitx
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
  1. 配置上述环境变量重启系统后,系统弹窗提示:

检测到设置了GTK_IM_MODULE和QT_IM_MODULE而且Wayland输入法前端正在正常工作,推荐不设置GTK_IM_MODULE和QT_IM_MODULE从而使用Wayland输入法前端。

  1. 按照系统提示注释掉 GTK_IM_MODULEQT_IM_MODULE 后出现两难问题:
    1. 保留两行环境变量:开机持续弹出优化提示;
    2. 注释两行环境变量:VSCode无法输入中文。

解决问题 #

1. 创建KDE用户环境变量目录 #

mkdir -p ~/.config/plasma-workspace/env/

2. 新建VSCode专属环境变量脚本 #

编辑脚本文件:

nano ~/.config/plasma-workspace/env/vscode_env.sh

脚本完整内容:

#!/bin/sh
# 启动vscode时注入输入法环境变量
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export QT_AUTO_SCREEN_SCALE_FACTOR=1

3. 赋予脚本可执行权限 #

chmod +x ~/.config/plasma-workspace/env/vscode_env.sh

4. 创建VSCode自定义启动入口 #

sudo nano /usr/local/bin/code-starter

启动脚本内容:

#!/bin/bash
# 加载预定义的输入法环境变量
if [ -f "$HOME/.config/plasma-workspace/env/vscode_env.sh" ]; then
    source "$HOME/.config/plasma-workspace/env/vscode_env.sh"
fi

# 携带环境变量启动VSCode并透传全部启动参数
env XMODIFIERS="$XMODIFIERS" GTK_IM_MODULE="$GTK_IM_MODULE" QT_IM_MODULE="$QT_IM_MODULE" /usr/share/code/code "$@"

5. 给自定义启动脚本添加执行权限 #

sudo chmod +x /usr/local/bin/code-starter

6. 修改VSCode桌面快捷方式调用路径 #

编辑桌面配置文件:

sudo nano /usr/share/applications/code.desktop

将文件内所有 Exec 字段里的 /usr/share/code/code 统一替换为 /usr/local/bin/code-starter,修改后完整示例:

[Desktop Entry]
Name=Visual Studio Code
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=/usr/local/bin/code-starter %F
Icon=vscode
Type=Application
StartupNotify=false
StartupWMClass=Code
Categories=TextEditor;Development;IDE;
MimeType=application/x-code-workspace;
Actions=new-empty-window;
Keywords=vscode;

[Desktop Action new-empty-window]
Name=New Empty Window
Name[cs]=Nové prázdné okno
Name[de]=Neues leeres Fenster
Name[es]=Nueva ventana vacía
Name[fr]=Nouvelle fenêtre vide
Name[it]=Nuova finestra vuota
Name[ja]=新しい空のウィンドウ
Name[ko]=새 빈 창
Name[ru]=Новое пустое окно
Name[zh_CN]=新建空窗口
Name[zh_TW]=開新空視窗
Exec=/usr/local/bin/code-starter --new-window %F
Icon=vscode

7. 命令行启动注意事项 #

后续终端启动VSCode,不再使用默认 code 命令,改用自建启动命令:

code-starter