Ubuntu下调整DPI达到字体美化
字体美化,其实我自己看着这两字我都麻木了,还是这老掉牙的东西,不过现在对 Linux 下字体的调整总算是入门了。
从一开始的工具链、 到后来的内核、X Server 、桌面环境、应用软件基本上搞定后,花了一天时间来仔细研究关于 Linux 下的字体调整,总算是把 Gentoo 下搞得漂漂亮亮的了,现在已经基本上开始取代 Ubuntu 成为主要应用的操作系统了。不过 Ubuntu 也坐了一把顺风车,嘿嘿。 一直以来,所做的几次美化,都没有关注 dpi (Dot Per Inch) 这个设置,通常把它设置为 96dpi ( Windows 上的默认设置 ),以前也知道这个设置对于字体的调整有很大关系,但是都没有深入,这次恶补了几下。 现在写日志越来越懒了,还是照旧吧,写重点,要了解具体的选项及作用,看文章结尾的相关链接吧。
1. 设置正确的 DPI (Dot Per Inch)在 Linux 里,有很多地方都可以设置 DPI ,而且不同地方设置的 DPI 分别管理不同的地方(开始晕了)。不过,我可不管它哪里是管哪的,我只知道,我需要全部都使用正确的 DPI 不就行了,所以一个个的查看一下,再一个一个的改吧。 比较完整的各种显示器的 DPI 设置可以查看这里:Notebook LCD Display ComparisonDesktop LCD Display Comparison 以我的为例讲解,14.1“ 的显示器,分辨率为 1280 x 800 ,可以查出正确的 DPI 应该是107.1
引用
Size Resolution Density Pixel Size Ratio Pixels Gain14.1" 1280 x 800 107.1 ppi 0.2373 mm 16:10 0.98 MP 130%
A. 首先来查看一下 X Server 使用的 DPI ,一看,完全正确, Ubuntu 拷贝过来的 Xorg.conf 设置得还是八错的。
引用
# xdpyinfo | grep resolution resolution: 107x107 dots per inch
假如这个地方不正确,可以通过修改 Xorg.conf 来解决,方法如下:* 非常老实的拿一块尺子,把你的显示器长宽量下来,单位为毫米,例如我的 303×190,把它加到 /etc/X11/xorg.conf
引用
# vim /etc/X11/xorg.conf 加入Section "Monitor" ...... DisplaySize 303 190 # 1280x800 107dpi ......EndSection
* 什么,你真的拿尺子去了? 我败给你了,如果仔细的话,在上面 Notebook LCD Display Comparison 里是可以查到的。
引用
Size Diagonal Width Height Ratio Area Gain14.1" 35.81 cm 30.37 cm 18.98 cm 16:10 576 cm2 127%
* 记得修改好了重启一下 X ,然后执行下面的命令,看看是否生效
引用
# xdpyinfo | grep dimensionsdimensions: 1280x800 pixels (303x190 millimeters)# xdpyinfo | grep resolution resolution: 107x107 dots per inch
B.fontconfig/xft 也有一个 DPI 的设置,如果大家都做过美化的话,对 language-selector.conf /local.conf 等配置文件,再熟悉不过了,嗯,这个 DPI 就在这里设置。不过别问我这个设置对哪些地方有效,因为我…………也不清楚。这个的设置非常简单,在配置文件里面加上下面这么一段,就可以了。
引用
# vim /etc/fonts/local.conf 或 vim ~/.fonts.conf 加入
107
什么,你已经加入了? 其实,这个设置没多大用的,为什么?请看C C. dpi in gnome/xfce为什么说上面 B 所说的没多大用,是因为,现在的桌面环境都比较 BT 了,都提供接口来对 fontconfig/xft 程序设置 dpi ,就算你配置文件写好了,这里一改,配置文件还是瞎搞,所以还是图形化修改吧。gnome 的设置在 Settings - Fonts 里xfce 的设置在 Settings - User Interface Settings 里,自己填吧。在 gnome 下,立即就可以看到效果,在 xfce 里,需要重启一下 X 。查看 Xft.dpi 值的方法:
引用
# xrdb -query | grep Xft......Xft.antialias: 1Xft.dpi: 107.00000Xft.hinting: 1Xft.hintstyle: hintfullXft.rgba: rgb
顺便对对用 KDE 的兄弟说声抱歉了,没环境。
2. 配置文件偷懒开始了,粘贴了事。配置文件写得非常简单,去掉了一切可以去掉的东西,反正我的环境特简单,中文用 Microsoft YaHei (咳咳,什么什么?),英文用 Redhat 提供的开源字体 Liberation 。在 Ubuntu 里,把这个保存到 /usr/share/language-selector/fontconfig/zh_CN在 Gentoo 里,可以保存到 /etc/font/local.conf当然你也可以保存到 ~/.font.conf ,不过这样就只对本用户有效而已。 ---------------------- local.conf 12.06 更新 -----------------------------
引用
serif Liberation Serif Microsoft YaHei SimSun sans-serif Liberation Sans Microsoft YaHei Simsun
monospace Liberation Mono Microsoft YaHei Simsun Tahoma verdana Arial Times New Roman false 0 true false true
hintfull Microsoft YaHei 微软雅黑 true false true hintfull gba Liberation Sans
false false true hintfull none Liberation Mono false false true
hintfull none < /fontconfig>
---------------------- local.conf 12.06 更新 ----------------------------- 3. 系统设置。gnome : Fonts 里,把 AA、 hinting (Full) 、 Sub-pixel hinting (RGB) 选上xfce: User Interface Settings 里面把 AA、 hinting (Full) 、 Sub-pixel hinting (RGB) 全部选上4. 后续现在你会发现系统基本上已经显示得很完美了,除了 firefox ,firefox 有自己的一套管理方式,会跟你作对的。For Ubuntu:用 Ubuntu 可以用下面的方法关闭 firefox 默认使用的 Pango ,从而使用系统里的 fontconfig/xft 来控制
引用
# vi /etc/firefox/firefoxrcMOZ_DISABLE_PANGO=1
如果你在 Gentoo 里,你会发现明显还是不如在 Ubuntu 下漂亮,为什么呢?那是因为 Gentoo 官方源里的 Cairo 、libXft 两个基础库都不带次像素渲染,这个对字体的显示有着重要影响,所以我们必须将 Cairo 、libXft 两个基础库利用 overlay 进行升级。
# emerge -av layman# layman -L# layman -f -a xeffects # 需要 svn 支持
# echo 'source /usr/portage/local/layman/make.conf' >> /etc/make.conf# env-update && source /etc/profile# euse -E newspr # 关键就在 newspr 这个 flag,官方源里的 Cairo 、 libXft 是没有这个可选的 Flag , 所以需要 overlay 里的来进行升级# emerge -av1 cairo libXft
重启 X 后,再看看,雅黑字体不模糊过头了吧,清晰了吧,不会出现彩色光蕴的问题了吧。 OK,顺便上个图看看吧,Gentoo Xfce4 下。
相关链接:Linux 字体微调 - windows 效果版字体设置 (Arch Wiki)http://www.linuxsir.org/bbs/showthread.php?t=317779SubpixelHinting这个地方可以测试一下微软的字体http://www.microsoft.com/typography/web/fonts/default.htm
posted on
2015-11-18 22:59
静水流深,学而再思
阅读(4339)
评论(0)
编辑
收藏
举报
|