Fedora下FCITX输入法安装及问题排查解决详解
<p>使用linux最沮丧的事情莫过于中文输入法切换不出来,甚至有人错误地认为,要使用中文输入法,必须把“区域和语言”(Region & Language)设置为中国-中文。输入法只是一个软件,和区域设置没有什么必然联系。如果你在初始化安装系统的时候,选择了中文,倒是会帮你把中文输入法打包安装好。</p><p><strong>所以和我一样使用en-us区域设置的朋友,如果输入法出了问题,怎么排查解决呢?</strong></p>
<p>首选你必须安装一个中文输入法,推荐小企鹅</p>
<div class="jb51code">
<pre class="brush:bash;">
sudo yum install fcitx-pinyin</pre>
</div>
<p>但是,安装完后,发现按 ctrl+space 却没有召唤出输入法。需要在终端中执行</p>
<div class="jb51code">
<pre class="brush:bash;">
im-chooser</pre>
</div>
<p>选中当前输入法为FCITX,并进行基本的设置。 大部分情况下,至此你就可以正常地使用一个中文输入法了。</p>
<p style="text-align: center"><img alt="Input Method Selector" src="https://img.jbzj.com/file_images/article/201703/201703211604546.png" /></p>
<p>在早期的一些教程中,会强调在X环境变量(例如~/.xprofile,~/.xinitrc,~/.xinputrc )中声明环境变量来保证输入法正常启动。实际上没有必要。</p>
<div class="jb51code">
<pre class="brush:bash;">
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=”@im=fcitx”</pre>
</div>
<p>现在的发行版喜欢用软链接来管理设定,系统读取的位置不变(认准软链接),用户设定时改变软链接的实际指向,这是一个漂亮的解耦做法。如果你开发过跨平台跨环境的应用,就知道兼容适配有多麻烦,一个简单易行的方案有多宝贵。</p>
<p>来看看Fedora20里面是怎么做的。</p>
<p style="text-align: center"><img alt="fcitx soft link" src="https://img.jbzj.com/file_images/article/201703/201703211604557.png" /></p>
<p>所以当你用标准姿势安装并设定过输入法,最后是可以通过软链接指向正确关联。 反正 /etc/X11/xinit/xinitrc.d/50-xinput.sh 启动脚本认准了/etc/X11/xinit/xinputrc</p>
<p>如果你不顺利,在运行im-chooser的时候出现了错误。 内容大概是</p>
<div class="jb51code">
<pre class="brush:bash;">
GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._imsettings_2derror_2dquark.Code5: Current desktop isn’t targeted by IMSettings.</pre>
</div>
<p>不要着急,Linux的易用性虽然还是有差距,但是一直保持有详细错误日志的优良传统。 在 ~/.cache/imsettings/log 看到关键错误日志如下:</p>
<div class="jb51code">
<pre class="brush:bash;">
[ 1406594712.769015]: IMSettings-Daemon: INFO: Attempting to switch IM to FCITX org.gnome.settings-daemon.plugins.keyboard.active is true. imsettings is going to be disabled.</pre>
<p>由于属性“org.gnome.settings-daemon.plugins.keyboard.active”当前的值是true,禁止了imsettings运行。 所以解决的方案很简单,在终端上将相关属性设置为false即可。</p>
<div class="jb51code">
<pre class="brush:bash;">
gsettings set org.gnome.settings-daemon.plugins.keyboard active false</pre>
</div>
<p>类似的错误也可以通过同样的方法来解决,日志详尽,心中不慌。</p>
</div>
<p>如果不了解gsettings,可以参见<a target="_blank" href="https://www.jb51.net/LINUXjishu/542702.html">gsettings简介及常用操作介绍</a></p>
頁:
[1]