Actually,simplicity is not simple
2010-01-28Life
none
没有评论

一不小心干的那点事!

今天在看一网友的blog时终于低不住诱惑一个不小心在注册域名的战役中阵亡了我钱包中的240多元干将。

所以想早日显示阵亡干将的价值,就迅速的通过SSH连接到我的空间中将所有文件copy到一私有目录中,再跑到空间管理平台中将现有域名删除,就在这之后杯具发生了。一不小心发现那私有目录没了。也就是说blog上的所有数据被我删掉了。

后去找空间的管理员,说备份得自己在空间管理平台中操作,空间没有定期的自动备份,这下我发现最一不小心的是我从没做过备份!^_^/////

最近网上流行的一句话:“由于某些不可抗力导致XXX“,现在现换域名的时刻,也加上这句吧,赶个时髦。于某些不可抗力导致目前使用了三年的域名([http://studynote.cn])有停止解析的危险,为了防止大家无法访问,blog将启用新域名http://nootn.com/blog,现有域名在停止解析前也将继续使用。感谢我自己的关心与支持!^_^////,blog没人访问也只有自己感谢自己了。

Archlinux安装记录(2009-12-02更新)

系统分区及大小设置

sda1 /boot 126M
sda5 /swap 512M
sda6 /home 1000M
sda7 / 剩余所有

对于thinkpad T43的安装可参看:http://wiki.archlinux.org/index.php/IBM_ThinkPad_T42

使用LXDE桌面可参看:http://wiki.archlinux.org/index.php/LXDE_(简体中文)

pacman -Syu
pacman -S pacman

加入个快点的源,在/etc/pacman.d/mirrorlist中加入

Server = http://mirrors.sohu.com/archlinux/$repo/os/i686
Server = http://mirror.lupaworld.com/archlinux/$repo/os/i686
Server = http://mirrors.163.com/archlinux/$repo/os/i686
Server = http://mirror.bjtu.edu.cn/archlinux/$repo/os/i686
Server = http://mir.archlinux.fr/$repo/os/i686

使用wget下载软件包,在/etc/pacman.conf里去掉前面的#,也就是把整行改成以下的样子,这样pacman下载包就比较快了。

XferCommand = /usr/bin/wget –passive-ftp -c -O %o %u

电源管理、cpu调节等功能的安装:

pacman -S acpid cpufrequtils

/etc/rc.conf改为如下样子,

MODULES=(acpi-cpufreq cpufreq_ondemand cpufreq_powersave)

修改/etc/conf.d/cpufreq文件,设置CPU的最高及最低频率

min_freq=”800MHz”
max_freq=”1.87GHz”

/etc/rc.conf的DAEMONS中加入cpufreq的守护进程,以后可以使用cpufreq-info查看CPU的频率。

DAEMONS={syslogng hal cpufreq ……}

安装 laptop-mode-tools 软件包,编辑文件/etc/laptop-mode/laptop-mode.conf默认设置已经能够满足需要了,只要把CONTROL_开头的打开即可,里面包含了硬盘,cpu等多方面的设置,能极大延长电池的使用时间。

使sudo自动补全命令:

sudo pacman -S bash-completion
source /etc/bash_completion

无线网卡以及显卡驱动:

pacman -S ipw2200-fw
pacman -Syu xf86-video-ati

安装VIM、集中控制的解压缩软件以及各解码器:

pacman -S vim gvim ctags
pacman -S file-roller rar p7zip

屏蔽IPv6模块(现在我都懒得操作了):

IPv6模块在启动时加载。有许多程序在检测到IPv6模块存在后会加载它。实际上,它们是在加载ipv6的别名 ── net-pf-10。将下面的内容加入到/etc/modprobe.conf中可以屏蔽ipv6的自动加载,但仍让你可以在需要的时候可以手工加载。

# disable autoload of ipv6
alias net-pf-10 off

pacman -S hal dbus 并在/etc/rc.conf文件中的DAEMONS中加入hal以及wicd,hal会自动打开dbus

wicd管理网络:

pacman -S wicd

/etc/rc.conf中把INTERFACES=(eth0 eth1 ……) 改成 INTERFACES=(!ech0 !ech1 ……),把DAEMONS中的network前面也加上!,及改成DAEMONS=(!network)

字体安装:

pacman -S wqy-bitmapfont wqy-zenhei ttf-arphic-uming ttf-arphic-ukai ttf-bitstream-vera

X安装及设置

pacman -S xorg
Xorg -configure #生成xorg.conf.new文件
mv /root/xorg.conf.new /etc/X11/xorg.conf #放到X11目录去

以下配置参考:http://bbs.chinaunix.net/viewthread.php?tid=1365366

gtf 1400 1050 60 #指定目标分辨率和刷新率,注意空格
结果会显示类似这样两行(不同的显示器数值不一样,不能照抄):
1400*1050_75.00 ……
Modeline "1400x1050_75.00" 155.85 1400 1496 1648 1896 1050 1051 1054 1096 -HSync +Vsync

要做的是手工填入 xorg.conf:

# vim /etc/X11/xorg.conf
把 “Modeline …… ”整行加到 Section "Monitor";
把 DefaultDepth 24 加入到Section "Screen"中,找到
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
在这函数中加入 Modes "1400x1050_75.00"

看清楚,两行都要加入,缺一不可!这样显示器就不需要依赖于任何桌面软件的设置就能正常工作了。

安装xfce4(在忧郁用这还是gnome了)

pacman -S xfce4

/root/.xinitrc中加入中文支持,没办法,在控制台下所有中文都是小方块,只好在这里加入对中文的支持了。/etc/rc.conf文件里用的还是en_US.utf8,这样在控制台下还是使用英文。

export LC_CTYPE="zh_CN.utf8"
export LANG="zh_CN.UTF-8"
exec xfce4-session

slim登陆管理器安装

配置参考:http://www.songzi.org/blog/article.asp?id=536

pacman -Sy slim slim-themes

vim /etc/rc.conf,在DAEMONS中加入slim

vim /etc/inittab
注释掉下面一行:
id:3:initdefault:
去掉规下面一行前面的#号:
#id:5:initdefault:
注释掉下面一行:
x:5:respawn:/usr/bin/xdm -nodaemon
去掉规下面一行前面的#号:
#x:5:respawn:/usr/bin/slim >& /dev/null
vim /boot/grub/menu.lst
找到类似
# (0) Arch Linux Multi-user
title Arch Linux Multi-user
root (hd0,0)
kernel /vmlinuz26 root=/dev/sda3 ro 3
initrd /kernel26.img
将kernel /vmlinuz26 root=/dev/sda3 ro 3
改为kernel /vmlinuz26 root=/dev/sda3 ro 5

添加用户

useradd -mG users,audio,optical,storage,hal,dbus,wheel -s /bin/bash asins
passwd asins

安装Firefox浏览器(我习惯使用Firefox了,呵呵)

pacman -S firefox firefox-i18n flashplugin

截图软件 scrot 安装(之前因为找截图软件吃了点苦头,所以记录下)

pacman -S scrot

一般用法,就一般而言,使用 scrot 可以抓取整个桌面、某个指定的窗口、以及选择的矩形区域。

  1. 抓取桌面:scrot desktop.png,该命令将当前的整个桌面抓取下来,并保存为 desktop.png 文件。可以在当前的目录中找到此图像文件。
  2. 抓取窗口:scrot -bs window.png,选项 b 使 scrot 在抓取窗口时一同将外边框抓取下来,而 s 选项则让用户选择所要抓取的是何窗口。
  3. 抓取区域:scrot -s rectangle.png,在执行此命令后,使用鼠标拖曳的矩形区域将被 scrot 抓取下来。

高级使用,对于普通的抓取使用 scrot 的基础便足以应付了。但在某些特殊情况之下,使用 scrot 抓取图像需要讲究一些技巧。

  1. 延时抓取:scrot -cd 10 menu.png,此命令中的 d 选项用于延时抓取图像,其后的 10 代表延时 10 秒;前面的选项 c 显示倒计时。在抓取菜单或是命令提示时,该技巧将充分展示其魔力。
  2. 生成缩图:scrot -t 50% thumb.png,这个命令在抓取图像的同时生成该图像的缩略图。选项 t 将打开此功能,其后的 50% 为原图的缩放百分比。
  3. 更改品质:scrot -q 70 quality.jpg,此命令中的 q 选项用于更改所抓图像的品质,其数值介于 1-100 之间,默认为 75。数值越大,意味着图像品质越高;同时,图像的压缩率也就越低,占用空间越大。
  4. 操作抓图:scrot action.png -e 'mv $f ~/images/',该命令将抓取的图像移动到 ~/images/ 目录。显然,操作图像的功能由 e 选项开启,其中的 $f 代表原图的路径/文件名。

配置Trackpoint的中键滚轮功能:

以下配置参考:http://www.linux-wiki.cn/index.php/配置Trackpoint的中键滚轮功能

首先,创建文件/etc/hal/fdi/policy/mouse-wheel.fdi,内容为:

[xml]
<?xml version="1.0" encoding="UTF-8"?>
<match key="info.product" string="TPPS/2 IBM TrackPoint">
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.ZAxsisMapping" type="string">4 5</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
</match>

注意: 2009年12月底的Archlinux中hal的设备名有变化,请将TPPS/2 IBM TrackPoint改为PS/2 Generic Mouse。如果不能名称,可使用lshal | grep input.product判断。

完成更改后,重新启动计算机(或重启hal服务,并注销、重新登录)。如果一切正常,现在你就可以使用“红点”了。

yaourt 安装

要安装yaourt先得在/etc/pacman.conf文件中加入:

[archlinuxfr]
Server = http://repo.archlinux.fr/i686

然后 pacman -S yaourt

输入法ibus安装

这得到AUR找,使用先前安装的yaourt很方便了,我使用五笔的,但安装得让我郁闷,有个包没办法安装,^_^!!!

如果只用拼音只要安装 ibus ibus-pinyin 两个包就可以了;

使用五笔就麻烦点得安装 ibus ibus-table ibus-table-extraphrase ibus-table-wubi这几个包,依赖关系yaourt会帮我们搞定。

自动挂载移动设置

$ sudo vim /etc/hal/fdi/policy/preferences.fdi,可加入一些很有用的规则,如自动挂载NTFS文件系统,自动挂载可移动设备,性能优化,U盘的中文名支持等:

[xml]
<?xml version="1.0" encoding="UTF-8"?> 
<deviceinfo version="0.2">

    <device>
        <match key="volume.fstype" string="ntfs">
            <append key="volume.mount.valid_options" type="strlist">dmask=000</append>
            <append key="volume.mount.valid_options" type="strlist">fmask=111</append>
        </match>
    </device>

    <device>
    <!-- Use UTF-8 charset for vfat -->
        <match key="volume.fstype" string="vfat">
        <merge key="volume.policy.mount_option.iocharset=utf8" type="bool">true</merge>
    </match>
   </device>

 <device>
   <match key="storage.hotpluggable" bool="false">
     <match key="storage.removable" bool="false">
       <merge key="storage.automount_enabled_hint" type="bool">false</merge>
     </match>
   </match>
 </device>

 <device> 
   <match key="block.is_volume" bool="true">
     <match key="volume.size" compare_lt="8000000000">
       <match key="@block.storage_device:storage.hotpluggable" bool="true">
         <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
         <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
       </match>
       <match key="@block.storage_device:storage.removable" bool="true">
         <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
         <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
       </match>
     </match>
     <match key="volume.size" compare_ge="8000000000">
       <match key="@block.storage_device:storage.hotpluggable" bool="true">
         <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
         <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
       </match>
       <match key="@block.storage_device:storage.removable" bool="true">
         <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
         <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
       </match>
     </match>
   </match>
 </device>

</deviceinfo>

注意,必须事先安装好ntfs-3g安装包,才能成功挂载NTFS分区。最后:

$ sudo /etc/rc.d/hal restart

即可正常使用HAL支持了,同时移动设备上的中文名(其实其它语言也可以)也可以得到支持。

网卡名重启电脑后会乱的问题解决办法

我发出的问题贴:http://linuxsir.org/bbs/thread356265.html

解决办法:到/etc/udev/rules.d/目录下将75-persistent-net-generator.rules.optional文件重新命名为75-persistent-net-generator.rules重启后,你会发现在/etc/udev/rules.d/下系统生成了70-persistent-net.rules 文件。这样基本上问题就解决了。

Thinkpad 热键的支持(我这里没有成功)

/etc/acpi/handler.sh文件的开头几行改成如下:

[code]
case "$1" in
    ibm/hotkey)
    case "$2" in
        HKEY)
        case "$4" in
            00001002) # Fn + F2 -> Lock screen 使用xscreensaver锁定屏幕
            xscreensaver-command -lock
            ;;
            00000080 00001003) # Fn + F3 -> swithing display off 关闭显示屏幕
            xset dpms force off
            ;;
            00001004) # Fn + F4 -> Suspend to RAM 挂起
            /usr/sbin/pm-suspend
            ;;
#            00001005) # Switch Bluetooth
#            if [ "$(grep "status.*enabled" /proc/acpi/ibm/bluetooth)" ]; then
#                echo "disable" > /proc/acpi/ibm/bluetooth
#            else
#                echo "enable" > /proc/acpi/ibm/bluetooth
#            fi
#            ;;
            00001007) # Toggle external display
            if [ "$(xrandr -q | grep "VGA connected")" ]; then
                if [ "$(xrandr -q | grep "VGA connected [0-9]")" ]; then
                    xrandr --output VGA --off
                else
                    xrandr --output VGA --auto
                fi
            else
                xrandr --output VGA --off
            fi
            ;;
#            00001008) # Toggle Trackpoint/Touchpad
#            ;;
#            00001009) # Eject from dock
#            ;;
            0000100c) # Fn + F12 -> Hibernate 休眠
            /usr/sbin/pm-hibernate
            ;;
#            00001014) # Toggle zoom
#            ;;
#            00001018) # ThinkVantage button
#            ;;
        esac
        ;;
    esac
    ;;
    button/power)

说明,在我的archlinux中没有起作用,但命令单独运行没有问题,应该是监控的问题,先放在这里吧!

2009-10-04Develop
none
1 条评论

inline/inline-block间隙到底是谁的bug

在这看到篇文章《Firefox Bug: inline/inline-block的间隙》。

作者说这是Firefox、chrome、opera等浏览器的bug,当然是带着嘲笑的语气说的。 但这问题到底是谁的bug呢?inline/inline-block的作用是将素显示为行内元素,虽然是做为行内元素那就得有行内元素的特点。

举个例子,A标签是行内元素大家都知道,当两个A标签靠近放在一行上时会发现标签之间没有间隙,这和两块级元素靠近放在一行上并对其使用display:inline;或inline-block;的效果一样; 好,再想想两个靠近的A标签之间如果有空格或不在同一行上会是什么效果,不难发现两A标签之间奇迹般的有了间隙。

回想到这再回头看看本文开头所说的inline/inline-block的作用,相信大家对到底是谁的bug心中有数了。

所以我认为对使用了display:inline/inline-block;后的元素如果之间有别的字符,那么应该是有一定间隙的。

那如何解决IE与其它浏览器之间不同表现的问题呢?在《Firefox Bug: inline/inline-block的间隙》的留言中王传业给出了解决方法,

给外层容器定义letter-spacing=-4px,再对内部的inline-block的元素设置letter-spacing=0

原理很简单,利用了字间距这属性,让空格之类的字符间距为字符本身的亮度的负值,这样效果就出来了。

不过我测试后发现外层容器字间距设置为-6px更正确些,可看Demo(我只是在《Firefox Bug: inline/inline-block的间隙》给出的Demo加上些改进,人懒!)

用设置字体大小为0的方法不成,因为webkit内核的浏览器不支持这样设置

感悟!人生感悟!

还在学生时代时就想有自己的网站、blog,空间域名都买了,但在做模板时改了很久,更是反了很多次功,到现在也没有一个像样的模板。

Wordpress我一直都没用,模板看了很多,就没一个让我心动的,所以到现在也没有个自己的blog,不能说没有,是没开几天就关了,问题不是在模板,呵呵。

简单其实不简单(Actually,simplicity is not simple)

最近我感悟出来的,真的!有时简单真的很难做到。

写到这不知自己写了些什么,呵呵,算了,就这样吧!