之前我曾经写过一篇文章介绍在 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. 爬虫进阶之Selenium和chromedriver,动态网页(Ajax)数据抓取

    什么是Ajax: Ajax(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意 ...

  2. 数据分析处理库Pandas——概述

    导入Pandas库 创建DataFrame结构 读取.csv文件 titanic_train.csv文件:https://files.cnblogs.com/files/gloria-zhang/ti ...

  3. 解析XML格式数据

    学习解析XML格式的数据前,搭建一个简单的web服务器,在这个服务器上提供xml文本用于练习. 一.搭建Apache服务器 在Apache官网下载编译好的服务器程序,安装.对于Windows来说127 ...

  4. 动态规划:HDU1087-Super Jumping! Jumping! Jumping!(最大上升子序列和)

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  5. Mysql相关子查询&&MySQL获取分组后的TOP N记录

    小燕子,哈哈哈哈~~~~~~~~~~ 相关子查询是指引用了外部查询列的子查询,即子查询会对外部查询的每行进行一次计算. 举个例子 root:test> show create table tes ...

  6. install golang plugin in webstrom

    https://github.com/go-lang-plugin-org/go-lang-idea-plugin/wiki/Documentation

  7. loj2042 「CQOI2016」不同的最小割

    分治+最小割 看到题解的第一句话是这个就秒懂了,然后乱七八糟的错误.越界.RE-- #include <algorithm> #include <iostream> #incl ...

  8. 运维自动化之puppet3分钟入门

    运维自动化之puppet3分钟入门 几个月前曾因为项目需求而学了点puppet的一些知识,最近因为要给别人讲一下,也就借此博文来做一下回忆,当然了,这个puppet用起来还是很不错的,尤其对我这种懒人 ...

  9. IOS开发---菜鸟学习之路--(十五)-如何实现拍照功能

    本章将来讲解下如何实现拍照的功能 我们需要的实现的效果是      好了 直接开始内容吧 首先我们需要新建一个ViewController 就叫AddPictureViewController 然后选 ...

  10. 【Palindrome Number】cpp

    题目: Determine whether an integer is a palindrome. Do this without extra space. click to show spoiler ...