Linux 桌面可以这样开启 N 卡的 FSAA

Linux 里开启 FSAA 的事情在“给 GtkGLExt 打上支持 OpenGL 多重采样的补丁”一文中略略提了一句。

虽然可以通过对 GtkGLExt 库打上多重采样补丁来解决 gtk + opengl 的抗锯齿问题,但是对于那些不知道如何进行源码编译安装以及如何为源码打补丁的用户而言,远水难解近渴。

事实上,如果你是 N 卡用户,如果你安装了 nvidia-settings 程序(最好是有图形界面),那么开启 FSAA 就变的很简单了,只需按照“给 GtkGLExt 打上支持 OpenGL 多重采样的补丁”文中所介绍的 FSAA 设置界面启用 FSAA 覆盖应用程序设置(Override Application Settings)模式,并将 nvidia-settings 的设置保存为 ~/.nvidia-setting-rc 文件。

然后在 ~/.xinitrc 之类的文件中添加:

nvidia-settings -l

这样,每当重启桌面时,nvidia-settings 便会自动开启 FSAA。

按 Nvidia 的官方文档中的记载,可以通过设定 __GL_FSAA_MODE 这一环境变量来开启 FSAA。我测试的结果是不能用。

gnome 的未来假想敌

在 gnome planet 上看到 gnome shell 的开发者 Owen Taylor 写的一篇文章『为 gnome 设定目标』。文章的大意是反思了以往所设定的那些实际的目标和不切实际的目标。比如,当初要让爱好自由的人摆脱 MS Windows 的控制,这就是一个实际的目标。不实际的目标是那个 10x10 计划,因为这个计划没有指出 gnome 开发者应该去做什么。

Owen Taylor 提出了他的想法:我们没必要事事都做好,我们值得去做的是去为那些我们所接触到的人创造一些伟大的东西。这意味着我们要满足他们的需求,也意味着我们要直接影响他们的体验。但是要实现这个目标,仅仅去开发一些可以被他人复用的组件是远远不够的,而仅仅是从当前的用户体验中割出一小块作为目标,这也是远远不够的。例如,如果仅仅是在 web 浏览器的外围做点工作,方便用户浏览 Facebook 网站,对于这个,我们可做的事情实在太少了。我们需要为用户所做的是要超越用户对传统计算机和本地的应用程序的体验。通过我们的努力,让用户放弃 google 搜索、google 文档和 google 邮件以及基于 Facebook 的社交等网络服务,他们会因此而获得很多的益处。因为你的数据被他人控制,而控制你数据的人无论为你做什么,你都要唯其是从,这样的事情显然是不好的。但是我们要做的不能只是去告诫那些粗心的用户以及明智的用户要将自己的数据保留在自己手里,我们要做的是给予用户这样一种体验:有足够的控制权同时又可以获得与现在一样好或者更好的体验

我的英文不是很好,所能看出的大致是这个意思。感兴趣的还是去看原文吧。

Owen Taylor 的观点,让我联想起 RMS 早年间对『云计算』的看法,他指出:『互联网自己本身并不重要,重要的是使用它的用户。互联网对于许多活动来说非常有用,即便这些活动并不能说是某种问题。但有一样事情你不应该使用互联网来做:将你的计算转移到你控制的机器之外。换句话说,云计算是不应该被运用于互联网的东西』。

我一开始听闻这样的说法之时,感觉是很难接受的。因为每天都是在免费享用 google  的各种网络服务,我已经忘记了自由是个什么东东。就像当年我在盗版 Windows 软件里享受的时候,也不知道自由是个什么东西。一旦有人又一次指出我们实际上是不自由的,实际上是被人家所控制的时候,我又一次迷惑了 :)

Linux 桌面举步维艰的根源在于没有足够的生产力

不懂事的时候,写过一些指点江山的文字。现在只能是在夜深人静的时候悄没声的从网络上某个角落找到它们,自我聊赖一下年轻时的幼稚。但是,在我反省自己的不幼稚之时,却发现 Linux 桌面的幼稚。

继续阅读

evince 的变化

这次, 虽然 gnome 2.32 将 gnome 3.0 的票跳到了明年春天,但是它的发布还是比较吸引我的注意的。对我而言,此次 gnome 最大的变化在于 evince。

阅读全文

luatex 字体加载

前两篇文章自以为是的介绍了如何构建一个较小的 luatex plain 包以及传统的 TeX 字体支持,所属内容皆为 luatex 自 pdftex 那里所继承的传统的一面,而未触及 luatex 的特性。这篇文章尝试分析 TrueType、OpenType (CID) 字体在 luatex 的加载过程,然后介绍如何使用 Hans 所写的 luatex 字体加载脚本以产生可支持 TrueType、OpenType (CID) 字体加载的 Plain TeX 格式。

继续阅读

让 luatex plain 输出 pdf

在“luatex plain 从零构建” 一文中,讲述了如何建立一个什么也干不了的 luatex plain 包。本文在 luatex plain 基础结构上,重新生成一份 Plain TeX 格式文件,使之可以支持 pdf 文件的输出,并添加一些西文字体。这样,我们便可以使用 luatex plain 进行一些西文文档的排版了。

继续阅读

luatex plain 从零构建

本文介绍了如何从一个 tex 引擎开始,逐步构建一个什么也做不了的 TeX “发行版”。这个 TeX 发行版,本身没有什么实际的意义,但是通过动手构建它,可以从一个侧面了解一个 TeX 系统的主要构成。

继续阅读

luatex 引擎 + plain TeX 格式

本来觉得没必要知道如何去折腾这个,但是最近 luoyi 同学问了这个,就发一下。喜欢折腾的就去折腾……

继续阅读

gentoo + gnome overlay -> gnome-2.31.90

gnome 2.31.90 是 gentoo gnome overlay 里的版本号,已经很接近 2.32 了。虽然 gnome 项目将 3.0 的发布推迟到明年的春天,不过我还是津津于当前版本号增加 0.2。

若要安装 gnome overlay 中的 gnome 2.31.90,需要对以下软件包解除屏蔽(至少在我这里是这样):

### gnome 2.32
gnome-base/gnome-desktop
gnome-base/nautilus
gnome-extra/yelp
gnome-base/gnome-settings-daemon
gnome-base/libgnomekbd
gnome-extra/yelp-xsl
gnome-base/gconf
dev-libs/glib
x11-libs/gtk+
x11-libs/gdk-pixbuf
x11-libs/cairo
net-libs/webkit-gtk
dev-python/pygobject
gnome-base/librsvg

随后,我还要再试验一下 gnome-shell。

gnome overlay 中的 gnome-shell,目前版本是 2.31.5。在我这里,需要在 /etc/portage/profile/package.use.mask 文件中写入以下解除 USE 屏蔽的包:

media-libs/clutter -introspection
x11-wm/mutter -introspection -gtk3
dev-libs/json-glib -introspection
x11-libs/gdk-pixbuf -introspection
gnome-base/gconf    -introspection
x11-libs/pango -introspection
x11-libs/gtk+ -introspection
dev-libs/atk -introspection
media-libs/libcanberra -gtk3
dev-libs/libgee -introspection

解除了上述包的 USE 屏蔽之后,需要在 /etc/portage/package.use 中开启对应的 USE。

除此以外,要注意的是 libgee 0.5.3 版本可能会编译不过去,是因它的 GIR 文件出错导致的,安装 0.5.2 版本即可。

MkIV 会错误的吃掉中文字符与半角标点之间的空白

给 Hans 发了邮件,不过他没搭理我。尴尬……

Hi Hans,

In scrp-cjk.lua, the function "process" can eat some glue node between
CJK glyphs. But the following glue nodes between CJK glyph and
half_width_open/half_width_<wbr/>close glyphs should not be eaten.

For example:

\starttext
中国 (Chinese) 的未来
\stoptext

Its output need stay the same.

Therefore I think the function "process" need add some codes for the
test of half_width_open/half_width_<wbr/>close glyphs. This is a patch for
it.

--- /opt/context/tex/texmf-context/tex/context/base/scrp-cjk.lua        2010-08-20
01:35:20.000000000 +0800
+++ /home/garfileo/scrp-cjk.lua 2010-08-30 17:08:31.000000000 +0800
@@ -553,7 +553,8 @@
                        if not pcjk                 or not ncjk
                            or pcjk == "korean"     or ncjk == "korean"
                            or pcjk == "other"      or ncjk == "other"
-                            or pcjk == "jamo_final" or ncjk ==
"jamo_initial" then
+                            or pcjk == "jamo_final" or ncjk == "jamo_initial"
+                           or pcjk == "half_width_close" or ncjk == "half_width_open" then
                            previous = "start"
                        else -- if head ~= first then
                            remove_node(head,first,true)