这个问题从开始用Awesome以来一直困扰着我,wibox上的所有中文都诡异得奇丑无比,但都一直没时间收拾这个。今天终于痛下决心折腾了一下,事实证明还是自己太二了……
首先,如果在Awesome配置中设定具体的字体名称的话,应该是无法设置多个字体的,也就没法设置独立的西文+中文或其它CJK字体作为fallback(欢迎大家关于这点提出异议,那本文后面的话就可以直接忽略之了…)。这样如果指定了一个英文字体名称的话,也不知道Awesome用了什么样的fallback策略,wibox上显示的中文貌似居然都不是同一种字体的……
其实要在Awesome中独立设置西文和中文字体很简单,只要回归本质即可——利用fontconfig的配置机制。在~/.fonts.conf(针对自己的用户)或/etc/fonts/local.conf(针对系统全局,不推荐)文件中,对sans、serif、monospace等字体族的字体进行设置,以字体先后顺序的形式调整好优先级。需要注意一般将要设置的英文字体放在中文字体前面才能生效。然后在Awesome配置中,将字体改为要用的字体族的名字即可,比如”serif 8″,这样wibox中的字体就是按照serif字体族中的优先级渲染了。
另外,对于fontconfig配置,推荐一个不错的自动配置生成网站:http://wenq.org/cloud/fcdesigner.html,可以很直观地对几个常用字体优先级调整效果进行预览,然后生成样例fontconfig内容,可以直接粘来使用,非常方便。这个工具是文泉驿项目提供的,再次感谢文泉驿为我们提供了这么好的开源字体和工具!
Reference
https://wiki.archlinux.org/index.php/Fonts_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
http://wenq.org/cloud/fcdesigner.html
近期评论