KiRorY
KDE桌面下解决Kitty终端模拟器中文输入法问题

KDE桌面下解决Kitty终端模拟器中文输入法问题

问题描述

  最近使用ranger的时候发现KDE-plasma桌面自带的konsole在图片渲染有点问题,于是寻找替代的终端模拟器。原先使用过Hyper,一个基于web的终端模拟器,然而该模拟器针对某些中断应用的渲染有点问题(例如Neovim),在ArchLinux运行时出现渲染延迟的问题,故放弃。现使用Kitty终端模拟器,相对较轻和方便,然而使用时发现该模拟器默认与fcitx5输入法有冲突,这导致在中文环境中使用终端非常麻烦。经过尝试,解决后留档以记录方法。

问题原因

  kitty默认输入模式没有设置为fcitx5,所以不支持直接激活输入法输入。所以需要在环境变量中设置,指定使用的输入框架。

解决方法

  笔者尝试在终端环境中使用export方法,在终端配置脚本中修改环境变量,但是没有效果。笔者推测其原因是终端模拟器是在终端环境生效前先被运行,终端配置脚本中的环境变量对于终端模拟器没有生效。所以正确的解决方法应该是以指定环境变量的方法来启动kitty,目前笔者使用后有两种有效方法。

1.KDE桌面环境下的有效解决方案

  如果使用KDE桌面环境,那么可以直接修改对程序的启动方式(其它桌面环境也许可以,但笔者这里只在KDE环境下测试了)。在终端中输入kmenuedit直接进入KDE的菜单编辑界面,选择kitty程序,在右侧修改其环境变量栏,输入GLFW_IM_MODULE=ibus,保存退出。此时你的重新运行后就可以输入中文了。

kde_kitty

2.终端环境下使用环境变量启动kitty子进程方法(不推荐)

  该方法不推荐的原因是启动会比较麻烦。在开启一个终端后,你可以使用以下语句再开启一个kitty的子程序终端,在子程序终端中可以正常使用中文输入法:

1
GLFW_IM_MODULE=ibus kitty

当然,如果你不想每次输入一长串命令来启动终端,你可以直接在你的终端配置文件(.bashrc或.zshrc等)中插入上面的指令,这样你启动kitty程序后会自动打开可以输入中文的子程序。但桌面上多一个程序框总是不太舒服,因此这算是个备选方案。


或许会有更好的解决方案...

参考文档

  本文给出的解决方案参考github上的issue #469,欢迎补充。

本文作者:KiRorY
本文链接:https://kirory.xyz/2023/12/20/KDE桌面下解决Kitty终端模拟器中文输入法问题/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可