打造媲美苹果的Ubuntu桌面:字体,中文,效果

系统字体配置、中文显示和输入法问题
sandorf
帖子: 16
注册时间: 2006-12-21 18:05

打造媲美苹果的Ubuntu桌面:字体,中文,效果

#1

帖子 sandorf » 2007-08-19 3:06

*本文使用了版权字体,如果有违版规,我会修改或改发其他地方

这几天装了Ubunutu 7.04 Feisty Fawn,因为很多美化桌面的方案都对Feisty有很好的支持。对英文和中文字体进行了一些配置后,又用Compiz Fusion加上了一些效果。定制的原则是,尽量少进行系统级的设置,尽量用简单的步骤,把配置文件放在用户目录下。这样以后修改起来,或者重装系统,都很方便。我是使用的英文界面,同时很好地支持中文。先看看效果,类似苹果的OS X:

1. 英文字体

先说英文,如果你对宋体字库包含的英文字体至今没有什么怨言,也不知道Cleartype是什么,那么说明你对字体不甚敏感,可以高兴地跳过这一节。Linux桌面的可用性始终受到字体的负面影响,我无法找到满意的免费字体,所以只好使用有版权的字体。窗口,菜单,对话框的字体使用的都是苹果的Lucida Grande,这里(http://www.osx-e.com/downloads/misc/macfonts.html)有下载。另外Arial, Tahoma, Times New Roman都是显示网页很重要的字体,可以考虑安装msttcorefonts包,或者从Windows中拷贝。

弄到需要添加的字体,直接放在~/.fonts/目录下就行了。可以打开systems->preferences->fonts,把除了等宽字体以外的字体调整成Lucida Grande,显示效果肯定很糟糕。我们需要把autohinting打开:

在你的用户目录下添加一个~/.fonts.conf文件:

代码: 全选

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
 <test compare="more" name="pixelsize" qual="any">
  <double>12</double>
 </test>
 <edit name="autohint" mode="assign" >
  <bool>true</bool>
 </edit>
</match>
</fontconfig>
重新登录,字体显示应该好了不少。不过我们还没完成,如果仔细观察,小字体的显示还是颇为模糊,这是由于小字体显示时Freetype的autohinting效果不好,Windows和Mac OS中这部分字体的显示都需要借助专业字体中人工添加的hinting信息,使用的是一个叫Bytecode interpretator的东东。不巧的是,苹果在这个领域拥有几个专利,也许会涉及到侵权问题,因此Freetype的作者David Turner虽然实现了这个功能,但是在使用上有所保留。不过他提供了几个libcairo,libxft,libfreetype包的patch,如果你加上patch重新编译这几个包,就能打开这个功能,使小字体在LCD上的显示最优。关于什么是hinting之类的话题,这里(http://avi.alkalay.net/linux/docs/font- ... html#intro)有篇详解。

幸运的是现在有人提供了加上patch的这几个包的repository,我们可以很方便地安装:

编辑你的/etc/apt/sources.list文件加上这两行

代码: 全选

deb http://www.telemail.fi/mlind/ubuntu feisty fonts
deb-src http://www.telemail.fi/mlind/ubuntu feisty fonts
然后在命令行下,下载gnp key:

代码: 全选

wget http://www.telemail.fi/mlind/ubuntu/937215FF.gpg -O- | sudo apt-key add -
安装

代码: 全选

sudo aptitude update
sudo aptitude install libfreetype6 libcairo2 libxft2
最后动一下字体设置,我用的是(Autohinting->Always->No bitmaps)

代码: 全选

sudo dpkg-reconfigure fontconfig-config
sudo dpkg-reconfigure fontconfig
退出重新登录,字体是不是清晰了很多?注意你浏览器地址栏里的“www“,斜线没有了毛边。

2007-12-13 UPDATE: 目前Ubuntu 7.10 Gutsy Gibbon已经默认使用了这种针对LCD的subpixel rendering,个人感觉效果比以前使用这些打了补丁的package略逊一些,但是效果已经很不错了,在字体的清晰和字型的美观上达到了比较好的平衡。我喜欢light hinting+ subpixel rendering,字体虽然略模糊,但是字形很好,总的效果类似OSX的显示。
参见: http://ubuntuforums.org/showthread.php?t=555964

2. 中文字体

英文字体没问题,来看中文字体。微软给Vista提供的“微软雅黑“加入了很好的hinting信息,在autohinting下工作的很好。所以如果你往~/.fonts/目录下放入了这个字体,可以在~/.fonts.conf文件里添这么几句:

代码: 全选

<alias>
<family>serif</family>
<prefer>
<family>Bitstream Vera Serif</family>
<family>DejaVu Serif</family>
<family>Microsoft YaHei</family>
<family>SimSun</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Bitstream Vera Sans</family>
<family>DejaVu Sans</family>
<family>Microsoft YaHei</family>
<family>SimSun</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Bitstream Vera Sans Mono</family>
<family>DejaVu Sans Mono</family>
<family>Microsoft YaHei</family>
<family>SimSun</family>
</prefer>
</alias> 
把雅黑放到宋体的前面,系统会优先选择宋体。初装的系统上出现中文字体大小不一的问题,那是因为系统先选择了日文字体,导致混乱地使用了好几种字体来显示一行文字。用这个方法同时也解决了这个问题。

另外,对于雅黑以外的中文字体,使用平滑的效果在小号字上效果往往不佳。我们可以把小号字的平滑关闭(Windows XP就是这么做的),在~/.fonts.conf里再添一段:

代码: 全选

<match target="font" >
<test name="family" compare="contains" >
<string>Song</string>
<string>Sun</string>
<string>Kai</string>
<string>Ming</string>
<string>宋体</string>
<string>宋体-18030</string>
<string>黑体</string>
<string>新宋体</string>
<string>新宋体-18030</string>
<string>楷体_GB2312</string>
<string>仿宋_GB2312</string>
<string>隶体</string>
<string>SimSun</string>
<string>SimSun-18030</string>:
<string>SimHei</string>
<string>NSimSun</string>
<string>NSimSun-18030</string>
<string>KaiTi_GB2312</string>
<string>FangSong_GB2312</string>
<string>LiSu</string>
</test>
<edit name="globaladvance">
<bool>false</bool>
</edit>
<edit name="spacing">
<int>0</int>:
</edit>
<edit name="hinting">
<bool>true</bool>
</edit>
<edit name="autohint">
<bool>true</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<test name="pixelsize" compare="more_eq">
<int>12</int>
</test>
<test name="pixelsize" compare="less_eq">
<int>18</int>
</test>
<edit name="antialias" mode="assign" >
<bool>false</bool>
</edit>
</match> 
3. Gnome桌面主题

这里下载(http://www.gnome-look.org/content/show. ... tent=56577)苹果的控件主题,在systems->preferences->themes中导入。这里(http://www.gnome-look.org/content/show. ... HPSESSID=6)还有一些不错的图标主题,可以同样导入。不过现在窗口的标题栏和边框还不是苹果风格的,和控件不搭配,这个等我们安装了Compiz Fusion之后再说。

4. 添加Compiz Fusion的桌面效果

虽然花哨的效果本身只能让朋友们惊讶一下而已。但我觉得Compiz Fusion最大的好处在于改善桌面系统的手感。手感这玩意,说不清,道不尽,需要精心雕琢,自由软件往往欠缺的就是这个。3D卡的功能,一定得启用出来,个人感觉桌面的响应提高了很多。

显卡驱动:我用的ati x300的显卡,如果没有安装驱动,建议看这里
https://help.ubuntu.com/community/BinaryDriverHowto/ATI
Feisty安装ati官方驱动很方便。

安装XGL

代码: 全选

sudo apt-get install xserver-xgl
为xgl建一个session:
添加一个/usr/local/bin/startxgl.sh,里面写上

代码: 全选

#!/bin/sh
Xgl :1 -fullscreen -ac -accel xvbuffer -accel glxbuffer &
DISPLAY=:1
cookie="$(xauth -i nextract - :0 | cut -d ' ' -f 9)"
xauth -i add :1 . "$cookie"
dbus-launch --exit-with-session gnome-session
然后建一个/etc/X11/sessions目录,里面添加xgl.desktop文件,内容是

代码: 全选

[Desktop Entry]
Encoding=UTF-8
Name=Xgl
Exec=/usr/local/bin/startxgl.sh
Icon=
Type=Application
然后重新登录,记得登录时点左下角选xgl session,如果没有问题,我们开始安装Compiz Fusion。

添加Compiz Fusion的源:

代码: 全选

deb http://download.tuxfamily.org/3v1deb feisty eyecandy
deb-src http://download.tuxfamily.org/3v1deb feisty eyecandy
下载key,安装Compiz Fusion:

代码: 全选

wget http://download.tuxfamily.org/3v1deb/DD800CD9.gpg -O- | sudo apt-key add -
sudo apt-get update
sudo aptitude upgrade
sudo aptitude remove compiz-core desktop-effects
sudo aptitude install compiz
sudo aptitude install compizconfig-settings-manager
sudo aptitude install libcompizconfig-backend-gconf
sudo aptitude install compiz-fusion-plugins-extra compiz-fusion-plugins-main compiz-fusion-plugins-unsupported
然后运行

代码: 全选

compiz --replace
就可以启动compiz了,到system->preferences->conpizconfig settings manager里面选你喜欢的桌面效果。

我们希望每次启动时,让compiz自动运行,到system->preferences->sessions->startup programs里点add,把compiz --restart添进去。

现在,苹果风格的窗口边框还没有加上,下载(http://www.taimila.com/files/DreamAccur ... me.emerald)这个主题。由于这是一个emerald主题,我们需要先安装emerald才能使用它,有了compiz,安装emerald很方便:

代码: 全选

sudo apt-get install emerald
启动emerald

代码: 全选

emerald --replace
然后到system->preferences->emerald theme manager里面,导入下载的主题,选中他,就应用上了,如果没有的话,再运行一次emerald --replace。

最后,把emerald --replace也添加到session startup programs里面。

这样,我们每次登录,就得到一个字体美观,酷似Mac OS的界面了。

注:

本文关于配置苹果的Gnome主题,主要参考
http://www.taimila.com/?q=node/11,这里还有其他的苹果桌面特性的配置方法。
关于中文的配置,参考
about18638.html&sid=28378805246aa7c7935cc8be9d112441
安装compiz fusion的部分可参考
http://ubuntuforums.org/showthread.php?t=485346
附件
desktop1680by1050.png
song_chinese.png
yahei_chinese.png
上次由 sandorf 在 2007-12-13 17:42,总共编辑 1 次。
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
联系:

#2

帖子 zhuqin_83 » 2007-08-19 3:44

搞那么大的字号,不好看才怪。
autohint很好么?我这里从来都很糊。
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
sandorf
帖子: 16
注册时间: 2006-12-21 18:05

#3

帖子 sandorf » 2007-08-19 3:58

我的显示器1680*1050的,所以在我这儿看起来字不大
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
联系:

#4

帖子 zhuqin_83 » 2007-08-19 4:07

。。。
不要歧视小屏幕用户阿,有多少人用20'以上LCD的阿,不过你的字体算是非正常的大了,就算是大屏幕也好。
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
jackallen
帖子: 441
注册时间: 2007-01-28 0:51

#5

帖子 jackallen » 2007-08-19 11:12

.fonts.conf文件的最后内容是不是那3段的直接复制粘贴就好了?
sandorf
帖子: 16
注册时间: 2006-12-21 18:05

#6

帖子 sandorf » 2007-08-19 12:52

zhuqin_83 写了:。。。
不要歧视小屏幕用户阿,有多少人用20'以上LCD的阿,不过你的字体算是非正常的大了,就算是大屏幕也好。
哦,我明白了,我用的是笔记本的LCD,只有15'',所以这种分辨率下我必须把字体调大(112 dot per inch),要不然看不清了。要是20''以上的LCD,就不必了。
jackallen 写了:.fonts.conf文件的最后内容是不是那3段的直接复制粘贴就好了?
对,注意最后一个</fontconfig>的位置。
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
联系:

#7

帖子 zhuqin_83 » 2007-08-19 13:01

在高清屏下什么字体都好看的,那些边缘的东西都很精细,字体调大了也没什么。
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
sandorf
帖子: 16
注册时间: 2006-12-21 18:05

#8

帖子 sandorf » 2007-08-19 13:13

zhuqin_83 写了:在高清屏下什么字体都好看的,那些边缘的东西都很精细,字体调大了也没什么。
截一个90dpi的做参考,英文还不错,中文有点模糊
附件
desktop1680by1050_90dpi.png
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
联系:

#9

帖子 zhuqin_83 » 2007-08-19 14:03

英文好看是正常的,一共才几个字母,再弄不好看就别混了。
中文最好看的还是圆体。
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
头像
hanhelia
帖子: 80
注册时间: 2007-05-11 11:46

#10

帖子 hanhelia » 2007-08-20 11:25

新手问题


~/.fonts/目录
在哪里的?

~/是什么意思
Ubuntu & Windows XP SP2 & Windows 7
AMD Athlon64 2800+
MSI K8T Neo-V v2.0
Colorful Radeon 9550
Kingston DDR400 512M
Maxtor 80G
MAG B72
sandorf
帖子: 16
注册时间: 2006-12-21 18:05

#11

帖子 sandorf » 2007-08-21 13:23

hanhelia 写了:新手问题


~/.fonts/目录
在哪里的?

~/是什么意思
~就是你自己的用户目录
royix
帖子: 5
注册时间: 2007-05-22 15:04

#12

帖子 royix » 2007-08-26 0:32

终于找到字体的完美解决方案了!
什么时候ubuntu 8有这么好的字体风格就好了。

将这文章美化后的效果贴出来给大家对比, 我是1024x768分辨率,ibm r50的本子
附件
1.png
1.png (9.08 KiB) 查看 16226 次
美化后,字体黑度有所增加,看起来舒服一点
美化后,字体黑度有所增加,看起来舒服一点
头像
雄鸡起舞
帖子: 241
注册时间: 2007-07-24 22:23

#13

帖子 雄鸡起舞 » 2007-09-02 18:15

我的英文、中文都好了,数字还是原样 :oops:
Linux 2.6.25-ARCH #1 SMP PREEMPT Mon Jul 14 15:25:51 UTC 2008 i686 GenuineIntel GNU/Linux
_tsaichin
帖子: 174
注册时间: 2005-12-06 15:49

#14

帖子 _tsaichin » 2007-09-16 21:48

12楼的tahoma hint过度,字体已经变形。看数字"3"上大下小,正常tahoma的"3"应该是上小下大
开源软件是计算机工业最宝贵的财富。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#15

帖子 BigSnake.NET » 2007-09-16 22:21

标题栏高光是败笔
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复