update: 2015-08-17
Telegram更新到版本 0.8.51,解决了Fcitx和IBus输入问题,以下内容作废。
--------------------------------------------------------------------
Telegram使用了QT5,而作者未链接platforminputcontexts库,因此无法使用输入法。
根据最新回复,先编译libfcitxplatforminputcontextplugin再编译Telegram应该可以解决fcitx输入问题(我也尝试过编译但没成功),目前作者没有回应。
Arch用户AUR能解决问题。
那么在问题解决之前只能通过一些间接方式使用Telegram(gedit复制粘贴就算了):
1,参照MC中输入中文的解决方法:
安装xclip和xdotool,
#!/bin/bash gdialog --inputbox ' ' 2>&1 | xclip -i -selection clipboard xdotool key "ctrl+v" sleep 0.1 xdotool key Return
将这些代码绑定到某个快捷键,在Telegram界面按下快捷键会弹出一个对话框,输入文字后回车,会自动将内容复制到Telegram会回车回复(如果使用的是默认的回车回复的话)。
KDE用户将第二行替换成
kdialog --inputbox ' ' | xclip -i -selection clipboard
我目前使用的是这种方案,虽然弹出对话框会有一定时延。
Awesome用户:
if c.class and c.class:match('Telegram') then local keys = c:keys() local mykey = awful.key({}, 'Tab', function(c) awful.util.spawn_with_shell("gdialog --inputbox ' ' 2>&1 | xclip -i -selection clipboard && sleep 0.1 && xdotool key ctrl+v && xdotool key Return") end) keys = awful.util.table.join(keys, mykey) c:keys(keys) elseif c.name == 'Add a new entry' then awful.util.spawn_with_shell('sleep 0.05 && fcitx-remote -T', false) end
2,使用Cutegram:
虽然Cutegram也无法直接输入中文,但是因为不像Telegram那样直接编译成二进制文件,因此我们只需要将相应的库文件添加到Cutegram目录就能正常使用。
(我使用的是fcitx,就以fcitx为例吧)首先安装fcitx-frontend-qt5,那么在/usr/lib/i386-linux-gnu/qt5/plugins/platforminputcontexts/(32位)或usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/(64位)目录下会有个libfcitxplatforminputcontextplugin.so(还有个libibusplatforminputcontextplugin.so,应该是给ibus用的,我没测试,都复制过来吧)文件,将其复制到/opt/cutegram/qtplugins/platforminputcontexts目录下(创建软链接会更好),重启Cutegram就可以使用输入法了。
Cutegram使用起来会有各种小问题,偶尔会崩溃。
详细内容参考薄荷
3,剩下的就是:
本文链接地址: Linux下Telegram的中文输入问题
最新的官方测试版支持fcitx,只是必须在启动时命令行加入qt的fcitx环境变量设置。
现在已经发布stable版了
多谢提醒