之前我曾经写过一篇文章介绍在 GNOME 3.x 下安装小企鹅输入法框架,但最近在 Fedora 26/27 环境下发现老方法已经失效了,会导致 GNOME 3.24/3.26 桌面在重启后无法进入,探索了一段时间后终于发现了关键问题所在,总结出一套新的方法,可以顺利安装并使用 FCITX 了,具体如下:

1、删除系统自带的 ibus 输入法框架,使用命令 sudo dnf remove ibus 即可。然后在系统设置->键盘设置中,把输入法快捷键禁用掉。

2、安装 fcitx,但注意不要再安装 im-chooser 了,因为 Fedora 26/27 中已经不存在 org.gnome.settings-daemon.plugins.keyboard 这个 dconf 注册表项了,改为 /etc/xdg/autostart/org.gnome.SettingsDaemon.Keyboard.desktop 这个特殊的系统自启动文件,这个文件不能删除,否则系统重启后无法进入桌面并卡死!执行如下命令:

$ sudo dnf install fcitx fcitx-cloudpinyin fcitx-configtool fcitx-gtk2 fcitx-gtk3

3、通过 gnome-tweak-tool 工具将 fcitx 添加为会话自启动程序,这样在每次登录成功进入 GNOME 桌面后就会自动启动 fcitx。

4、在 /etc/profile.d 中增加一个配制脚本命名为 fcitx.sh,内容如下:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

5、安装了 FCITX 的 Linux 系统,在每次重启、关机时,都会出现很长时间的等待,这是因为 fcitx 进程没有正常响应 dbus 系统退出信号造成的,为了解决这个问题,可以在系统退出前手动杀掉 fcitx 进程即可。但如果想通过 rc.6 模式或者 systemd 方式进行重启或关机前自动杀 fcitx 其实效果并不好。我们换一种思路,修改重启或关机时 systemd 等待 fcitx 进程的时长,默认是 90 秒,我们可以把它改为最多只等待 10 秒,就会起到快速重启或关机不再长时间等待的效果了。具体是修改 /etc/systemd/system.conf 文件,将其中的 #DefaultTimeoutStopSec=90s 这一行前面的 # 去掉,然后将其赋值改为 10s 保存即可。

6、关闭 Wayland 显示系统,改为 Xorg 显示模式。因为目前 FCITX 对于 Wayland 的支持还很差,而 Fedora 26/27 GNOME 桌面默认是采用 Wayland 显示系统的,这会导致 FCITX 在 gnome 终端等应用程序中输入中文时的光标跟随出现问题,所以禁用 Wayland。方法是修改 /etc/gdm/custom.conf 文件,将里面 #WaylandEnabled=false 这一行前面的“#”删除,保存后重启即可将显示模式改为 Xorg。

7、重启系统,登录并进入 GNOME 3.24/3.26 桌面后即可正常使用 FCITX 输入法了,并且不会再出现系统重启或关机时长时间等待了。上述方法对于以后更高版本的 GNOME 应该是同样适用的。

在 Fedora 26/27 GNOME 3.24/3.26 环境中安装 FCITX 小企鹅输入法(修订)的更多相关文章

  1. GNOME 3.x下安装配置小企鹅输入法框架及SunPinYin插件

    fcitx 小企鹅输入法框架已经越来越成熟,并且具备极高的性能,配合 Sun PinYin 智能输入法就和 Windows 下的搜狗百度等输入法几乎无二了.事实上,现在Linux版本的搜狗输入法正是基 ...

  2. VMware Workstation/Fusion 中安装 Fedora 23/24 及其他 Linux 系统时使用 Open VM Tools 代替 VMware Tools 增强工具的方法

    VMware Workstation/Fusion 分别是 Windows/Linux 和 macOS 下面对应的桌面虚拟化软件.过去,在 VMware 中安装了操作系统虚拟机后,需要在虚拟机中再安装 ...

  3. Fedora 19安装Fcitx输入法并安装搜狗输入法资源包

    系统自带的Ibus输入法非常的不好用.在Sublime Text下中文根本不能输入.于是想着换成Fcitx. 1.先卸载系统自带的Ibus输入法 sudo yum remove ibus gsetti ...

  4. 在Fedora中安装OpenCV-Python | 二

    目标 在本教程中 我们将学习在你的Fedora系统中设置OpenCV-Python.针对Fedora 18(64位)和Fedora 19(32位)进行以下步骤. 介绍 可以通过两种方式在Fedora中 ...

  5. 24 UsageEnvironment使用环境抽象基类——Live555源码阅读(三)UsageEnvironment

    24 UsageEnvironment使用环境抽象基类——Live555源码阅读(三)UsageEnvironment 24 UsageEnvironment使用环境抽象基类——Live555源码阅读 ...

  6. 如何在ubuntu 12.04 中安装经典的 GNOME桌面

    这次介绍的是如何在ubuntu 12.04 中安装经典的 GNOME桌面,默认的 Ubuntu 12.04 默认unity桌面,一些用户不喜欢 Unity 桌面,所以想找回昔日的经典Gnome桌面. ...

  7. 重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作

    原文:重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作 [源码下载 ...

  8. Windows10系统在VMware中安装CentOS7操作系统并实现图形化用户界面Gnome

    由于操作系统课程需要,我尝试在windows10环境下安装linux虚拟机,最终采用centOS7和Gnome图形用户界面,在安装和使用过程中出现一些问题,在这里将其记录下来,以便后续查阅. 第一部分 ...

  9. 在Arch gnome中安装一些软件

    一. 在Arch gnome中添加ibus中文输入法 1. 安装ibus-libpinyin. sudo pacman -S ibus-libpinyin 如果系统之前没有安装ibus,则先通过pac ...

随机推荐

  1. 42.VUE学习之--组件之子组件使用$on与$emit事件触发父组件实现购物车功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 迭代器Iterator与语法糖for-each

    一.为什么需要迭代器 设计模式迭代器 迭代器作用于集合,是用来遍历集合元素的对象.迭代器迭代器不是Java独有的,大部分高级语言都提供了迭代器来遍历集合.实际上,迭代器是一种设计模式: 迭代器模式提供 ...

  3. Olympic Class Ships【奥林匹克级邮轮】

    Olympic Class Ships You probably know about the Titanic, but it was actually just noe of three state ...

  4. 5、python中的列表

    list是python内置的一种有序.可变的数据结构. 一.如何创建一个list? 示例: 注意: list中的元素可以是任意的数据类型如字符串.数字.布尔值.None等,也可以是其他的数据结构如另外 ...

  5. Hive 分析函数lead、lag实例应用

    Hive的分析函数又叫窗口函数,在oracle中就有这样的分析函数,主要用来做数据统计分析的. Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead) ...

  6. java NIO简介

    1)java nio简介 nio 是 java New IO 的简称,在 jdk1.4 里提供的新 api . Sun 官方标榜的特性如有:为所有的原始类型提供 (Buffer) 缓存支持:字符集编码 ...

  7. Python中str、list、numpy分片操作

    在Python里,像字符串(str).列表(list).元组(tupple)和这类序列类型都支持切片操作 对对象切片,s是一个字符串,可以通过类似数组索引的方式获取字符串中的字符,同时也可以用s[a: ...

  8. IOS开发---菜鸟学习之路--(十四)-将BASE64图片转换成Image

    本文基本全部都是代码 首先是.H文件 #import <Foundation/Foundation.h> @interface Base64AndImageHelp : NSObject ...

  9. C# 中的 #region 和 #endregion 的作用

    C#中的 #region 和 #endregion 表示一块区域,这样在 Visual Studio 中可以将这块区域的代码折叠起来,便于查看. 虽然Visual Studio 也响应大括号的折叠,但 ...

  10. 修改host文件实现自定义域名和iis站点本地调试

    修改host文件实现自定义域名和iis站点本地调试 自定义域名:myhost.com windows版本:win7 iis版本:iis7.x vs版本:vs2010 现在开始动手设置了: 一.修改ho ...