在KDE下用GVim,一直有个很怪的问题,就是最大化几乎是无效的,最大化之后可以看到右边和下边都各有一条细缝。有人说可能是GVim规定要整数的行和列,也有人说是GVim和KWin都想管理窗口,然后冲突了。

有一种比较简单的解决方法,右击GVim标题,选择Advanced,选择Fullscreen即可。

设置后效果如图所示:

这种方法效果总体较好,但是却有个很严重的缺陷。ALT+TAB看不到窗口切换的效果,这在窗口切换时是很不方便的。

这是Gvim官方的Wiki中的教程:http://vim.wikia.com/wiki/Automatically_maximizing_gvim_in_KDE

设置界面:

按照这个做法的话,也有个很大的问题,就是如果用GVim打开一个其他窗口,比如查找和替换,那个就会变成这样:

显然对GVim主窗口的设置影响到了对话框。

经过多次研究,后来发现一种办法,可以完美解决这个问题而没有这样那样的副作用。首先,和Wiki中一样,进入KWin设置界面。

选择Detach Window Properties按钮,在GVim主窗口任意位置点击一下。

看到如下界面,选择Use whole window class(specific window)。

保持Window Extra中只有Normal Window一项被选中。

这里还是和Wiki中一样的设置方法,在我电脑上,GVim大小为1280x775。

设置后效果如下,可以看到,已经最大化了。

搜索对话框还是和原来一样大小。

下面说下如何修改和删除已经设置过的KWin的规则,之前以为KWin的规则都保存在~/.kde/share/config/kwinrulesrc中,只要编辑这个文件就可以修改KWin的规则,其实是不对的,因为设置完之后再次启动GVim的话,~/.kde/share/config/kwinrulesrc会回滚到原来的设置,不知道这是什么情况。如果要修改或删除已经设置过的KWin的规则,可以启动Window Rules,启动方法如图:

在这个框口中编辑即可,编辑完后不要忘记点击Apply按钮,否则编辑还是无效的。

上次Gnome 3悲剧了一回,我感觉如果再继续使用Gnome 3可能会发生点什么严重后果,所以改行用用KDE,仅仅是玩玩,发行版本仍然是Fedora不变。KDE并不是我熟悉的桌面环境,安装的时候遇到一点问题,分享下,如果大家装的时候也发生类似的问题,也许可以Google到本文。

1. 从官网上下载安装的Libreoffice 3.4.1没有KDE样式。

这不是libobasis3.4-kde-integration没有正确安装的问题,而仅仅是libreoffice目录下的/ure/lib/libstdc++.so.6 这个文件有点问题而已,从 /usr/lib/libstdc++.so.6 复制一个覆盖掉即可。

2. 在例如于Chrome,Eclipse这样的非QT的GTK软件里Fcitx输入法无法激活,不能输入中文

这个Google的我好辛苦,后来终于查到,只要

su -c 'yum install gtk2-immodule-xim'

即可。感谢 http://www.linux-ren.org/modules/flyspray/index.php?do=details&task_id=253 的帖子

3. 在Kopete中使用Business帐号登录GTalk

在Modify Account中,Connection选项卡,勾上Override default server information,然后在Server文本框中填写 talk.google.com,即可。

目前还有一个问题就是此前用的“坚果铺子”软件在KDE下几乎不能安装,因为依赖了nautilus的库文件。目前在等待他们的回复。

 

 

 

感觉Gnome 3 还是很不成熟的,很多以前可以用图形化程序解决的问题现在反而没有了,大概等到发布3.2版本的时候会改进吧。无论如何,我用的是Fedora而不是CentOS发行版本。

Fedora 15下笔记本电脑合盖后总是会休眠,不合我习惯,我一般只要黑屏+锁屏就可以了,找了没有找到图形化的修改方法,gconf-editor中似乎也找不到,Google后得知,可以用这条命令来修改

供电状态下:

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "<setting>"

<setting> ::= nothing|blank|suspend|hibernate|shutdown

电池状态下:

gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action "<setting>"

<setting> ::= nothing|blank|suspend|hibernate|shutdown

就可以了。

不过似乎不能锁屏,System Settings -> Screen 中已经设置过了,没起作用。gsettings我也不熟悉,不知道有没有更好的解决方案。

参考文献: fedora.rasmil.dk/blog/?p=208

我现在在Fedora 15下写这篇短文。

Fedora 15目前安装后的Netbeans 7.0有严重Bug,主要表现在Menu下,有这样几个症状。鼠标hold在一个item上,实际选择的是上一个item。有时鼠标单击无法打开menu,需要按住鼠标才能打开,有时干脆打不开,等一系列奇怪症状。怀疑是Java GUI库和Gnome 3之间存在兼容问题。

解决方案很简单

su -c 'vi /usr/local/netbeans/etc/netbeans.conf'

打开这个文件,在netbeans_default_options中可以搜索到 -J-Dapple.laf.useScreenMenuBar=true 这项,将他修改为false即可。

目前是这么解决的,我还要继续试用下Fedora 15的Netbeans,可能还有更多Bug隐藏着。

很高兴Netbeans 7.0修改了很多我已知的存在于老版本的Bug。

另外,官网上下载的Eclipse 3.6.2 在Fedora 15下打开即崩溃。但是通过Yum安装的Eclipse是正常的。

崩溃的解决方案是这样的:

在eclipse.ini下增加如下两行即可

-Dorg.eclipse.swt.browser.UseWebKitGTK=true
-Dorg.eclipse.swt.browser.XULRunnerPath==/usr/lib/xulrunner-2.0/

Gnome 3的搜索框和消息提示框目前用ibus输入中文连候选词也没有,也不清楚原因及如何解决。

久闻LaTeX大名,由于Linux下常用的LibreOffice实在太过于糟糕,与Microsoft Office差距太大,并且LibreOffice已经是Linux下最好的Office套件了,使用LaTeX来替代LibreOffice恐怕是一种无奈的选择。

但是我从来没有用过LaTeX,连类似的排版工具也从未用过,可以说丝毫没有经验。不过我还是决定试着学习下LaTeX,首先当然是从配置环境开始,我不熟悉LaTeX和类似软件使用的文件格式,可以说,我只认识PDF格式,所以在配置的时候也是奔着PDF而去。网上的LaTeX配置的文章多如牛毛,但是方法竟然都不一样,有简单的,有繁琐的。英文LaTeX环境很容易就可以搞定,但是中文却没有这么简单。我尝试了几个比较简单的方法,全都不可行。复杂的方法,或是说步骤超过5步的,或是要修改配置文件的方法,我全都不尝试,因为一看这种方法就感到头疼。下载TexLive2010也许比较适合我,但是他的大小实在太恐怖,2GB,不知道为什么会这么大,这个大小恐怕已经超过Microsoft Office了。下载的速度超慢,初步算算大约下载2天,不考虑。

后来发现,其实最简单的方法就是使用XeLaTeX,两个好处:

第一,无须配置,安装后即可使用。

第二,支持中文。

第三,直接将文件转为PDF。

安装只需要三个包

sudo apt-get install texlive-xetex latex-cjk-xcjk texlive-latex-recommended

不过依赖包相当多,apt大约下载半多个小时才能安装。这期间无须任何干涉。

安装完之后,可以先写一个简单的测试文件,当然,要带中文

%% example.tex
\documentclass{article}
\usepackage{xeCJK}  %必须加xeCJK包
\setCJKmainfont{WenQuanYi Micro Hei}  %换成本地字体
\begin{document}
chm文件全名是Microsoft Compiled HTML Help,看名字也猜得出是微软的格式,Windows操作系统自带它的阅读器,chm普遍用于帮助文件和电子书,但在国内,他的应用范围更广,几乎很多在线文档本地化后都采用这个格式。一般做技术的不可能不接触它,但是一般Linux发行版本不自带chm的阅读器,只能安装软件,chmsee就是我所用过最好的chm阅读器了,他还是一款国产软件,我猜之所以看不到比他更好地国外软件,也许是因为中国人更有需求吧。

项目地址:http://code.google.com/p/chmsee/

但是Fedora 14的chmsee包有点奇怪,只有1.1.0版本,没有最新的1.3.0版本。1.1.0的Bug很厉害,影响了正常使用,最新版本则修复了这些Bug。但是Fedora 14没有chmsee最新版本,我在网上也没有搜索到适合Fedora的RPM包,惟一的OpenSUSE的RPM包使用yum localinstall安装仍有不能解决的依赖关系,这使得我们不得不用源码来编译安装了。

我看到项目网站上解释他没有发布二进制安装文件的原因是“Linux 的发行版太多了,还是只发布源码比较省事”,我不否认这种说法的正确性,但也不能否认源码编译安装对我这种Linux菜鸟而言确实非常困难。主要原因当然是缺乏库文件,而且一旦缺乏,我往往不知道该下载哪个包来解决,如果出现RPM包常见的依赖性地狱,更是让我绝望,所以,除非确实找不到二进制包并且需求这个软件,否则我绝对不会去编译源代码。

我看到他的项目文件讲了依赖如下:
cmake >= 2.6.4
gtk2 >= 2.18
xulrunner >= 1.9
chmlib
libxml2
libgcrypt
intltool
幸运的是,Yum库中这些软件全都有,不幸的是,安装了后连cmake都通不过,还是有大量库文件缺乏。后来猜测他的库文件可能不是放在这些可执行的程序中,而是放在devel包中,因此尝试安装了他们的devel包,结果竟然成功了(后来发现项目文件中说的很清楚:Before compiling, you need to check following libraries or their development packages already installed on your system.可惜我一开始没有注意),只要cmake一通过,就不会再有依赖性问题了,安装非常成功。下面复述下正确的依赖。
 
cmake
gtk2-devel
xulrunner-devel
chmlib-devel
libxml2-devel
libgcrypt-devel
intltool
版本方面不用担心,Yum库中的软件都符合要求。
\end{document}

这里把文件命名为example.tex。

可以看到,里面动用了一个中文字体——文泉驿微米黑,这是我最喜欢的字体,也是电脑里唯一一个中文字体,你可以修改这个字体来使用你自己喜欢的字体。你可以用

fc-list :lang=zh-cn

来输出你电脑上所有中文字体。

编译example.tex非常简单,只需要使用

xelatex example.tex

即可获得example.pdf文件,打开即可见到效果。

本人对LaTeX一窍不通,如果你说这样配置出的LaTeX环境会有什么什么缺陷我无法应答,不过我认为这也不要紧。只要有一个简单的工作环境,用它稍微学习下LaTeX,让菜鸟们稍微有一点LaTeX的感觉,和高手们有点共同语言,此时再重新用更好的方法配置LaTeX,才是最人性化的做法。如果一开始就使用那种无法理解的方法配置,想提问又被高手们鄙视,还没开始学习就有了不愉快的感觉,这种做法不利于以后的发展。

另外,求一个LaTeX IDE,简单点就可以了。不太想记很多LaTeX语法。

 

发现一个TexLive 2010在国内的下载点 厦门大学开源软件镜像,下载速度很快。如果有TexLive 2010的光盘,那么参考 www.cnblogs.com/hello_seven/archive/2011/02/15/1955598.html 即可非常容易的配置出更完善的LaTeX环境。

修改Empathy新消息提示音

2011年5月12日 15:17

话说Empathy这个声音真的是轻啊,简直和没有差不多,@ghosTM55 发过来的Gtalk,我就坐在电脑前写代码居然没听到。。平时也就算了,万一有个重要事情没听到后果就严重了。因此,我决心要修改Empathy的提示音。Empathy的提示音在哪里修改还真的是没找到,Google后得知,Empathy所有声音都是属于sound-theme-freedesktop这个RPM包的,查询即知,声音都在/usr/share/sounds/freedesktop/stereo下,进入后发现全是oga格式的声音,这个格式对我来说是蛮新鲜的。不知道Linux下如何将通用的MP3格式的声音转化为oga格式,Google后知道Linux有个著名的软件叫gnac,可以做声音格式转换,支持m4a,flac,oga,mp3,wav,spx等格式,官方网站 gnac.sourceforge.net/,介绍 www.lupaworld.com/article-210899-1.html(我承认这是在做广告,自由软件,做个广告什么的不非法吧)。下载源码后编译安装(依赖包我已经不记得了,但确实没有什么神奇的,官网的编译说明已经很详细了,反复使用./configure --prefix=/usr命令然后按要求安装依赖包即可,如果遇到了找不到的包就Google),然后即可运行。到这里一切都很简单,然后就发现问题了,格式转换的时候gnac提示需要一个叫做gstreamer element audioconvert的插件,gnac可以自行查询安装这个插件,但是结果失败,也就是说,这个插件可能不存在于Yum中。我Google了一下,猜测这个插件可能在gstreamer-plugins-ugly里,这个包Fedora的官方Yum中没有,我掏出珍藏的RpmFusion包安装:

su -c "rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm"
su -c "rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm"

但是并没有解决问题,我把Fedora 14升了下级,依旧没有解决。不得以,干脆发邮件了,与开发者直接交流不是开源软件一直宣传的理念么,邮件地址:gnac-list@gnome.org,内容如下,额。本人英语超烂,勿嘲笑

i am a fedora 14 user, i need to convert some mp3 to oga, but gnac needs an additional plugin called gstreamer element audioconvert. gnac tried to search it by itself, but it is failed, and i alse dont know which rpm it need. so please help me, thank you.

一天后,回复

audioconvert is part of the gstreamer-plugins-base package. 

I've seen several people with fedora 14 complaining about audioconvert in relation to totem...but since it's a general dependency issue, I'll redirect you to the thread that supposedly solves the issue. You may just need to reinstall gs-plugins-base.

apologies to the devs for posting a thread about totem, but it seemed like the easiest thing. http://forums.fedoraforum.org/showthread.php?p=1429783

我立即访问了给出的网页,第一帖给出了一个方案
yum install gstreamer-ffmpeg gstreamer-plugins* -x *devel*

下了上百MB的安装文件,但依然没有解决,继续看那张网页,#2中有这样一句话,basically remove the ~/.gstreamer-x.x/registry*.*,于是立即运行了

rm ~/.gstreamer-0.10/registry*.*

然后运行gnac来格式转换,瞬间完成,替换/usr/share/sounds/freedesktop/stereo下的message-new-instant.oga,测试,成功!这样Empathy的提示音就被替换成功。

很高兴上星期天在本校举办的的Ubuntu 11.04 Release Party(详细可见:http://wowubuntu.com/shanghai-natty-party-review.html),我本人也算是组织者之一吧,Release Party前多次协助组织者uifiddle的工作。会中贡献了自己的电脑,不过没派上什么用场,演讲者一个个都自带笔记本电脑,由于台子小,全把电脑压在了我的电脑上,不仅被压,还被学校那该死的投影仪插,插到后来Ubuntu 11.04索性花屏了,重启到Fedora下才解决。

投影仪里这台电脑就是我的哦。

会场照片,知道哪个是我么?

会后收获很大。私吞一个Canonical官方出的Ubuntu的2G U盘,很漂亮,一个U盘集线器,一张Ubuntu 10.10 官方的光盘,N多纪念贴纸贴满整个寝室,蛮疯狂的说。还和SHLUG人一起吃汉堡王,认识了ghosTM55,LTN,雨蒼,Shell Xu等一系列牛人。

雨蒼不愧是台湾人(中华民国台湾地区),言语中都散发着中华民国人民特有的魅力,这种魅力在我们从小生活在中国大陆的人身上是从没有见过的,事实上上次的拥抱HTML5技术大会上就已经见识过另一个台湾人布丁(hlb)的演讲,幽默的话语,自由的气息,图文并茂的Slides,还有些对GFW的讽刺,已经构成了我对中华民国的主要印象。

 

 

为《Linux内核源码分析》期末考试准备的文章。本来想直接贴出来,但是感觉效果不理想,还是存放在PDF里罢。
 
下载

仅仅是期末考试之后的娱乐节目而已,我们都知道软盘和FAT文件系统已经淘汰N个世纪了。

首先,想必如今没有人家中还在使用软盘,大部分电脑也已经不再附带软驱了,我的本本就是。所以这里的软盘是虚拟出来的。

[bachue@localhost ~]$ dd if=/dev/zero of=floppy.img bs=1024 count=1440
1440+0 records in
1440+0 records out
1474560 bytes (1.5 MB) copied, 0.0217136 s, 67.9 MB/s
[bachue@localhost ~]$ mkfs.vfat floppy.img
mkfs.vfat 3.0.9 (31 Jan 2010)

用dd创建一个1440×1024字节,即1.44MB的虚拟磁盘,按照vfat文件系统进行格式化,就可以模拟出软盘了。

然后使用虚拟机,这里使用的是VMware Player,具有挂载虚拟软盘的功能,据我所知,另一个带有此功能的是微软的虚拟机VPC,而开源界用的较多的VirtualBox,我没有找到这个功能。

在虚拟机中挂载软盘。毫无疑问,使用Linux自己的挂载功能是完全可以的,但是使用Windows,更有实战的味道。(搞笑,谁这年头还会拿个软盘来让你恢复?)

挂载成功。

随便写点神马吧。。表太和谐就行。

文件写入完毕

假设现在出现误操作,删了文件

表痛哭流涕,回Linux修复去。

继续阅读

Fedora 14下编译安装chmsee 1.3.0

2011年2月26日 11:38

chm文件全名是Microsoft Compiled HTML Help,看名字也猜得出是微软的格式,Windows操作系统自带它的阅读器,chm普遍用于帮助文件和电子书,但在国内,他的应用范围更广,几乎很多在线文档本地化后都采用这个格式。一般做技术的不可能不接触它,但是一般Linux发行版本不自带chm的阅读器,只能安装软件,chmsee就是我所用过最好的chm阅读器了,他还是一款国产软件,我猜之所以看不到比他更好地国外软件,也许是因为中国人更有需求吧。

项目地址:http://code.google.com/p/chmsee/

但是Fedora 14的chmsee包有点奇怪,只有1.1.0版本,没有最新的1.3.0版本。1.1.0的Bug很厉害,影响了正常使用,最新版本则修复了这些Bug。但是Fedora 14没有chmsee最新版本,我在网上也没有搜索到适合Fedora的RPM包,惟一的OpenSUSE的RPM包使用yum localinstall安装仍有不能解决的依赖关系,这使得我们不得不用源码来编译安装了。

我看到项目网站上解释他没有发布二进制安装文件的原因是“Linux 的发行版太多了,还是只发布源码比较省事”,我不否认这种说法的正确性,但也不能否认源码编译安装对我这种Linux菜鸟而言确实非常困难。主要原因当然是缺乏库文件,而且一旦缺乏,我往往不知道该下载哪个包来解决,如果出现RPM包常见的依赖性地狱,更是让我绝望,所以,除非确实找不到二进制包并且需求这个软件,否则我绝对不会去编译源代码。

我看到他的项目文件讲了依赖如下:

cmake >= 2.6.4
gtk2 >= 2.18
xulrunner >= 1.9
chmlib
libxml2
libgcrypt
intltool
幸运的是,Yum库中这些软件全都有,不幸的是,安装了后连cmake都通不过,还是有大量库文件缺乏。后来猜测他的库文件可能不是放在这些可执行的程序中,而是放在devel包中,因此尝试安装了他们的devel包,结果竟然成功了(后来发现项目文件中说的很清楚:Before compiling, you need to check following libraries or their development packages already installed on your system.可惜我一开始没有注意),只要cmake一通过,就不会再有依赖性问题了,安装非常成功。下面复述下正确的依赖。
 
cmake
gtk2-devel
xulrunner-devel
chmlib-devel
libxml2-devel
libgcrypt-devel
intltool
版本方面不用担心,Yum库中的软件都符合要求。
 
软件截图:
 
 
可以看到中文乱码,这应该是1.3.0的一个Bug,chmsee采用内部默认的机制来识别编码,但有点问题,项目网站中已经有人提出,想必下一个版本即可修复。在此之前,可以手动修改文件编码为GB2312或是UTF-8,chmsee会缓存每一个曾经打开过的文件的编码设置。
chmsee的安装说明总体上还是很清楚的,至少按照他的说明来安装依赖后编译就不再出错,有些Linux软件就不是这样了,感觉依赖库根本没写全。我猜大概要好好学习下Linux下的编程才能清楚究竟该如何编译吧。如果大家有更好的技巧,请一定要告诉我,谢谢。

Google了很长时间,只知道Gwibber可以借用StatusNet和第三方API上推,但实际操作就发现,只能看推不能发推。至于如何解决这个问题,却说的不多。以至于不少人都在询问。其实Ubuntu中文论坛有个帖子说的很明白。地址:forum.ubuntu.com.cn/viewtopic.php?f=73&t=290640&p=2042552 ,按要求操作即可发推。

 

修改/usr/share/pyshared/gwibber/microblog/network.py

代码:
self.curl.setopt(pycurl.HTTPPOST, [(x, str(y)) for x,y in params.items()])

修改为

代码:
self.curl.setopt(pycurl.POSTFIELDS, urllib.urlencode(params))

已可以发推。gtap version: 0.4
http://code.google.com/p/gtap/issues/detail?id=80

 

由于使用的是StatusNet,协议不可能和Twitter的完全一致,不兼容似乎也正常。但是这么一改的话,我猜大约就不支持StatusNet自己了,仅仅是个猜测,我不懂Python。

Gwibber很不错,操作简单,使用便捷,而且还是系统自带,只是不支持Twitter的List功能,这点很遗憾。如果有的话,简直能和TweetDeck媲美了。

之前试着用PPA升级Gwibber至2.91,结果发现不知道为什么Gwibber不再支持Status了,只支持Twitter,Facebook和Identi.ca这三种服务了,赶紧删掉PPA重装。。

自由万岁,Twitter万岁!