-
回归musca... - [开源之旅]
2011年04月30日
我之前曾说dwm的扩展性比musca的要好很多,但自从我发现dwm不支持wmctrl,而musca可以通过"musca -c"进行外部调用后,就发现这句话说反了,起码对于像我这些不会hack底层的C代码的菜鸟来说,musca的扩展性比dwm要好不少,而且musca的手动平铺(manual tiling)也比dwm的动态平铺(dynamic tiling)要实用不少。
尽管尽管musca的作者已经停止了对其的开发,不过就目前而言,真的找不到有比它更适合我的窗口管理器。
-
没错,我总算成功地把开机时间压到10秒内了。 我主要参考了以下两篇wiki:https://wiki.archlinux.org/index.php/Improve_Boot_Performancehttps://wiki.archlinux.org/index.php/Maximizing_Performance我的经验(只是对于我的笔记本而言,可作参考)有:1.对于/etc/inittab的修改只需把"rm:2345:wait:/etc/rc.multi"这行的wait改成once,连其它也修改的话反而会使开机更慢;2.精简编译内核对于开机速度的改善并不明显,嫌麻烦的话可以跳过这一步;3.在Maximizing Performance一文中的"Compressing /usr"部分所介绍的把/usr压缩成squashfs的方法也可减少2-3秒的开机时间;4.尽管rc.sysinit占开机过程中占了不少时间,里面也看似有很多不必要的东西(例如lvm,加密设备等),但建议还是不要对其进行精简了,因为精简的效果往往不明显,而且一不小心就会导致无法正常开机,不建议花时间在修改这文件上。你要是真想对这一部分进行优化的话,你可以干脆把系统自带的initscripts换成更快的systemd来启动,但要是这么做的话就要修改一大堆地方来与之配合,而且会把arch的一大特色弄没了,所以我不建议这么做;5.如果嫌安装bootchart来统计开机时间麻烦的话,可以采用以下方式来更简单精确地(精确至0.01秒,而bootchart只能精确到秒)记录下开机时间:在.xinitrc文件的末尾处的启动wm(窗口管理器)命令前添加一行:[ -e /tmp/boot_time ] || cat /proc/uptime | cut -d ' ' -f 1 > /tmp/boot_time这命令会将系统在bootloader引导后至启动wm前的那一瞬间(所以不包含wm的启动时间,但基本上可以忽略)所经历的时间(uptime)记录到/tmp/boot_time,执行cat /tmp/boot_time就可查看本次的开机时间了。 -
大概地扫完blfs…… - [开源之旅]
2010年12月29日
其实blfs的内容也不多,它并不会详细地介绍怎么去用软件,只是告诉你怎么把它装上。有实际学习意义的也许不过是头几章,或者是某个章节的开头部分。
感觉lfs是个境界,通过盲目的复制粘贴手册上的命令来将系统拼凑好是毫无意义的,这跟直接装个发行版有啥区别?只是花了更多的时间与精力(当然还少不了电费)罢了。
在我看来,最快捷高效的安装lfs的方式不是alfs,而是最小化地装个arch,然后执行pacman -Rscn pacman(如果还嫌装多了东西的话,可以把你不想要的东西卸载后再让pacman自杀),当然这样装下来的软件版本肯定会跟lfs手册上的有一定差别,但变通一下应该不成问题吧?这方法感觉理论上行得通,但没实践过。
根据我的理解,要把lfs/blfs弄得得心应手,先要搞懂一个最基本的系统由什么构成(其实我现在也说不清楚),然后才能根据自己的需要在基本系统上加上自己所要用的东西,实现自己想要的功能。当然,要做到这个就得了解怎么去按照自己的实际来定制编译,你要清楚什么是库,怎么去解决依赖问题,进而有能力在编译出错时还能通过查看错误信息及相关资料解决问题。另外,在软件编译安装后的设置工作也是必不可少的(不过这应该不算是lfs的范畴)。
最后再补充一句,其实我什么都不懂,以上内容纯粹是泛泛而谈,大家不妨当作笑话来看。 -
把《鸟哥的liunx私房菜》的基础部分看完了。原本想接着看关于建站的部分,都老是看不起劲,可能是因为感觉这方面目前对我而言不怎么实用的缘故吧。
再加上之前在阅读完《unix 编程艺术》后才发现众unix(准确来说应该是unix-like的bsd,下文就用bsd吧)有着相对于linux而言更正宗的血统,在口碑上也比 linux要稳定(网上听说的),加上之前从arch的wiki中得知其简洁到极致的系统初始化(init)方式(只需一个rc.conf就能搞掂所有相关的设置)是借鉴于bsd而来的,所以bsd就给了我一个既稳定而又简洁的美好印象(我以前总觉得它很落后)。
于是,我决定走近bsd的世界中看看。
我遇到的第一个问题就是选择了解哪个bsd好呢?freebsd好?netbsd好?还是openbsd好呢?
最后,经过我近一天的对比它们在网上各自的评价后,最终选择这在三大bsd中关注度最低(根据distrowatch)的netbsd,原因就是它是这三个bsd中最简洁的,而且有着比ports更好的包管理系统pkgsrc。(后来发现还是选freebsd比较好,原因是其手册有中文版,所以应该比较容易上手)
接着,我就开始阅读netbsd(下面简称nb吧)的手册(handbook),我发现无论是每个bsd都有一本很详尽(最详细的当数freebsd)的官方手册,手把手地去教你如何使用它,这点跟linux很不一样。有了手册就大大地减小了学习的难度了,由于我只是想了解一下bsd,并没有用其来取代arch的打算,所以只是在手机上对其手册进行阅读(全英文的,看起来很费劲!),看了大概有三四天吧,看到第四部分(关于建站的)就没看下去了,而且也将其的包管理pkgsrc的说明书看了一大部分。虽说只是纸上谈兵,没有实践安装过,而且看得很粗(看外语的话很难看得仔细),但多多少少也对之前几乎陌生的bsd有了个初步的认识,在这里给大家分享一下吧。
首先在包管理上(以nb的pkgsrc为例,其它的应该也差不多),一种是通过直接使用预编译了的包(也就是pkgsrc中的pkg);另一种是通过系统提供的方式来管理源代码,实现自定义编译安装(也就是pkgsrc中的src)。尽管与arch的类似,但在使用上估计自动化的程度要低很多。在bsd上貌似不可能像arch那样pacman -Syu一个命令就把整个系统更新一次(不过写个脚本来实现应该没问题),理论上还是可以像arch那样rolling release的,只是比较烦琐。
另外在系统的结构上也跟linux的有很大的区别,linux主要就是一个内核然后搭上众多的程序,其内核是通用的,而bsd则分为基础系统(由内核跟底层程序构成)跟另外安装的包,而对于不同的bsd其基础系统是不一样的。在这点上linux更为灵活,但可能磨合程度不如bsd的高,我还是比较喜欢linux这种模式(这估计是linux有众多发行版的主要原因吧)。
不得不提的是bsd的init模式,果然是如arch那样基本上一个rc.conf就把初始化的相关设置搞掂,但是,我发现nb的rc.conf设置跟arch的还是有所差别的,我可以很肯定地说,arch的rc.conf绝对比nb(前面提到nb已经是最简洁的了)的rc.conf简洁明了,arch的daemon设置只需要一行,但nb的却要对每个daemon都写上一行如foo=YES(而freebsd的写法是:foo_enable='YES')的东东,在这点上arch的rc.conf绝对是青出于蓝。
另外,bsd与linux的区别还有:更为宽松的bsd协议、对于新硬件的支持方面相对不足及不一样的文件系统(可以使用传说中的zfs)……
(以上内容毫无权威性,请痛批谬误之处)总的来说,bsd从系统的构成而言确实要比linux的可靠,但要说使用上的简洁方便嘛,arch在这点上比号称最简洁的netbsd都要优秀。对于桌面应用,感觉还是linux要出色一些。
-
dwm来了!musca,再见了! - [开源之旅]
2010年12月13日
没错,总算要把用了一年多的musca换了(其实上上星期(今天星期一)就把dwm装上了,只是没把dwm配置好),换成了dwm。
上星期自己学了下shell编程,这个周末回来为dwm专门写了个输出系统状态的小脚本,可以把conky扔掉了。
上上周就将parcellite用anamnesis代替了,后者可以在命令行下实现类似前者的保留剪切板的功能,也就无需为此专门弄个托盘,可以把trayer扔掉了。
dwm已自带当前窗口的标题显示,可以把tint2扔掉了。
原本还想直接使用dwm的状态栏(statusbar),打上statuscolors的补丁来显示系统状态从而把dzen也扔掉,但后来发现无法对dwm的statusbar中的内容进行定位(所显示的东西都靠到最右边),没有dzen那么灵活,所以最终还是把dzen留下了。(不过后来还是把dzen2扔掉了,定位的问题通过手动加空格解决)
再说说对dwm的感觉吧。
它给我的第一印象就是极其极其小巧,安装包大小只有17k,跟xmonad, stumpwm等百兆级的wm(主要是依赖太庞大)差了不知多少个重量级。
在深入了解后就发现它的扩展性极佳,可以通过打上各种补丁(patch)来使其更加强大,从类似awesome, xmonad等等众多tiling wm也是基于它而诞生就可印证这一点。
总而言之,dwm是个小巧而又强大的wm。
再说说我所配置的dwm吧,首先我用的是在这里 所获取的dwm-db(作者居然叫Dan Brown!),这dwm-db提供了xft字体的支持(但好像并非打上了pango补丁),并打上了statuscolors的补丁,还实现了只有在该tag里有窗口才进行显示的功能(找不到类似的补丁),还提供了个名为statusbar.sh的用来显示系统状态的脚本(我也从中借鉴了一下),其相对于官方原版的修改还算是比较实用的。我在这dwm-db另外打上了两个补丁,一个叫shorttitle,可以用来限制dwm状态栏中当前窗口标题显示的长度,而且当标题长度小于最大值时还会自动调整来适应标题的显示,可以用来节省statusbar的空间;另外一个叫scratchpad,用来实现类似xmonad的scratchpad的功能,可以设置一组键位绑定一个程序(例如urxvt),当按下该键位时先会检查该程序是否已经运行,如果没有运行就启动一个新的,如果运行了就将该程序“拉”到当前画面中,很实用吧?
话就说这么多吧,接下来当然是上图时间。
注:惊奇地发现大巴的标签数不再限制在5个以内了!
-
该换了musca啦…… - [开源之旅]
2010年12月04日
在用上了tmux后那musca的手动分割就变得没那么重要了(因为tmux可以分屏),我现在更需要带有tag功能的wm,是dynamic tiling还是manual tiling也没所谓了,选来选去,最后选择了曾经就心仪过的极其小巧的dwm……
弄了一个早上,算是把基本的设置都弄好了……估计下星期(因为要回学校上课)就能正式投入使用了。
-
为亚运开幕截幅图…… - [轻描淡写]
2010年11月12日
留念留念……
今天是10年11月12日哦!真是个特别的日子……
-
另走前再发张最新(其实也有一段时间了)的截图吧……改了conky部分的配色,跟时间的显示(改回24时制了)。
-
回校前的最后一幅截图…… - [开源之旅]
2010年10月06日
改动了不少细节,顺便秀秀tmux。
-
精雕细琢后的新arch... - [开源之旅]
2010年08月22日
依然是arch+musca+conky+tint2的组合,这次主要针对笔记本进行了一番修改。
-
成功解决指纹过热…… - [开源之旅]
2010年08月19日
刚才不甘心让我小黑的指纹识别沦为装饰,搜索了一番,果然找到了解决其发热过大的方法。
原文为:http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger#Fix_for_the_fingerprint_reader_getting_too_hot
值得注意的是,对于arch而言,将命令添加到/etc/sysfs.conf是无效的,不过添加到/etc/rc.local中就可以了。
-
正式安装arch一周年! - [开源之旅]
2009年08月23日
这是一年前的截图:
这是目前的截图:
-
用arch差不多1年了…… - [开源之旅]
2009年08月14日
刚才亲手弄了个字符版的arch logo,特此纪念……
-
还是主要改动了底部的状态栏……
添加了cpu实时的频率与温度(这对于awesome来说可不容易哦,需要用到io.popen)……
-
主要修改了颜色与底部的状态栏……
-
fcitx-svn... - [开源之旅]
2009年07月20日
总算更新到3.6.0了……
建议大家使用aur里的fcitx-svn的PKGBUILD安装fcitx,值得注意的是,如需要打补丁的,请自行把PKGBUILD里面的相关行反注释掉……
-
arch blue... - [开源之旅]
2009年07月19日
是指arch logo的主色调,其值为"#1994d1"……
我已将其融入awesome之中……
-
我写下——
今天……是个值得纪念的日子,通过近三周的适应与调试,总算把Ubuntu设置得比较满意,我也终于有时间去踏上这条差不多一年之前就计划踏足的学习Python之路!
而现在,我写下——
今天……是个值得纪念的日子,通过近一年的适应与调试,总算把arch设置得比较满意,我也终于有时间去踏上这条差不多两年之前就计划踏足的学习python之路!
-
当然还是arch+awesome的经典组合……
其实主要是想测试一下外联flickr上的图片……
-
把fcitx 3.6弄好了…… - [开源之旅]
2009年07月11日
能发现的改动貌似只是多了个很鸡肋的托盘(tray),估计内部的代码优化了不少……
顺便转一个fcitx 3.6的PKGBUILD(当然这只能在arch下用):
pkgname=fcitx
pkgver=3.6
pkgrel=1
pkgdesc="Free Chinese Input Toy of X - Input Method Server for X window system (XIM)"
arch=("i686" "x86_64")
license=('GPL')
url="http://www.fcitx.org"
depends=('libxft' 'libxpm')
source=($url/download/$pkgname-$pkgver.tar.bz2)
md5sums=('fe2091474392413408991c4d677e135a')
build() {
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
make DESTDIR=$pkgdir install
}







