个人摸索得到的方法,如有转载,请注明作者和出处。

——by realasking

我使用的是基于ArchLinux的Antergos系统,此前一直用fcitx的双拼输入法,在KDE桌面下,使用的是kimpanel前端,一切都很好,今天突然想换一下搜狗拼音输入法,却没想到遇到了一些问题。

在我从源里安装好fcitx-sogoupinyin后,首先遇到的问题是每次输入都会出现双输入框,一个是kimpanel的,没有候选字输出,一个是搜狗拼音的,候选框中全部都是乱码,经过尝试,发现只要停用kimpanel就好。

但又遇到另外一个问题,就是sogoupinyin启动后,切换输入法时会出现一个黑块儿,而输入时输入框四周都会出现黑框,这显然是渲染引擎的问题,在网上搜索了一下,却没有针对KDE5环境的方案,于是尝试自己解决:

1.尝试用kwin_x11替代kwin_wayland——没有效果;

2.检查compositing状态:

qdbus org.kde.KWin /KWin supportInformation|grep Compositing

发现其中有如下内容:

Compositing is not active

3.检查direct rendering:

glxinfo |grep direct
显示:

direct rendering: Yes
    GL_EXT_depth_bounds_test, GL_EXT_direct_state_access,
    GL_EXT_depth_bounds_test, GL_EXT_direct_state_access,

glxinfo |grep "version string"

显示:
server glx version string: 1.4
client glx version string: 1.4
OpenGL core profile version string: 3.3.0 NVIDIA 340.102
OpenGL core profile shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL version string: 3.3.0 NVIDIA 340.102
OpenGL shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL ES profile version string: OpenGL ES 2.0 NVIDIA 340.102 340.102
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.00

显然驱动没有问题

4.检查混成器设置:

系统设置->显示和监控->混成器

发现混成器后端默认的是OpenGL 2.0,猜想是否这个设置太低,于是将其改为了OpenGL 3.1。注销桌面重新登录后,发现输入框已经正常了,而且执行:

qdbus org.kde.KWin /KWin supportInformation|grep Compositing

显示内容也变成了:

useCompositing: true
windowsBlockCompositing: true
Compositing
Compositing is active
Compositing Type: OpenGL


至此,KDE5下搜狗拼音终于能正常工作了。