安装 gedit 之后,chrome 或其他显示 ‘在文件夹中打开’ 的选项默认都使用 gedit 打开

这个是一个比较奇怪的问题,为此之前卸载过一次 gedit,一切恢复正常。但是个人比较偏爱于这个 gnome 自带的文本编辑器,简洁干净又美观,编辑文档,写文章时,都喜欢用它。

gedit UI

于是,又把它下了回来,然后就又碰上了上面所说的这个问题。‘Show in folder’ 本该是直接使用 nautilus 文件管理打开,为什么用 gedit 打开呢?你要用它打开就算了,你又不支持打开文件夹,搞毛啊 :(

gedit error

一番搜索,在 Ask Ubuntu 上找到了相同的问题,结合其他信息及 Arch Wiki,验证总结出以下几种解决方案。

1.修改 mimeapps.list 将 inode/directory=org.gnome.gedit.desktop;anjuta.desktop; 这一行注释掉:

annotate gedit item

mimeapps.list 路径为 ~/.config/mimeapps.list,根据 wiki 上的说明,~/.local/share/applications/mimeapps.list 已经被弃用了,所以,此时若按 Ask Ubuntu 上的方法,你会发现列表文件是空的。

mimeapps list path

也就是说,安装 gedit 之后,它会默认向 mimeapps.list 文件里写入这个启动配置选项,注释之后即恢复正常。

2.使用 xdg-open 将 nautilus 设为默认目录打开程序:

chrome 是使用 xdg-open 来管理文件类型对应的打开程序,使用 xdg-utils 可以直接查询修改这些配置,但是这里有一点比较奇怪,就是当我查询目录默认打开程序的时候,显示的竟然是 nautilus,但还是再执行了一遍,将其设置为默认程序,然后再打开,就恢复正常了。以下是命令行上的操作:

~ $ xdg-mime query default inode/directory
org.gnome.Nautilus.desktop
(第一次查询显示的结果)
~ $ xdg-open Downloads
(这里仍旧使用 gedit 打开)
~ $ xdg-mime default org.gnome.Nautilus.desktop inode/directory
~ $ xdg-open Downloads
(这里恢复正常,使用 nautilus 文件管理系统打开)

3.使用 xdg-open 的替代方案手动设置文件打开程序:

由于 xdg-utils 里 xdg-open 的版本很复杂,可能有时候出问题的时候很难 debug,因此,就有了一些替代的选择。这里可以用 mime-open 和 mimeo 设置使用。

==> mime-open

~ $ sudo pacman -S perl-file-mimeinfo
~ $ mimeopen -d /home/showzeng/Downloads
(这里选择 nautilus 选项相应的数字)
~ $ mimeopen -n Downloads/
(验证是否使用 nautilus 打开文件夹)

==> mimeo (在 Aur 仓库)

~ $ pacaur -S mimeo
~ $ mimeo -m Downloads/
Downloads
  inode/directory
(先判断文件夹的 MIME 类型)
~ $ mimeo --add inode/directory org.gnome.Nautilus.desktop
(设置 nautilus 为默认打开程序)
~ $ mimeo Downloads/
(验证是否使用 nautilus 打开文件夹)

很抱歉,第三种解决方案,由于网络原因及验证签名失败,mime-open 和 mimeo 都没装成功,以下是各安装过程中的报错:

mime-open
---------------
error: failed retrieving file 'perl-ipc-system-simple-1.25-3-any.pkg.tar.xz' 
from mirrors.ustc.edu.cn : Resolving timed out after 10517 milliseconds

mimeo
---------------
==> Verifying source file signatures with gpg...
    mimeo-2017.6.6.tar.xz ... FAILED (unknown public key 1D1F0DC78F173680)
==> ERROR: One or more PGP signatures could not be verified!
:: failed to verify mimeo integrity

那你可能会问,解决方案哪来的,这是根据 wiki 总结出来的,应该是没有问题的,你也可以验证一下 :p ,其实也是自己懒得再解决这两个安装问题了,毕竟第一种方案就解决了我的问题,哈哈。

参考文档:[Ask Ubuntu] [Superuser] [Arch Wiki(Default applications)]

安装完 WPS 后,系统中文字体发虚

首先个人平时最喜欢的字体是 Monaco 加上 wqy-microhei(文泉驿微米黑) 如果你没有安装这两个字体,强烈建议你安装使用:

==> 安装 Monaco、wqy-microhei 字体

~ $ sudo pacman -S ttf-monaco
~ $ sudo pacman -S wqy-microhei

WPS 无疑是一款优秀的软件,以前用 Ubuntu 的时候也装过,那时候,表格应用还有中文无法渲染,显示方框的问题一直也没有去解决,但是仅作为偶尔查看一下文档来用,还无伤大雅,主力写报告时还是切回 Windows。而今发现在 Arch 安装时,首先打开应用会提示缺少 Symbol 字体,这简单,直接仓库搜索一下 Symbol 字体,会发现有个 WPS 的字体包:

==> 安装 Symbol 字体

~ $ sudo pacman -S ttf-wps-fonts

就在这个命令执行完了之后,我发现系统中文字体发虚了,那个时候正开着 Chrome,看着页面上的字体简直无法直视。

刚开始觉得是 Symbol 字体安装完之后覆盖了设置,然后自己在 Tweaks 中又把字体设置一遍 (之前直接设置为 Monaco),可是突然想起,这和中文字体的渲染没有关系,应该是在其他什么配置文件中设置。Google 一番之后找到了原因,安装 WPS 之后,附带的方正字体使得 Serif(衬线体) 和 Sans-Serif(非衬线体,对中文而言为黑体) 字体的中文部分默认指向了方正宋体。这一点可以在字体文件中得到验证:

WPS-office fonts

这里充斥着各种方正字体。问题找到了怎么解决呢?通过 FontConfig 修改配置文件使 Serif 和 Sans-Serif 字体的渲染字体优先级提前即可。(网上提到的文泉驿官网提供的配置文件生成工具 Fontconfig Designer 好像已经挂掉了) 配置文件的路径为:

/etc/fonts/conf.avail/50-user.conf

==> 原本未经修改的配置文件:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
	<!--
	    Load per-user customization files where stored on XDG Base Directory
	    specification compliant places. it should be usually:
	      $HOME/.config/fontconfig/conf.d
	      $HOME/.config/fontconfig/fonts.conf
	-->
	<include ignore_missing="yes" prefix="xdg">fontconfig/conf.d</include>
	<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
	<!-- the following elements will be removed in the future -->
	<include ignore_missing="yes" deprecated="yes">~/.fonts.conf.d</include>
	<include ignore_missing="yes" deprecated="yes">~/.fonts.conf</include>
</fontconfig>

==> 修改后的配置文件:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
    <test name="family"><string>sans-serif</string></test>
    <edit name="family" mode="prepend" binding="strong">
        <string>文泉驿微米黑</string>
            <!-- Please install 文泉驿微米黑 first -->
        <string>文泉驿等宽微米黑</string>
        <string>DejaVu Sans</string>
        <string>DejaVu Sans</string>
        <string>WenQuanYi Micro Hei</string>
            <!-- Please install WenQuanYi Micro Hei first -->
        <string>WenQuanYi Bitmap Song</string>
            <!-- Please install WenQuanYi Bitmap Song first -->
        <string>Cantarell</string>
            <!-- Please install Cantarell first -->
        <string>DejaVu Sans Condensed</string>
        <string>DejaVu Sans Light</string>
        <string>DejaVu Sans Mono</string>
        <string>DejaVu Serif</string>
        <string>DejaVu Serif Condensed</string>
    </edit>
</match>
<match>
    <test name="family"><string>serif</string></test>
    <edit name="family" mode="prepend" binding="strong">
        <string>文泉驿微米黑</string>
            <!-- Please install 文泉驿微米黑 first -->
        <string>文泉驿等宽微米黑</string>
        <string>DejaVu Sans</string>
        <string>DejaVu Serif</string>
        <string>WenQuanYi Bitmap Song</string>
            <!-- Please install WenQuanYi Bitmap Song first -->
        <string>Bitstream Charter</string>
            <!-- Please install Bitstream Charter first -->
        <string>Cantarell</string>
            <!-- Please install Cantarell first -->
        <string>DejaVu Sans Condensed</string>
        <string>DejaVu Sans Light</string>
        <string>DejaVu Sans Mono</string>
        <string>DejaVu Serif</string>
        <string>DejaVu Serif Condensed</string>
    </edit>
</match>
</fontconfig>

保存修改之后就应该可以看到效果了,如果没有变化,试着重启一下。最后看一下恢复字体之后的界面:

UI recover

Awesome :p

参考文档:[WPS 社区] [Arch Wiki(Font configuration)]