之前我曾经写过一篇文章介绍在 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. 数据结构-二分查找(Binary Search)

    #include <stdio.h> #include <string.h> #include <stdlib.h> #define LIST_INIT_SIZE ...

  2. MongDB之各种修改操作

    接口IMongDaoUpdate: package com.net.test.mongdb.dao; import com.net.test.mongdb.entity.User; public in ...

  3. python3.7 time模块

    #!/usr/bin/env python __author__ = "lrtao2010" #python3.7 time模块 #time模块没有time.py文件,是内置到解释 ...

  4. 4 Template层- HTML转义

    1.HTML转义 Django对字符串进行自动HTML转义,如在模板中输出如下值: 视图代码: def index(request): return render(request, 'temtest/ ...

  5. 产生指定时间区间序列、按指定单位变化时间 python实现

    示例1:给定起始日期和结束日期,如何得到中间的时间序列 import datetime def dateRange(beginDate, endDate): dates = [] dt = datet ...

  6. loj2292 「THUSC 2016」成绩单

    ref 我是傻逼,我啥也不会,这是我抄的. #include <iostream> #include <cstring> #include <cstdio> usi ...

  7. Codeforces 1139D(期望dp)

    题意是模拟一个循环,一开始有一个空序列,之后每次循环: 1.从1到m中随机选出一个数字添加进去,每个数字被选的概率相同. 2.检查这个序列的gcd是否为1,如果为1则停止,若否则重复1操作直至gcd为 ...

  8. 精通CSS高级Web标准解决方案(6、对表单与表格应用样式)

    使用fieldset input[type="text"] { width:200px; } input:focus,textarea:focus{background:#ffc; ...

  9. 聊聊、Java 命令 第一篇

    网上很多讲 Javac 和 Java 命令的,我觉得还是要自己写一写,做一个自己的总结,也方便以后查询. 开始之前先看看 help 命令,基本上任何一个软件都会提供这个命令. 没有什么比 -help ...

  10. springmvc支持跨域的请求(复制)

    Spring MVC 新增跨域支持 发表于2017/5/8 22:01:24  48人阅读 分类: SpringMVC Spring MVC 4.2 增加 CORS 支持 跨站 HTTP 请求(Cro ...