Skip navigation.

flying in the way of my own...

Posts tagged with "Arch Linux"

[在笔记本上用Arch Linux]Suspend to Disk(休眠)

,

其实我的笔记本电脑一直都在当作台式机用,不太拿着出去,也不太用电池(不过这倒是个好处,我的本本是dell的,听说爆炸的那几个dell的笔记本都是带着电池插电源的),也就没大有移动电脑所需要的那些功能了,比如降频什么的,一直都在一些论坛上看到待机,休眠之类的也觉得没大有必要,后来一想要是开着电脑去吃饭什么的把电脑休眠比关掉更好,就想从linux里弄出这个功能。linux里面休眠不是直接就很好地支持的,虽然kernel里面有这个功能,但是不大稳定,现在就说说具体怎么去弄。

首先,上面说了,kernel的休眠功能不强,所以要是想很好地使用,就要打补丁。有一个很好的补丁叫做software suspend,在Arch Linux可以不用自己编译内核就用打好了这个补丁的内核了,因为有一个包含了很多流行的补丁的kernel26beyond(不过现在beyond的suspend to disk好像有些问题),还有一个只打上了software suspend补丁的kernel26suspend2,都可以直接拿来用。

然后安装hibernate-script,并配置一下,具体可以参考http://wiki.archlinux.org/index.php/Suspend_to_Disk

最后修改一下/boot/grub/menu.lst,在打好software suspend补丁的那个kernel的项后面加上resume2=swap:/dev/hdXY,其中/dev/hdXY是swap分区。

这样按说就没大有问题了,直接用hibernate来休眠,开电源选择之前休眠的那个内核启动就可以恢复,不过在arch里面还有些问题要注意:

Arch Linux的内核都使用initcpio,所以要多作一些工作来让休眠正常使用,编缉/etc/mkinitcpio.conf文件,把里面的hook中加上一个resume,注意,这个resume应该加在ide和filesystem的后面,在休眠后恢复时系统先加载完硬盘和文件系统的模块以后再恢复,否则就会出现BIG FAT WARNING !!,也就没法正常恢复了。这样应该就没有问题了。我就因为这个问题找了好多资料搞定suspend to disk.

Linux下LCD屏幕字体显示的优化

, , ,

之前都是用去掉anti alias的字体来显示英文的,前几天看邮件的时候突然发现用AA的字体看这些比较长的东西眼睛会舒服得多,因此有个想法把字体的风格改成这种柔和的而不是以前那种尖锐的。经过了几天的修改和测试,已经有了一个比较不错的字体显示,总结一下经验:
这篇文章对linux下字体的设置有了一个比较全面的讲解,而且总结的比较好,不过对于LCD的屏幕,我想补充两点。

1.就是屏幕解析度的设置(dpi)。Windows默认的dpi(Dots per inch)是96,因此也有人喜欢设置成这个样子的,但是这不一定就是某个特定屏幕的解析度。因为每个液晶屏幕都有一个Native Resolution,也就是说在这个分辨率下最清晰,而它也有它固定的物理尺寸。举个例子,比如一个LCD显示器的Native Resolution是1024x768,而他的长度是286mm(1 inch = 25.4 mm),它横向的dpi就是 1024*25.4/286=90 dpi,所以应该设置成90而不是96.而如果dpi设置的不对的话,字体可能显示的不是很清晰,尤其是gtk的程序。因此这是需要注意的。具体应该这样设置:先找一把尺子量一量自己屏幕的长和宽(我不是在开玩笑),比如是286mm 214mm,在xorg.conf文件里面加入一句:
 DisplaySize 286 214
,重启x以后x会自动计算dpi。然后计算一下正确的dpi是什么,假设是90,在/etc/fonts/local.conf里面添加一句
<match target="pattern">
  <edit name="dpi" mode="assign"><double>90</double></edit>
 </match>

就可以了。

2.sub-pixel亚像素微调。这里要说一点LCD显示器的原理。它的每一个像素其实是由三个亚像素(小一点的像素)组成的,一个红的,一个绿的,一个蓝的。它们一起够成了我们平时所看到的像素。因此如果以亚像素为单位,其实把我们的屏幕横向的分辨率扩大了三倍,因此在抗锯齿的时候可以做得更细致,而在多出一两个亚像素时我们的眼睛是分辨不出它们的颜色来的,因为它们还是按照rgb(或bgr)的顺序来排列的。所以使用亚像素微调会带来更好的显示效果。此时面临的一个问题就是,LCD屏幕制造的时候,不同种类屏幕rgb三种亚像素的排列顺序是不同的,也就是说,有的是rgb的顺序,有的是bgr的顺序,所以亚像素微调还要设置一下顺序。我们怎么才能知道自己屏幕是什么样的顺序呢?可以用这篇文章中的两幅图片来测试一下:




第一张图片是用rgb的顺序进行的亚像素微调,而第二张是bgr,如果你发现某一幅图片很清晰,线条比较平滑而另一张看上去非常糟,那么你的屏幕的rgb顺序就跟是清晰的那张图片一样。知道了这个以后,就只是简单的在~/.fonts.conf或者/etc/local.conf里面加上下面这一段(假设是rgb)就OK了:

<match target="font" >
  <edit mode="assign" name="rgba" >
   <const>rgb</const>
  </edit>
 </match>


本文参考了一下文章:
How Sub-Pixel Font Rendering Works
HOWTO Xorg and Fonts

搞定了输入法在gtk程序里不能输入的问题

不知道从什么时候起,输入法就不能在gtk的程序里面输入了,包括gvim呀,gaim呀,firefox呀之类的,一直都没有弄好,今天想用gaim,不能输入怎么聊天呀,就又查了查,记得以前见到这个问题大概和/etc/gtk-2.0/gtk.immodules有关,今天又google了一下,发现好像在arch里面安装scim的时候会自动更新这个文件,所以查看了一下abs里面的scim.install,有一段
# arg 1:  the new package version
post_install() {
  echo -n "updating gtk.immodules... "
  /usr/bin/gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
  echo "done."
}

由此可知在安装scim的时候会执行
/usr/bin/gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules

来更新gtk.immodules文件,所以就手动执行了一下,问题解决了。

I've been unable to input Chinese in gtk programs for a long time,including gvim,gaim,firefox etc.
I wanted to use gaim to chat just now,but I can't communicate with my friends without input method.So I decided to try solving the problem again.I remembered that this is because that there's something wrong with the file /etc/gtk-2.0/gtk.immodules.So I used google to search for some useful material.
From google I knew that when scim is being installed,the file gtk.immodule is updated.So I checked the scim.install in the directory /var/abs/extra/x11/scim and find something like this
# arg 1:  the new package version
post_install() {
  echo -n "updating gtk.immodules... "
  /usr/bin/gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
  echo "done."
}

So I realized that this line
/usr/bin/gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules

is executed to update the gtk.immodules.So I did this manually and problem was solved.

lsmod和Arch Linux的速度的优化

前几天从LinuxSir.Org看到一篇关于arch linux优化的贴子,但是一直没有自己去试试。今天晚上试了试,第一种方法效果还不错,于是就想再试试第二种。不过我也不知道哪些是不需要的模块,就lsmod了一下,看到有一列是一排数字,大部分是0和1,于是我猜想,可能能从这里做点文章。
于是就搜了一下lsmod命令输出的内容各列都是做什么用的。从这里看到,各列依次是
name(名称),size(大小),use count(被使用的数量),list of referring modules(被什么使用)

因此我认为,可以把第三列为0的用不到的放到blacklist里,现在就去试试。

在KDE自动启动fcitx

, , , ...

以前用debian的时候很方便,直接在/etc/X11/Xsession.d/里面建一个启动脚本就行了,不过用了arch以后发现arch放在里面不管用。
知道如果想让某个程序随KDE自动启动可以放到~/.kde/Autostart里面,不过以前放在里面的脚本都会自动用文本编辑器打开,而不是运行。但是弄成个类似于桌面快捷方式的就行了。不过那样的话,一开始就会有一个图标跳来跳去。今天在网上看到,可以直接把脚本放到这个目录里面直接运行。我仔细看了一下他写的那个文件,是在最前面加上了#!/bin/bash来表示这是一个bash脚本文件,我也就终于明白了为什么我以前的那个不行了。这样写了一个新的启动脚本放到~/.kde/Autostart里面就好了。

November 2009
S M T W T F S
October 2009December 2009
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30