xjpvictor's Blog

通关密语 dcb2bd9e08c1fb8a8534bca6aec600f6

Subscribe to RSS feed

Sticky post

Blog关闭

Blog已搬家。由于MyOpera blog不能很好的阻挡垃圾评论,所以将评论也给关闭。
新的内容请转至新blog,http://xjpvictor.info

Blog 转移

把blog转到了blogger,因为blogger对picasa web相册支持比较好,我一直都用picasa的,比较方便。另一个原因是blogger支持在侧栏放自定义的html,甚至支持js,我还没见过第二个免费blog网站允许自定义js。相比之下myopera的自定义项目少了些。当然myopera作为blog的功能还是挺全面的。 放地址:http://xjpvictor.blogspot.com 临走前放段代码,可以用于导出myopera的blog,再发送到blogger的邮箱发布。

 1 #!/bin/bash
 2 
 3 imdir=`echo $1 | sed 's/\/$//'`
 4 find $imdir \! -type d > ./_list
 5 lst=./_list
 6 let n=`wc -l $lst | awk '{print $1}'`
 7 let i=1
 8 
 9 output=./_tmp
10 while [ $i -le $n ]
11 do
12   input=`awk 'NR=='$i' {print $0}' $lst`
13   let i=$i+1
14   
15   subject=`grep '

' $input | sed -e 's/

//

' -e 's/<\/h2>//'`
16   
17   grep '
' $input > $output
18   lin=`grep -n '
' $input | awk -F: '{print $1}'`
19   let divnum=`awk 'NR=='$lin' {print $0}' $input | awk 'BEGIN { RS="<div"} END {print NR}'`-1
20   let edivnum=`awk 'NR=='$lin' {print $0}' $input | awk 'BEGIN { RS=""} END {print NR}'`-1
21   
22   while [ $divnum != $edivnum ]
23   do
24     let lin=$lin+1
25     awk 'NR=='$lin' {print $0}' $input >> $output
26     let divnum=$divnum+`awk 'NR=='$lin' {print $0}' $input | awk 'BEGIN { RS="<div"} END {print NR}'`-1
27     let edivnum=$edivnum+`awk 'NR=='$lin' {print $0}' $input | awk 'BEGIN { RS=""} END {print NR}'`-1
28   done
29   
30   sed -i -e '1s/
//
' -e '$s/<\/div>$//' $output
31   mutt -s "$subject" blogger mail to post email address < "$output"
32 done
33 
34 rm ./_list ./_tmp
35 
36 exit 0

用法是先用wget把my.opera.com/username/blog里的内容都下载下来,图片之类的不用存了。然后执行
./exportMyOpera directory
directory就是存blog文件的那个文件夹。但是里面不能有文件名带问号的文件,比如有某篇blog回复的话下载下来就会产生这种文件,要事先删除,这也就意味着回复是无法导入到blogger里。 同样,发布时间和tag也都无法导入,就成了一次在blogger发布几十甚至上百篇blog了。 因为我的myopera上有些没有导出的意义,而且篇数有点多,所以我就没有都导入到blogger中,不过经实验,这个脚本是有效的,至于一次发送上百封邮件会不会被blogger判断为spam就不确定了。 再次感叹一下,linux写点简单小脚本真的太方便了,不像windows,可以说什么命令都不能用。

GConf清理

, ,

GConf这个东西其实很讨厌,尤其是电脑用了一段时间以后,里面的项目会越来越多,卸载软件并不会把GConf中的信息删除,所以加载GConf就更慢。所以用LinuxTOY上的方法,写个脚本。

#!/bin/bash

rm /etc/gconf/gconf.xml.defaults/*

export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
find /usr/share/gconf/schemas -name "*.schemas" | xargs \
/usr/bin/gconftool-2 --makefile-install-rule > /dev/null

chmod 755 /etc/gconf/gconf.xml.system

PID=`pidof gconfd-2`
if [ ! -z "${PID}" ]; then
kill ${PID}
fi


Archlinux适用,其他发行版不知道,应该也可以,但是需要一些修改吧。需要用root执行。效果还不错。

Opera amule支持

,

Linux上使用Opera和amule,如果要直接点击ed2k链接就能在amule中添加任务的话,需要在opera中设置,Preferences-Advanced-Programs,添加的protocol是ed2k,选择open with other application,调用程序名ed2k,不能写amule,否则无法添加任务。使用时需要先打开amule再点链接ed2k添加任务。

N97mini GPS

今天折腾了一下N97mini的GPS。如果不开AGPS的话基本上连不上卫星,所以要开一下。但是开过一次AGPS定位以后就不用再开AGPS了,直接用内置的GPS就好。比较诡异。但是挺好用的。定位算是准确了,误差在10米以内。不过这样做好像过了一段时间以后就又连不上卫星了。我是过了一晚上以后就连不上了。
不过诺基亚的手机现在真的很搓,经常死机,程序经常莫名其妙的就打不开,电池寿命也短,稍微折腾一下就要两天一充,而且晚上还关机的。明年换手机。

pcmanfm加载u盘

,

pcmanfm在不知道哪次升级以后就不能打开u盘了,总是提示Not Authorized。在ArchWiki上找到解决方法。

Then edit the file /usr/share/polkit-1/actions/org.freedesktop.devicekit.disks.policy Or if that file is empty edit this file /usr/share/polkit-1/actions/org.freedesktop.udisks.policy and replace all instances of
<allow_any>no</allow_any>

with
<allow_any>yes</allow_any>

(Credits to karabaja4 -- http://forum.lxde.org/viewtopic.php?t=1422&f=22)

dropbox & pcmanfm

,

dropbox貌似只支持nautilus,于是用其他file manager的话单击dropbox的icon就只能用浏览器打开文件夹。要用其他的file manager就需要做个假的nautilus。
新建/usr/bin/nautilus,写入

#!/bin/bash
exec pcmanfm $@
exit 0


pcmanfm可以换成任意的file manager
然后
sudo chmod +x /usr/bin/nautilus

Hotot Opera

, ,

因为没用DE,想让Hotot自动调用Opera打开链接需要用xdg-open,在~/.config/openbox/autostart.sh中加入
export BROWSER=opera

网上有人说可以加在~/.bashrc中,但因为hotot并没有用到bash,所以是不行的,要在系统启动项中添加。

百度手机拼音

发现百度的手机拼音还不错。对使用物理键盘支持比较好。QQ拼音在用物理键盘的时候简直没法用。而搜狗支持虽然好,但是英文输入选词很乱,而且没法记忆词序。选来选去还是百度吧。虽然这个公司比较让人无语。但是个人认为目前国内的商业软件公司没有一个好的。

N97mini 滑动解锁和中文输入

N97mini使用侧面解锁键解锁,但是那个小小的滑动键总觉得很脆弱,不知道什么时候就挂了,所以搞个滑动解锁软件,这样可以在按了目录键以后通过屏幕上滑动解锁,不需要在折磨解锁键了。比较了几个滑动解锁软件,有ovi里的nUnlock,Slide Unlock,Mykeylock,发现nUnlock在ovi中的免费版不能开机自动启动,而收费版用了感觉比较费资源,机子有点发热,而且中途自动死机两次,虽然不确定是不是nUnlock的原因。Slide Unlock很不错,但是却会在开机时候提示安装UCweb和UCdesk,据说是一个UC推广模块,而我不想装这两个软件,所以还是卸载。Mykeylock制订性很不错,占用资源也少,支持各种解锁模式,还是不错的。
S60v5系统自带的中文输入总是不那么给力,比如不能整句输入,字词准确度不高,不能动态调整候选词次序,所以安装第三方输入法。试用了劲手,搜狗和QQ。劲手的界面不怎么喜欢,而且使用不是很习惯。搜狗不错,但是输入英文的时候选词准确率低得离谱,而且不能动态调整次序,每次都要重新翻页选词,很不方便。QQ我是很犹豫的,因为对疼逊和它旗下的软件一直不怎么有好感,不过这个QQ手机拼音输入法还是不错,虽然坚持了疼逊一贯的beta作风。界面,选词准确率,动态调整候选词做的都很不错,而英文输入方面也算方便。九宫格键盘可以直接进行单词联想输入,而长按住一个键的时候会把这个键位上的数字和几个字母,包括大小写显示出来,这时候手指左右移动就能选择那个字母或数字完成输入。资源占用方面感觉一般,不是很费也不是很省,至少手机不会发热就是。

UCweb & skyfire & Twitter

前几天看到广告说UC浏览器可以看flash,于是装了一个试用。结果发现不能登录twitter,youtube之流。估计是要走国内服务器压缩吧,所以号称节约流量。天朝真河蟹。
skyfire在ovi中新加坡搜不到,官网下载的无法安装,不知道为什么。
试用了下Tweets60,很卡,但其他方面倒是很好,自动连接网络更新,然后自动断开,基本功能都全,而且免费,如果后续版本能不卡就完美了。而Gravity很流畅,但是好像不会自动断开网络,没有仔细研究。而且是收费的,不便宜,15新币。网上找破解版,一定要最新的,不然不支持OAuth,会出现error: wrong user/password的提示,不能登录。不过,有条件还是支持正版。

Netbook Archlinux (续)

, , ,

接上篇

gtk主题,Aurora Leopard Metaled,下载。但是菜单上下边缘太宽,在gtkrc中找到
style "theme-menu"
把ythickness改为0。
------------------------------------我是分割线1号------------------------------------
桌面壁纸和图标用pcmanfm就行。在~/.config/openbox/autostart.sh中加入
pcmanfm --desktop &
就好,设置使用
pcmanfm --desktop-pref
更改壁纸直接
pcmanfm --set-wallpaper=<image file>
但是pcmanfm的壁纸如果用拉伸,会改变图片比例,不能保持比例放大直到全屏。
------------------------------------我是分割线2号------------------------------------
openbox菜单的主题,包括背景色,可以在./.theme/xx/openbox-3/themerc中改,xx为主题所在的目录。我用的是New Wave OB,下载。只是为了配gtk主题,在themerc中更改了颜色。背景颜色可以设置为渐变的,有初始色和最终色可以设置。
------------------------------------我是分割线3号------------------------------------
openbox的menu用obmenu设置,但是如果需要在一个条目下执行两个命令,需要手动改~/.config/openbox/menu.xml,在同一个item中写两个
<action name="Execute"><execute>xx</execute></action>
xx为执行的命令。
而快捷键和鼠标键需要手动改~/.config/openbox/rc.xml,同样,如果在同一个快捷键需要执行两个命令,就在同一个keybind中写两个
<action name="Execute"><command>xx</command></action>
xx为执行的命令。
------------------------------------我是分割线4号------------------------------------
tint2如果作为dock,则不能透明,要透明必须作为普通窗口。这样无法使用快捷键直接调出或隐藏。可以自己写脚本,先kill掉再开启,就能调出,而隐藏是自动的,只是这样会导致systray中某些图标丢失,不完善。
------------------------------------我是分割线5号------------------------------------
电池的systray可以用batterymon,而音量用volwheel,音量的on screen display可以用bbs.archlinux中的pvol,一个python脚本,与快捷键绑定后使用快捷键调整音量大小时会在屏幕中央显示音量大小的指示条。pvol下载。把文件中
appicon = os.path.expanduser("~/.icons/my-icons/volume-control.png")
改为自己的图标地址就好。这个脚本需要用到snd_pcm_oss这个module,开机的时候需要加载。
------------------------------------我是分割线6号------------------------------------
使用ibus需要在~/.config/openbox/autostart.sh中加入

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -d -x &


而在~/.xprofile中加入是无效的。
------------------------------------我是分割线7号------------------------------------
u盘和移动硬盘的加载需要在~/.xinitrc中加入
exec ck-launch-session dbus-launch openbox-session

移除移动硬盘的时候pcmanfm只能umount,而不能断开电源,如果这时候拔了数据线就相当于直接断电了,虽然umount了之后不会损失数据,但是对移动硬盘本身还是不好,所以用
gksu udisks --detach /dev/sdb
断开电源,其中/dev/sdb是移动硬盘
------------------------------------我是分割线8号------------------------------------
pcmanfm的图标以及桌面图标主题需要建立~/.gtkrc-2.0.mine,写入
gtk-icon-theme-name="xx"
xx为图标主题名称
鼠标主题建立~/.Xdefaults,写入
Xcursor.theme: xx
xx为鼠标主题名称


ps.附上我的一些配置文件,作为备份。
autostart.sh,menu.xml,rc.xml,.fonts.conf,default.tint2rc,NewWave4OB.tar.gz,.gtkrc-2.0.mine,.Xdefaults,leopard.tar.gz

vimperator for Opera

vimperator本来是firefox上的,挺有用的,尤其是那个hit a hint,很方便,不用动鼠标去点链接,很快。
Blazeix做了一个for Opera版本的,也不错。只是一个快捷键的文件而已。而其中hit a hint的命令是

Go to page, "javascript:var bgcolor = '#FF0';var color = '#000';var hintlist = new Array();var hintedlinks = new Array();var map = new Array();var mapindex = 0;var choice = '';var keycodemapping = {'48':'0','49':'1','50':'2','51':'3','52':'4','53':'5','54':'6','55':'7','56':'8','57':'9','13':'Enter','27':'Esc','8':'Bkspc'};var originalTitle = document.title;function drawHints(){document.addEventListener('keypress',interpretKeyStroke,true);document.title+=' - ';var allLinks = document.getElementsByTagName('a');var viewportStart = window.pageYOffset - 5;var viewportEnd = viewportStart + window.innerHeight + 10;for (var i=0;i<allLinks.length; i++){linkYcoord = getAbsoluteY(allLinks);if(linkYcoord > viewportStart && linkYcoord < viewportEnd && allLinks.href != '') {hintedlinks.push(allLinks);}}for (var i = 0;i<hintedlinks.length; i++){var hint = document.createElement('span');hintlist.push(hint);hint.style.backgroundColor=bgcolor;hint.style.color=color;hint.style.position='absolute';hint.innerHTML = mapindex;map[mapindex]=hintedlinks.href;mapindex++;hintedlinks.appendChild(hint,hintedlinks);}}function getAbsoluteY(element){var y = 0;while (element) {y += element.offsetTop;element = element.offsetParent;}return y;}function removeHints(){for (var i=0; i<hintedlinks.length; i++){hintedlinks.removeChild(hintlist,hintedlinks);}choice='';document.title=originalTitle;document.removeEventListener('keypress',interpretKeyStroke,true);delete map;delete hintlist;delete hintedlinks;}function getURLchoice(){return (map[choice]==undefined) ? False : map[choice];}function interpretKeyStroke(e){e.preventDefault(); var key=keycodemapping[(typeof event!='undefined')?window.event.keyCode:e.keyCode];if(key=='Enter'){location.href=getURLchoice();removeHints();}else if(key=='Esc'){removeHints();}else if(key=='Bkspc'){choice=choice.slice(0,-1);document.title=document.title.slice(0,-1);}else if(key == undefined){removeHints();}else{choice+=key;document.title+=key;if((''+choice).length>=(''+mapindex).length){location.href=getURLchoice();removeHints();}}}drawHints();"


添加快捷键就行了。不过只能在当前页面打开链接,有点不是很方便,没用过vimperator,不知道原版是不是也是这样。

audacious wma

,

今天打开n久没用的audacious,发现不能放wma了,于是去网上搜了下,在这里找到方法,原来是需要ffmpeg,安装,解决之。

pino open link in browser

,

pino要在浏览器里打开链接,需要安装xdg-utils,不然会直接在pino中打开。

n97 mini 入手

终于入手n97 mini,黑色版,看着不错,用着也挺好。最终还是没选android。因为都太贵,而且感觉不是很适合单手操作,电池续航也弱了点。n97 mini相比还是便宜,3.2寸屏幕虽然小但适合我这样习惯单手操作的,电池也不错,我属于一天也没几个电话短信但是晚上不关机的,所以手机基本24小时处于待机状态,不连wifi和3g,到现在60个小时7格电用了3格,还是比较让我满意的。只是电阻屏真的是没法和电容屏比,要用力按,而且不是很灵敏,但是可以用触控笔算是plus,随机配送触控笔,所以这样看来倒是比电容屏还讨喜,因为即使是4.0寸的屏幕要竖着按键还是容易按错,不如用触控笔方便。但是屏幕在阳光下表现不怎么样,夏天早上10点的阳光直射下几乎看不清,不过目前还找不到阳光直射下表现亮眼的机子就是了。n97 mini的做工还是不错的。以前用的6280也是滑盖,屏幕感觉和键盘不是很严实,即使是新机子轻按屏幕一角也会发现屏幕很松,会被按动,但是n97 mini屏幕就很严实很紧,手感不错。但是最让人受不了的是快门声不能消除,甚至不能减小音量,防偷拍功能吗?太囧了。而随机自带的office和pdf更是无奈,是试用版的,pdf只能试用15天,office干脆不给钱不能用,可是广告里可是把office作为一个feature宣传的,这算虚假广告吗,我能告它欺诈吗?自己下载一个alternatereader看pdf,不能直接调用来看文件,要打开软件再browse到文件,开文件时候有点慢,但好歹能凑合着用了。office没办法,在电脑上先保存为pdf吧。Symbian装软件实在是悲剧。ovi里面没几个软件,自己找的软件大部分需要cert签名,一个很复杂的过程,学不会,而且据说很难申请到cert,太不方便了,虽然可以理解是为了防止malware,但是也不能牺牲易用性吧,难怪Symbian这几年每况愈下了。没用过android,倒是不知道android怎么装软件了。再让android发展一段时间,看看系统软件还有硬件怎么发展吧,现在有点越来越看不懂手机的发展趋势和方向了。

gnome-system-tools

, , ,

重装了系统发现linux真的是比windows好太多了。同样是10g的分区,linux装完系统和一堆软件用了大概5g,而windows装完了系统再装一两个软件就到了8g,真是垃圾。
重装才发现原来我一直没装gnome-system-tools,用来调节时间,用户,用户组之类的,而这个包需要用到policykit authentication agent,不然没法解锁进行一些系统设置。所以需要在startup application中打开这个agent。

ubuntu-sg 聚会

,

昨天在新加坡的几个ubuntu爱好者来了个小聚会,在bugis national library附近的麦当劳。有几个人是真的搞技术的,挺厉害的,说的话都听不懂,汗。我这种平时就只是灌灌水的菜鸟也就是去聊聊天罢了。不过也挺好。希望以后可以继续有这种活动,毕竟大家有相同的兴趣也挺难得。

compiz-scale

,

今天在shellex.info看到一个python脚本,可以让compiz的scale显示被最小化了的窗口。原理就是让这些窗口临时还原。脚本可以从这里下载。在compiz的command中设置这个脚本并添加快捷键,然后到scale的设置里把快捷键禁用掉就好了。

sopcast cctv-1

sopcast中cctv-1的地址 sop://211.152.36.38:3912/15102,希望看春晚能顺畅。

pidgin 中文

win上的pidgin显示msn的消息时候会乱码,需要在preferences->conversions里去掉show formatting on incoming messages

moc 继续上次播放

moc的2.5.0alpha4引入了一些新的功能,使得继续上次播放成为可能。当然,原程序是没有这个功能的,需要用几个脚本。新版moc多了的功能包括queue和onsongchange。前一个能使用queue来插入playlist,后一个能在换歌的时候调用外部程序。所以自己写了两个脚本实现继续上次播放和换歌时显示提示的功能。
第一个脚本mymoc

#!/bin/bash

state=`pgrep mocp`
if [ -n "$state" ]; then
mocp
exit 0
else
echo 0 > ~/.moc/firsttime
lastsong=`cat ~/.moc/lastsong`
mocp -S
mocp -p
mocp -q "$lastsong"
mocp -f
mocp -P
mocp
exit 0
fi


先检测,如果moc已经在运行,就只是打开client,如果没有运行,就运行server,开始播放playlist,然后读取~/.moc/lastsong中记录的上次播放的文件,用queue的形式插入,开始播放这首歌,然后暂停,因为不习惯自动播放。

第二个脚本onsongchange

#!/bin/bash

mocp -i | grep File | sed -e 's/File: //'> ~/.moc/lastsong

firsttime=`cat ~/.moc/firsttime`
if [ $firsttime = "1" ]; then
notify-send "`mocp -i |grep -i "^State" | sed -e "s/^State: //"` `echo \ && mocp -i | grep -i "^File" | sed -e "s/.*\///" -e "s/.mp3//" -e "s/.MP3//" -e "s/.wma//" -e "s/.WMA//" -e "s/.ape//" -e "s/.APE//" -e "s/.flac//" -e "s/.FLAC//" -e "s/[0-9]\+[/./-]//g"`"
else
echo 1 > ~/.moc/firsttime
fi

exit 0


这个脚本就是当换歌的时候把歌名写入~/.moc/lastsong以便下次调用。暂时moc不支持退出的时候写入。
然后判断是不是刚开始运行所播放的第一首歌,如果不是就显示歌名。因为在mymoc调用moc的时候,先播放了playlist里的第一首歌,然后立即转到queue,也就是上次关闭时播放的歌,所以如果不这样就会连着显示两次歌名。

moc-ape

,

moc不支持ape,但是通过patch可以支持。
原帖是moc论坛的Planner发的,http://moc.daper.net/node/110
同时使用了archlinux官方的patch,支持wma,见http://repos.archlinux.org/wsvn/packages/moc/repos/extra-i686/
最终的patch如下,下载moc-2.4.4-ffmpeg.diff

diff -Naur moc-2.4.4/decoder_plugins/ffmpeg/ffmpeg.c moc-2.4.4-new/decoder_plugins/ffmpeg/ffmpeg.c
--- moc-1.4.4/decoder_plugins/ffmpeg/ffmpeg.c 2008-04-09 14:44:00.000000000 -0400
+++ moc-2.4.4-new/decoder_plugins/ffmpeg/ffmpeg.c 2009-03-07 01:31:48.000000000 -0500
@@ -222,8 +222,8 @@
{
struct ffmpeg_data *data = (struct ffmpeg_data *)prv_data;
int ret;
- int data_size;
char avbuf[AVCODEC_MAX_AUDIO_FRAME_SIZE * sizeof(int16_t)];
+ int data_size = sizeof(avbuf);
AVPacket pkt;
uint8_t *pkt_data;
int pkt_size = 0;
@@ -270,7 +270,7 @@
while (pkt_size) {
int len;

- len = avcodec_decode_audio (data->enc, (int16_t *)avbuf,
+ len = avcodec_decode_audio2 (data->enc, (int16_t *)avbuf,
&data_size, pkt_data, pkt_size);
debug ("Decoded %dB", data_size);

@@ -345,6 +345,8 @@
strcpy (buf, "MP4");
else if (!strcasecmp(ext, "m4a"))
strcpy (buf, "M4A");
+ else if (!strcasecmp(ext, "ape"))
+ strcpy (buf, "APE");
}

static int ffmpeg_our_format_ext (const char *ext)
@@ -353,7 +355,8 @@
|| !strcasecmp(ext, "ra")
|| !strcasecmp(ext, "m4a")
|| !strcasecmp(ext, "mp4")
- || !strcasecmp(ext, "aac");
+ || !strcasecmp(ext, "aac")
+ || !strcasecmp(ext, "ape");
}

static void ffmpeg_get_error (void *prv_data, struct decoder_error *error)


同时也做了一个arch的pkgbuild,基本上只是改了官方的,下载PKGBUILD

# Contributor: xjpvictor <emailhuangke@gmail.com>

pkgname=moc-ape
pkgver=2.4.4
pkgrel=3
pkgdesc="An ncurses console audio player with support for the mp3, ogg, and wave formats"
arch=('i686' 'x86_64')
url="http://moc.daper.net/"
license=('GPL')
depends=('libmad' 'libid3tag' 'jack-audio-connection-kit' 'curl>=7.16.2' 'libsamplerate' 'libtool')
makedepends=('speex' 'ffmpeg' 'taglib' 'libmpcdec')
conflicts=('moc' 'moc-svn')
optdepends=('speex: for using the speex plugin' 'ffmpeg: for using the ffmpeg plugin' 'taglib and libmpcdec: for using the musepack plugin')
options=('!libtool')
source=(ftp://ftp.daper.net/pub/soft/moc/stable/moc-${pkgver}.tar.bz2 moc-2.4.4-ffmpeg.diff)
md5sums=('647c770a5542a4ae5437386807a89796' '631218fcf8285fdd63a2530af28f8659')

build() {
cd ${srcdir}/moc-${pkgver}
patch -p1 < ../moc-2.4.4-ffmpeg.diff || return 1
sed -i 's|ffmpeg/avformat.h|libavformat/avformat.h|' decoder_plugins/ffmpeg/ffmpeg.c || return 1
./configure --prefix=/usr --without-rcc || return 1
make || return 1
make DESTDIR=${pkgdir} install || return 1
}


但是放到aur中的有地方写错了,但是又不让我修改,所以等有新版的时候估计就能改了,那时候版本号变了就好了。

vim

,

最近vim升级了,于是arch决定不填加任何的修改,原汁原味。于是搜索高亮,语法高亮,等等都没有了。只好自己改配置文件。

set fileencodings=utf8,gb18030,gbk,cp936
set nu
set cindent
syntax on
set hlsearch
set incsearch
set guifont=DejaVuSansYuanTiMono
set ruler

"jump to last position
autocmd BufReadPost *
\ if line("'\"") > 1 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif


然而不能用“+y来复制了。因为新的vim在编译的时候没有enable x,所以装上gvim才能方便的复制。还好gvim还比较轻巧,也不错。

opera web application

mozilla有个prism,是做web application的。就是把一个网页变成一个像是本地程序的东西。其实就是个微型的浏览器,没有地址栏没有状态栏没有tab bar之类多余的东西,只是显示网页罢了。其实opera也可以实现这个功能。
比如要用这种web application的形式打开gmail
opera -nomail -notrayicon -pd /xxx/opera/ -postfix wa www.gmail.com

-nomail是说不要开启邮件功能
-notrayicon是不要托盘图标,以免显示两个图标
-pd /xxx/opera是说profile为/xxx/opera,这个是个新建的目录,和平时用的opera的配置目录不同。这样就能为web application单独设置,比如把tab bar,status bar,address bar,scroll bar都去掉,就能只显示网页而已了。
-postfix wa是让web application的window name变为opera_wa,这样能在compiz中设置主窗口没有边框而web application的窗口有边框。
然后在opera的menu.lst中的[Document Popup Menu]这段里添加
Item, Detach as web application=Execute Program,"opera -nomail -notrayicon -pd /home/huangke/files/scripts/opera/ -postfix wa","%u",,,

这样就能在打开的网页上通过右键把当前页面在新窗口中以web application的形式打开。
效果图

中文输入法

,

因为fcitx的开发一直十分缓慢,而且archlinux中community里的fcitx已经orphane了,所以一直想换掉输入法。选择也不多,svn的fcitx,或者ibus。
fcitx有个很严重的毛病,就是不能动态调频。每次开机以后就要重新选择,而不会把最常用的放到第一个。即使是svn的也一样。所以还是换了。ibus很不错。但是速度有点慢。就是打字上屏的速度慢,而且当输入以后要过一会才会出现选词栏,当打得快了的时候就很累。于是换成fitx。新版的fitx可以调用ibus前端,作为他的一个输入法模块。自己感觉是比ibus-pinyin快一点。安装方法也简单,aur里有fitx-svn的包,只要把scim-python改为ibus就行了。
但是ibus也有缺点。速度比fcitx慢,这是没办法的。而且选词栏不能移动。于是在不能光标跟随的时候就特别郁闷。选词栏会一直在窗口的左下角。于是opera就郁闷了。而且在~/.xprofile中必须用
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
而不能用
export GTK_IM_MODULE="xim"
export QT_IM_MODULE="xim"
不然就无法光标跟随。这个比较奇怪。

gmlive+ibus+gwget

,

这两天ubuntu-cn上关于pplive的讨论相当火爆。原因是有人从midlinux里提取出了原生版的pplive for linux。这下就立刻火了。gmlive也立刻把pplive吸纳其中。于是对gmlive的兴趣开始大增。在aur里看到gmlive也能使用在64位系统上,只需要把aur中gmlive的pkgbuild稍微改动一点就行了。在archietecture中加入x86_64,把sopcast改为bin32-sopcast就行了。但是还没更新,所以pplive不知道能不能支持。但是pplive的二进制包不一定能支持64位,那样估计也很难使用pplive。
输入法换成了ibus,因为fcitx在用户词组的记忆上实在太弱了。总是无法记忆。然而ibus的速度还是很慢。尤其是当选词框弹出的时候太慢了。
下载工具换成了gwget,是wget的前端。multiget很好用,但是停止开发了。于是换掉。但是opera的菜单要做相应修改才能支持调用gwget。要改为
Item, "Download using Gwget"=Execute program,"gwget","%l",,"gwget"

wine office 2007

,

wine 1.1.25出了。能更好的使用office 2007了。包括equation editor,都能正常使用了。
直接安装,不需要任何trick。安装完后,把riched20改为native的就能正常使用powerpoint。
为了用equation editor,还需要用到crossover8.0的试用版。安装好以后把ole32.dll.so拷出来,覆盖/usr/lib/wine/ole32.dll.so,然后在winecfg里把usp10改为native,就能正常使用equation editor了。
然而发现在word中左上角标记左对齐右对齐的那个东西显示不出来。虽然能用。但是每次得自己摸索是怎么缩进了。
把ole32.dll.so上传了,免得为了它装crossover,然后又得卸掉,麻烦。
测试环境Archlinux x86_64 + wine 1.1.25 + MS Office 2007 Enterprise
下载ole32.dll.so

archlinux 摄像头

,

今天在弄archlinux的摄像头。以前是要安装gspcav1这个包,但现在这个包已经移除了,因为从kernel2.6.27开始,已经把这个驱动集成到kernel里了,只要加载module就可以了。
先用lsusb看到我的摄像头是zc0303的,于是用
sudo modprobe gspca_zc3xx

就可以了。

唯一的问题是skype没有64位版本的,于是又是一堆32位的库,和qq一样。如果要显示视频要装lib32-libv4l,但是64位的skype虽然用了aur里的脚本,也可以正确识别摄像头,但是不能显示图像,花屏。看来通过lib32-libv4l来弄视频还是不是很兼容。

mplayer codecs

ffmpeg的更新使得ffmpeg非常的强大。以前需要安装codecs才能使用mplayer播放rmvb的视频文件,现在不用了。在mplayer的preference里面,找到codec family,video和audio都改成ffmpeg,就能用mplayer播放所有格式的文件了,包括rmvb。而且在放rmvb之前也不会弹出一个框来说什么文件找不到了。挺好。但手头没有avi格式的文件,没法测试,如果ffmpeg连avi也通杀了,那就可以放弃codecs了,毕竟2007年以后就没什么更新了。

dhcpcd & module

,

新的networkmanager已经不需要自己启动dhcpcd了。确切的说,现在根本没有/etc/rc.d/dhcpcd这个脚本了。所以在/etc/rc.conf中又可以少一项启动项。
而在/etc/rc.conf中,module把autoload关闭可以大幅提高module加载速度,开机能快一些。
在我的fujitsu的笔记本上,需要加载以下这些module。
MODULES=(rtc_cmos sky2 iwl3945 ecb arc4 snd-hda-intel ac battery button fan thermal evdev intel_agp fujitsu_laptop video parport_pc sr_mod psmouse sg uhci_hcd i2c_i801 iTCO_wdt usbhid iptable_filter ipt_REJECT xt_state nf_conntrack_ipv4 i915 fuse usb_storage vfat nls_cp437 acpi-cpufreq cpufreq_ondemand)

rtc_cmos是用于cmos的时间的,sky2用于上网,iwl3945是我的无线网卡,snd-hda-intel是声卡,ac不用说,电源,battery是电池,fan和thermal都和风扇有关,evdev和键盘有关,video和display有关,parport_pc是parallel port的什么,sr_mod和光驱有关,iTCO_wdt是watchdog timer的什么,这个就不懂了,psmouse和鼠标有关,usbhid和usb_storage还有vfat和uhci_hcd都在用u盘的时候需要,i915和显卡联系,iptable_filter ipt_REJECT xt_state nf_conntrack_ipv4是iptables需要的,acpi-cpufreq cpufreq_ondemand是cpufreq需要的,其中cpufreq_ondemand是和cpufreq的policy对应的。其他的都弄不懂是干什么的。

gksu问题

遇到了gksu的问题。当用gksu authorize的时候,会出现“Failed to communicate with gksu-run-helper.”的问题。搜了很久没什么结果。但其实很简单。在alacarte里面,在system->preferences里面把privilege granting选中,然后在gnome menu里找到这个privilege granting,把authentication mode从su改为sudo就好了。

compiz & metacity

前天在gconfig-editor中把metacity的composition给enable了一下,于是compiz开机就没了边框了。必须重新加载compiz才行。看了一下,compiz根本没运行起来,报错。
于是google了一下,好像是个bug。要在gconf-editor中/apps/metacity/general中把compositing_manager给取消就好了。

Archlinux networkmanager applet

,

今天archlinux更新,没有gnome-network-manager了,用network-manager-applet代替了。
所以/etc/rc.conf里不用设置网络了,网关也可以关闭。
现在是在gnome panel上的network-manager-applet设置了。在这里添加connection。非常方便。不仅能很容易的切换有线和无线网络,也能设置多个有线网络进行切换。比如我在寝室用的是静态ip,在家用的是动态的,以前要先修改/etc/rc.conf,现在直接切换,很方便。
而且所有关于网络的设置都在这里了,包括vpn。集中管理,图形界面,方便很多。
稳定性方面还没有长时间试验。但现在看来算是很稳定,没有掉线过。

另外,hal的更新修正了没有休眠挂起选项的问题。/usr/share/PolicyKit/policy/org.freedesktop.hal.power-management.policy这个文件不需要自己建立了。不过如果已经自己建立了这个文件,更新前需要先删除这个文件,或者用f参数强制更新。

另外supertuxkart的问题。如果启动时加入了下面这两行的话
export LIBGL_ALWAYS_INDIRECT=0
export INTEL_BATCH=1

需要把这两行去掉。
当时是为了让compiz能使用direct render才加入这两行的,但是似乎不能提高性能,反而使supertuxkart不能运行。所以不要了。这样supertuxkart就能在compiz运行的同时启动了。

Archlinux moc 歌词

,

archlinux下,用moc一样可以显示歌词。先来个效果图,再慢慢道来。

要做出这个,需要音乐播放器(废话嘛这不是。。),支持mpd, mocp, audacious, amarok, exaile, quodlibet, rhythmbox, mplayer这8种播放器。因为显示歌词的脚本是xiooli的。看这里。
这个脚本用到了wget和bc,需要先安装。但是由于archlinux没有gnome-osd,所以采用cli方式。也就是在终端里显示歌词。
终端选择的是gnome-terminal,因为用的是gnome桌面,胡哥指示,不折腾。
在panel上建一个启动器,输入如下命令
gnome-terminal --window-with-profile=lyrics --geometry=30x3 -x /home/huangke/files/scripts/lyrics

--geometry=30x3是说这个窗口是30个字的宽度,3个字的高度。
-x是执行后面那个script,就是xiooli那里的那个。
--window-with-profile=lyrics是说采用lyrics这个profile。需要在gnome-terminal中新建一个名叫profile的profile。在general tab里把show menubar取消掉。在title and command tab里设置initial title为Lyrics,注意大小写sensitive的,虽然最终不会看到这个窗口的边框,也就看不到名字,但这句是很重要的,待会分解。在colors tab里把背景设为黑色,字体设为黑色。在background tab里设为transparent background,透明度自己设定。在scrolling tab里把scrollbar设为disable,把scroll on output和keystroke都选上。
用compiz去掉窗口的边框。在window decoration里面的decoration windows里面添加规则,
& !(title=Lyrics & class=Gnome-terminal & name=gnome-terminal)
这样就没有边框了。Lyrics是大小写sensitive的。现在知道为什么要在gnome那里把名字改成Lyrics了吧。原因就在于compiz。后面还有很多地方用到这句。
这样就好了。效果是有了。
不过配合compiz,能得到更好的体验。继续分解。
首先,在ADD helper里面,misc options里面的window types中,加入
& !(title=Lyrics & class=Gnome-terminal & name=gnome-terminal)
也就是说,当gnome-terminal的名字叫Lyrics时,不要应用ADD helper。
然后在place windows里面,在fixed window placement中加入规则到windows with fixed position,positioned windows为
title=Lyrics & class=Gnome-terminal & name=gnome-terminal
X positions设为550,y positions设为21,选中keep in workarea。这样歌词窗口就会在x550和y21的地方显示出来了。
下一步在window rules里面修改。放图,自己懒得写了。

其实就是在skip taskbar,skip pager,above,sticky,no focus中加入
title=Lyrics & class=Gnome-terminal & name=gnome-terminal
也就是说这个歌词窗口不在任务栏窗口列表显示,skip pager就是说当show desktop时这个窗口不动,above就是总在最上,sticky就是在每个workspace都显示,no focus就是说不要聚焦到这个窗口,也就是不能左键点击。
但是还有一个问题,就是如果在那个窗口上点击,虽然不能聚焦,仍然会挡住后面的窗口。不能穿越这个歌词点击后面的窗口。compiz这时候发飙了。用compiz的ghost插件解决问题。
ubuntu的zhuqin介绍过这个插件,这里,注意,不要猛击,轻点,保护鼠标。。
总得来说就是把这个链接里的几个文件下载下来,放在一个目录下,cd进去,然后
make clean
make
make install
就好了。
注意,不要sudo make install,用自己的帐户。compiz的version要是最新的0.7.8,其实这个插件在0.7.6上也是能工作的。
装好了ghost插件以后,在compiz的设置里面找到ghost,在extras类别里面。设置好快捷键,在window types里面输入代表歌词窗口的那一串东西,就是
(title=Lyrics & class=Gnome-terminal & name=gnome-terminal)
然后把fade windows only on mousover选中,把opacity调低,我调到了30,其他都调到100,这样当鼠标移到那里的时候歌词窗口就变透明了,就不会挡住后面的窗口。而且这时候直接就可以点击后面的窗口而不会被挡住了。如果要退出歌词窗口,就用快捷键停止ghost,然后在歌词上点右键关闭窗口就行了。停止ghost以后还能把鼠标放在歌词上用滚轮回顾前面的歌词。再来一张图。变透明的。

现在是不是很完美呢。千千静听的歌词算什么,有这个好么?哼。。
-----------------------------------------华丽的分割线-------------------------------
当这样设置之后,emesene的notification总会抢焦点。比如说你正在打字,当emesene有notification出来时候,焦点就到了notification的窗口上去了。这个很讨厌。于是在compiz里的window rules里的no focus中加入
| (class=emesene & title=Controller.py)
最前面的 | 是因为前面已经写过了关于歌词窗口的规则,这两个规则是or的关系。同时在general options里面,把focus & raise behaviour中的focus prevention level设为off。因为这个会使得notification不能获得焦点的同时也不能总在最上了,于是会被当前窗口挡住,而且这个设置也会导致qq掉线的提示不能在最上,所以干脆off掉,把emesene notification的设置写在window rules里。
-------------------------------又是华丽的分割线--------------------------------------
gnome-terminal现在似乎是真透明了。以前是假的,只是把壁纸相应的部分显示出来,现在是真的了,而不是显示壁纸了。不错。

mirage

mirage是个很小巧的图片浏览器。支持gif动画,支持自定义命令。很不错。能全键盘操作,预览文件夹中的图片,幻灯片播放。总之作为看图的软件该有的都有了。不该有的也不多余。用起来很舒服。
但是有个问题,不像eog,它不能直接更改桌面背景图片。一定要从gnome首选项外观中更改。
但是当然是能解决的。在mirage的edit -> custom actions -> configure中,添加一个自定义动作,比如叫set as wallpaper。在命令那一栏里填上
gconftool-2 --type string --set /desktop/gnome/background/picture_filename %F

快捷键随自己方便设定。
然后就好了。看图。

emelFM2

对nautilus快捷键失望了。而且不能用快捷键打开terminal,必须用右键点击。或者最多alt-f再t再enter,所以找了找其他的file manager。找到一个emelFM2,是GTK2的,而emelFM是GTK的。试用了一下。
emelFM2是双列的,而且内嵌一个终端,其实是调用外部终端,但是有一个自带的输入条。还不错。可以自定义用xterm或者gnome-terminal或者任何终端。挺好的。
但是还是觉得没有tree,没有能显示当前位置并能直接点快速跳转的那些按键,只有地址栏。所以想想算了,还是nautilus吧。放两个图。

nautilus 快捷键

nautilus的快捷键一直用的不习惯。其实是可以改的。在system->preferences->appearance里面,interface标签页中,把editable menu shortcut keys选中,然后打开nautilus,打开下拉菜单,把鼠标放上去,但是不要点,然后在键盘上按所希望快捷键,就能改好了。改完了再把editable menu shortcut keys去掉,免得下次不小心又给改掉了。
但是有几个问题。nautilus open in terminal这个是不能增加快捷键的。毕竟是外来的东西。还有就是如果是从终端中启动的nautilus,或者用compiz的快捷键启动的,是不能改的。不知道为什么。
然而这不是最大的问题,最大的问题在于,重启之后这些设置就都没了。。郁闷。。

Vim

Vim那是相当强大的。
通过一些设置,能更强大。
修改~/.vimrc,里面加上
set fileencodings=utf8,gbk,cp936
set nu
set cursorline

第一句是为了显示gbk和cp936编码的中文文件。
第二句是为了在行首显示行数。
第三句是为了highlight当前行,就是加个下划线。

:split
可以把窗口分成上下两个,
:vsplit
则是左右两个。
用ctrl-w加方向键就能切换窗口,ctrl-ww就是来回切换,ctrl-wj和ctrl-wk则是切换到前一个或者后一个窗口。
:e .
可以显示当前的目录,
:e /xxx
就是显示某个目录了。


另外,如果要批量注释一段代码可以移到要开始注释的那行,Ctrl+v进入可视化列选择模式,移到光标到最后需要注释的行(注意,如果你知道行号,可以使用行号G快速跳到该行),然后按I,进入插入模式,输入注释符,比如C++/C#/Java是//,然后按ESC键回到命令模式。反注释同样Ctrl+v进入列选择模式,移到光标把注释符选中,按下d。原文http://hi.baidu.com/hansfly/blog/item/63b063d095584589a0ec9c9d.html

emesene

上次写软件的时候写到了这个软件,msn的替代品,能离线消息,能闪屏的东西。
今天写写它的提示和自定义表情。

提示是由libnotify或者notification插件来完成的。libnotify在我的电脑上提示pynotify找不到,所以不能启用。而notification工作正常。曾经也用过libnotify,但是感觉太简单了。notification能自定义背景,自定义提示出现的位置。于是我换成了和gnome的popup notification同样的背景同样的位置,这样系统就统一外观了。notification能提示的选项很多,有上线,下线,邮件,对方开始输入,收到消息,还可以选当会话开始就不通知,在忙碌时不通知。至于出现的位置,也是屏幕的四个角。



自定义表情,需要自己一个一个的添加,但是也可以一次性直接修改配置文件。配置文件是~/.config/emesene1.0/xjpvictor_hotmail_com/custom_emoticons/map。如果已经添加过表情,可以看到这个文件是这样的:
001
/home/huangke/.config/emesene1.0/xjpvictor_hotmail_com/custom_emoticons/onion/001.gif^M

其中001是快捷键,/home/huangke/.config/emesene1.0/xjpvictor_hotmail_com/custom_emoticons/onion/001.gif是表情图片的地址。^M只有当用vim打开时才能看到,是蓝色的,用gedit打开就看不到。个人水平有限,不知道为什么。但这个是不能少的。而且不能直接输入^M,因为它不是普通的文本。所以只能先用emesene添加表情,使它产生出这个文件,就可以对其进行复制修改了。
当修改完这个文件以后,重新打开emesene,在对话框的表情里就能找到自定义表情了。
我一口气添加了100个洋葱头表情。哈哈。

Opera CSS

这两天修改了一下blog。自我感觉良好,觉得很好看。嗯。自己爽到就好。 贴一下css。整体是基于Early Bird的,这个的menu bar,就是那个导航栏,很好看。又懒得找出这个的css再自己弄,就直接用这个style好了。下面是自定义的东西。自定义都是在custom style sheet里改的。
/*自定义标题栏背景*/
#top {
background:url(http://files.myopera.com/xjpvictor/background/top.jpg);
}

/*因为这个style在标题栏两侧有凸出来的两块彩色的东西。把它们去掉。*/
#wrap0 {
background:transparent;
}

#wrap1[id] {
background: transparent;
}

/*这个style把标题放到右边了,改成在左边,字改成白色。*/
#top h1{
color: #fff;
text-align: left;
}

#subtitle {
color: #fff;
text-align: left
}

/*从early bird里面抠出来的menu bar的css*/
#menu {
background:white url(http://files.myopera.com/xjpvictor/background/menu.png) bottom left repeat-x;
}

#menu #selected,#menu a:hover {
background:transparent url(http://files.myopera.com/xjpvictor/background/menuselected.png) center 21px no-repeat !important;
color:#070804;
}

/*背景。就是后面那个黄纸。固定住,拖动网页时候背景固定。*/
body {
background:url(http://files.myopera.com/xjpvictor/background/background.jpg) top left;
background-attachment:fixed;
}

/*blog的背景。那个枫叶的。*/
#content {
background: url(http://files.myopera.com/xjpvictor/background/background_b.jpg) top left no-repeat;
}

/*blog的标题,字体改为22px大小。*/
.post .title {
font-size: 22px;
}

/*侧边栏加上那个云。*/
#side h2 {
background:url(http://files.myopera.com/xjpvictor/background/sidebar.png) top right no-repeat;
}

sidebox hidemobile h2 {
background:url(http://files.myopera.com/xjpvictor/background/sidebar.png) top right no-repeat;
}

/*头像那里不要云。不好看。*/
#qp h2 {
background:transparent;
}

/*chat那里不要那个框。直接显示字。*/
#shoutbox li {
background:url();
}

#shoutbox blockquote {
background:url();
}

#shoutbox blockquote p {
background:url();
}

/*tag的字全部为同样大小。不同大小太难看了,不整齐。*/
#tagcloud .size1 {
font-size:12px;
}

#tagcloud .size2 {
font-size:12px;
}

#tagcloud .size3  {
font-size:12px;
}

#tagcloud .size4  {
font-size:12px;
}

#tagcloud .size5  {
font-size:12px;
}

/*日历也要云。*/
#calendar caption {
background:url(http://files.myopera.com/xjpvictor/background/sidebar.png) top right no-repeat;
}

/*日历的背景改成白色*/
#calendar {
background:#fff;
}
置顶的那个里面放了音乐播放器,flash的。
<div style="WIDTH: 100%; HEIGHT: 100%;">

<img src="http://files.myopera.com/xjpvictor/background/guestbook.png" align="right"/>

<table style="float:left; background-color: TRANSPARENT; width: 100%; HEIGHT: 100%;">
<tbody>
<tr>
<td style="align:; padding-left:80px; padding-top:12px; font-size: 14px">
天人乱 <br />
妖仙变 <br />
五灵初转空如满<br /> 
红尘路 <br />
多踌躇 <br />
孑然孤影 <br />
不知归处 <br />
悟!悟!悟! <br />
<br />
青锋剑 <br />
情难断 <br />
静思应悔前缘散<br /> 
登云麓 <br />
寒盟误 <br />
塔高人远 <br />
此心谁诉 <br />
不!不!不!</td>

<td><embed src="http://files.myopera.com/xjpvictor/files/player.swf" menu="false" quality="high" width="230" height="280" name="index" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="ShowPlaylist=1&ShowEQ=1&firstTrack=1&initVol=90" wmode="transparent" border="0" align="right"/></td>
</tr>
</tbody>
</table>

</div>
*所有素材均由网上收集。 *css部分由http://my.opera.com/chinese/forums/topic.dml?id=140137作为教材

Opera中文字体

,

都说Linux下的Opera的中文字体麻烦,但其实还是很好解决的。最新版的Opera已经更新到了9.63了。
在preferences->advanced->fonts里面把所有字体都指定为你所要的中文字体就好了。如果对于有些网页不能正常显示,就在preferences->advanced->content->style options里面指定自己的css,然后在自己的css里面加入
@charset "utf-8";
html,body,*{
	font-family:"DejavuSansYuanTi"!important;
}

把DejavuSansYuanTi换成自己的中文字体。就好了。
同时在preferences->general-language details里面把默认的encodings改为gbk,同时在语言里添加zh-cn。这样一些gbk编码的网页就不会有乱码了。
推荐一下DejavuSansYuanTi这个字体。并推荐这篇文章[原创]史上最强(伪)的合成字体DejaVuSansYuanTi 2.27版

Arch Linux

,

重新开始使用Archlinux。因为这真的是一个相当不错的发行版。
桌面用了Gnome,而没有用WM,是因为比起WM带来的好处--开机快了一两秒,我还是更喜欢Compiz所带来的Eye Candy。而且只要自己稍微精简,Gnome也十分的快,更比WM那些设置要省心的多。不用考虑用什么WM,用什么panel,用什么file manager。电脑用用就好,懒得折腾了。
但是还是要设置一番。

Read more...