metisse 初探

May 08, 2008 in fvwm, linux

实话说是依依弄起的,这个东西,虽然以前看过,但是一直没有尝试,看到依依尝试失败了,才想起来玩下。简单的编译安装了,试了下,还是比较好玩的。下面给几个截图。。

1.透明效果
透明效果
嘿嘿,还是真透明。。。

2. 窗口排列效果
窗口排列效果
窗口可以在任意位置任意角度的摆放,虽然看起来有点乱。。

3. 窗口变形
圆形窗口
rxvt,变成圆形的了…

4. 卷起
动态的卷起效果
为了不把 rxvt 挡住,firefox 和 xterm 自觉的卷起了一小部分

5. 窗口平铺
窗口平铺效果
默认的9个pager,可以看到当前的 root window 和在活动窗口上的一些子窗口。

当然还有一些问题,虽然这个是用的 fvwm 的配置,不过我原来的配置还没有弄过来,看了下,比较繁琐,
因此使用也不很顺手,权当玩下,有空了再来研究细节了…


升级了 pgf 宏包, xetex+beamer 完美插入图片

Apr 25, 2008 in tex, tips

标题党下,说完美也是相对的,不过是方便多了~

使用 xetex 很久了,一直用它来写文章,做幻灯片,采用 adobe 中的那4套字体, 效果也不错。

幻灯片使用 beamer, 虽然没有太多的效果,不过也够用了,以前一个恼火的问题是一定要使用
\usepackage[dvipdfm]{beamer} 这样的来指定 xetex 的 pgf 引擎,从而来生成正常的 pdf 文件,否则
不能编译生成正常的幻灯片。而这样做的一个不好的地方就是在插入(png/jpg/pdf)格式的图片的时候会需要一个
boundbox 文件,就是比如要插入一个 figure.jpg, 需要一个同名的 figure.bb 文件,以前的解决方法是采用 ebb 这个程序生成这个文件,这样也能够解决问题。不过在最近一次插入一个 pdf 文件的时候,出现了一个小插曲。
Version of PDF file (1.4) is newer than version limit specification.
Can't handle file type for file named graph1-1.pdf

于是想了一个办法,就是首先采用 convert 将这个 pdf 转化成 png, 然后使用 ebb 得到 bb 文件,然后将 png 删除, 再插入相应的pdf 文件,此时能够正常的找到对应的 bb 文件,也能插入正常的 pdf 矢量图。不过就是麻烦了一些。

突然想到一个问题,在写文档(非 beamer) 的时候,同样采用 xetex 编译,插入图片的时候相当的自由,也不要 bb 文件,而写幻灯片的时候就需要这个bb,插入 pdf 还弄得这么复杂。但是找不到相应的原因。一个偶然的机会,发现就是 beamer 文件里面的那个 [dvipdfm] 声明在作怪。去掉这个选项然后编译,发现通不过,找不到 pgfsys-xetex.def 这个 engine, 嗯,貌似是 pgf 的问题, 我的 tex 包是 texlive2007, 07 年 2月出来的,上网查了下, 发现 2008 年 2 月的时候 pgf 有更新,于是下载,安装到相应的地方,再测试, OK. 问题解决。

插入图片和 xetex 写一般文档一样自由舒服了。


转回 fvwm

Mar 29, 2008 in fvwm

玩 gentoo, 懒得编译 gnome/kde 这样的大家伙, kde4 虽然也试了下,不过日
常使用还是不习惯,之前使用 sawfish, 因为喜欢它的 jump-or-exec 插件的功能,之
前也没有仔细研究过 fvwm 有没有这个功能。一直认为是没有。好了也说一下这个
jump-or-exec 是个什么东西。简单的说就是这样,如果你要打开一个程序,而这
个程序已经打开了,但是目前在后台,那么这个此时的动作就将它调到前台,聚焦。
如果这个程序没有打开,就将其打开送到前台。这样在任何时候将保持一个运行实
例。这个功能初看不怎么样,不过设想一下下面一个场景,先开了一个 term,比
如是 urxvt,然后开了一个 firefox,全屏了,盖住了 urxvt, 然后看了会网页,又
要回去 urxvt,有了这个功能,只要一个快捷件,就回去了,比所谓的鼠标去找
taskbar 然后点击来的快多了。因此 taskbar 也显得多余了。。当然,这个例子
不是很恰当,因为当前的 wm 对 pager 的支持都是不错的,完全可以放在不同的
pager 里面来管理。不过类似这样的管理方式,应该是一个优秀的 wm 必备的。

说起来还是 ee 提示的结果,不过 ee 简单的将这个功能理解为单运行实例,个人
觉得不太准确,原因如上所述。在 irc 讨论一番之后, weakish 给了一个链接
[1]。找到了一个思路,很简单,因为 wm 当前打开的每一个窗口的信息都是知道
的,而对于一个程序来说,它的信息中有一些是固定的,比如一个窗口所属的类别
等等,因此可以简单的维护一个列表,将程序的运行命令与这个特定属性加以联
系,这样当运行这个命令的时候,就去搜索这个属性,若存在,就将那个匹配上的
窗口拿到前台来,否则就运行这个实例。拿到前台可能要考虑几个情况的操作,比
如聚集,提升,或解除图标化,一个简单的函数 EWMHActivateWindowFunc 可以完
全做到这些(话说,还是 ee 发现的。。。)。于是最后的代码如下:

  1. DestroyFunc JOE
  2. AddToFunc JOE
  3. + I All ($0) EWMHActivateWindowFunc
  4. + I TestRc (NoMatch) Exec exec $1 &

绑定快捷键的时候就像下面这样。

  1. Key r  A  4 JOE "ROX-Filer" rox

其中那个打引号的 “ROX-Filer” 是 rox 这个程序的 Class 名称,所有窗口的
Class 名称可以使用 Identify 函数看到。。。
这样,每当按下 Win-r 快捷键的时候, rox 就会跑到前台,然后就开始喜欢的操
作了。想用别的程序了,只要一个快捷组合,就也出来了。。。

嗯,话说那个 fvwm-crystal 的 decor 还做的不错,偷偷弄来用了。。。

[1] jump or exec


gentoo 下手工编译安装 kde4

Jan 18, 2008 in linux

kde4 出来的当天,终于忍不住了,于是下载了在原来的 gentoo 的基础上手工编
译了一份,一直用着,由于经历过 alapha1 的折磨,因此一直都是小心翼翼的,
身怕出现什么崩溃问题,不过就这几天的使用来看,一般的日常使用还是没有什么
问题的,相比于之前的一些版本,这个正式版也算是有些正式版的样子了。闲话就
不说了,直接说怎么安装吧。。

准备工作:
cmake, 直接 emerge 就可以用了。
qt4, 也式直接可以 emerge, 但是要注意的是 USE, 必不可少的 USE 有 dbus,
qt3support 和 accessibily。不能缺少。
alsa-lib, 一般虽然安装过了,但是要编译安装 kde4 特别要使用 midi 的 USE。
boost, 这个最好要上,直接 emerge 就可以了。
xine-lib,kdebase-runtime 需要,直接 emerge 就可以了。
gpgme, kdepimlibs 需要,直接 emerge 即可。

有了上面这些就差不多了,kdelibs+kdebase 就可以完成了。

编译安装:

第一步下载包,这个不说了,下载放到一个目录,比如 ~/KDE4, 解压出来。
同时编译时为了不和系统中存在的 kde3 或其他的冲突,最好指定 PREFIX,见下
文中的 cmake 的参数。是指定到了 /opt/kde4
首先需要安装的是 kdesupport 之中的相关包。

  1. svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/
  2.  cd kdesupport
  3.  mkdir build
  4.  cd build
  5.  cmake .. -DCMAKE_INSTALL_PREFIX=/opt/kde4
  6.  make -j2 //并行加快编译。
  7.  sudo make install

这样会将编译 kde4 需要的一些支持包都装上,包括 strigi, qimageblitz 等。
这样装是最省心的办法。

之后就可以编译 kdelibs 了, 解压进去之后,

  1. mkdir build
  2.  cd build
  3.  cmake .. -DCMAKE_INSTALL_PREFIX=/opt/kde4
  4.  make -j2 //并行加快编译。
  5.  sudo make install

如果其中说找不到 strigi 的,一般是 pkg-config 的 path 不对,可以这样
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/kde4/lib/pkgconfig

再然后需要kdepimlibs,编译方法同上。再然后就是 kdebase,
kdebase-workspace, kdebase-runtime。这几个装好之后就可以体验下 kde4 了。

我的方法是不用 kdm, 直接 startx 。

  1. $cat .xinitrc
  2. export XMODIFIERS="@im=fcitx"
  3. export XIM=fcitx
  4. export XIM_PROGRAM=fcitx
  5.  
  6. export GTK2_RC_FILES=~/.gtkrc-2.0
  7. ## read the .Xresources file
  8. xrdb -merge .Xresources
  9. fcitx&
  10. export KDEHOME=~/.kde4
  11. exec /opt/kde4/bin/startkde

其中重定义了 KDEHOME,这样,KDE4 的设置相关就会保存在 ~/.kde4 下面,不会
和 kde3 冲突了,同时也指定了 GTKr2_RC_FILES, 这样 gtk 的界面就不会那么丑
陋了。默认的 gtkrc 是使用的 $KDEHOME/share/config/gtkrc-2.0, 但是这个文
件是 kde4 自己管理的,她会给偷偷的改了,一个解决办法是复制一份 gtkrc 到
这里然后设置权限,不让 kde 自己改。。

然后,startx 就可以启动 kde4 了,左看看右看看。桌面上拖几个 widgets,弄
弄 dolphin,试试 konqueror。hmm 还行, 不过,okular 呢? 图片查看?音量如何调节?我要上 msn,
还要听歌,看电影。。。 还有,那个游戏也要看看啊。。

那就慢慢安装吧。
okular 在 kdegraphics 里面,同时还有 gwenview ,就是那个图片查看器。不
过,okular 也是能够查看图片的。。 重要的写画 pdf 的功能,需要安装
poppler,值得说的一点是需要 poppler-bindings 加上 qt 的 USE。
kmix,调节音量的软件,在 kdemultimedia 里面,同时里面还有一个音乐播放器
juk。可以编译安装,用来听歌吧。在 amarok2 还几乎不能用的今天。。
kopete 在 kdenetwork 里面。
这些包的安装方式都和前面相同。值得指出的一点是如果不许要其中的一些软件,
比如编译 kdenetwork 时,不想要 kppp, 那很简单,编辑一下 kdenetwork 下面
的 CMakeLists.txt, 将其中的包含 kppp 的那一句给注释了就是。

差不多就这样了,其他的软件自己选择安装就好了。

体验与问题:
说个问题,我这里一开始 phonon 后端就是不发声,本来进入 kde4 之后以及注销
的时候都有音乐提示的。同时 juk 播放音乐也没有声音。。后来查了一下,发现
在文件 /etc/asound.conf 中写下下面的就好了。

  1. pcm.softvolPhonon {
  2.     type softvol
  3.     slave.pcm "default:CARD=0"
  4.     control {
  5.         name "Phonon"
  6.         card 0
  7.     }
  8.     min_dB -51.0
  9.     max_dB 0.0
  10.     resolution 100
  11.     hint {
  12.         show on
  13.         description "My Soundcard with extra Volume Control"
  14.     }
  15. }

详细的说明在 http://phonon.kde.org/cms/1032

还有一个问题就是我的 kopete jabber 不能上 gtalk,问了下,别人好像也有这
个问题。。。

先就这样吧。

参考了几个文章:
http://forum.ubuntu.org.cn/viewtopic.php?t=97328
http://forum.ubuntu.org.cn/viewtopic.php?t=100521


2008…

Jan 01, 2008 in life

理了个发,洗了个澡,调整下心情,坐等 08。

时间过得飞快,成长也跟着起来。各个网站都在整理自己得 07 年总结,此时得窗
外也是一片鞭炮声响起。是结束也是开始。

忽然想起很多年都是这般,这淡漠,看似沉静却也是激荡。静静的就不知道了时间
的成长,而有时终于悄然回首的时候,却没有了那般的从容。或许就是这样。

不惯回顾,有时时因为无所回顾,不过还终于是能够寄望将来。将来不是正到来么?

道一声新年快乐,整一下来年计划,这一年,也就这样开始了。

洗洗睡了。。。。


后知后觉:cdlatex

Dec 17, 2007 in emacs, tex

以前一直用 emacs+auctex 写 tex 文档,基本上比较满意了。部分编译,数学公
式预览,check 具体检查语法错误,再加上自己写一个小模板,基本的编辑都用上
了,也觉得比较顺手。只是有时候输入数学公式的时候比较郁闷,会少了 $ 符号
这样的。今天网上乱逛的时候,发现了一个叫 cdlatex 的东西,看了一下,虽然
有些功能和 auctex 重复,但是也别有一番风味。

cdlatex 主页虽然很久没有更新了,作者说是自己实现一些 auctex 的功能是因为自己
不知道 auctex。下载稍微试了一下,发现在很多方面,比 auctex 显得方便。
Continue reading…


小修改了一下 po-mode 的配置

Dec 15, 2007 in emacs

之前
小修改
了一下 po-mode, 使用了 . 来识别是否需要真正的使用 \n 来断行,
但是今天被郁闷了,翻译 kile.po 时遇到了几个 abc.def 的文件名,照样翻译了
之后,点被替换成 \n 了。于是发现用其他符号代替回车不是一个好办法,最好的
还是使用 \n,不过一个问题是,emacs 替换时会将 \n 替换成 \\n,这是基于 \
的转义,平时在一行的中间也是可以的,但是在一行的行尾的话就会有问题。

继续查看了一下,突然想到进行二次替换,也就是将行尾的 \\n 重新替换成 \n,
测试写了一下,基本正常,比 . 的办法是稍微漂亮一些了。

同时一个问题是在编辑的时候,下面的窗口,也就是编辑窗口,默认是没有打开
auto-fill-mode 的,这样,编辑的时候断行就不怎么方便,看了下源码,找到了
一个 hook, 添加了下,好了。
Continue reading…


不能忍了,卸载了 ssmtp

Nov 23, 2007 in emacs

不知怎么搞的,配置得好好的 ssmtp 就不能用了,报什么
smtpmail-smtp-server’ not defined 的错误,一怒之下删除了。
使用 emacs 自己的 sendmail 看了。

  1. (setq smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
  2.       smtpmail-smtp-server "smtp.gmail.com"
  3.       smtpmail-default-smtp-server "smtp.gmail.com"
  4.       send-mail-function 'smtpmail-send-it
  5.       message-send-mail-function 'smtpmail-send-it
  6.       smtpmail-smtp-service 587
  7.       smtpmail-auth-credentials '(("smtp.gmail.com"
  8.    587
  9.    "username"
  10.    "passwd")))

测试了一下,这不照样用么,看来 emacs 的更新还是很大的,以前这样的配置是
不能用的。

sigh: 之前的哦 fetchmail + procmail +Emacs/gnus+postfix 的组合,再之后 getmail +Emacs/gnus+ssmtp 的组合,再然后是 Emacs/gnus(nnimap)+ssmtp ,兜了一个大圈子,还是回到 emacs 本身了…


Gmail Imap 部分中文的乱码问题似乎修复了?

Nov 17, 2007 in Software, life

晚上回来,照例打开 gnus 收取邮件, Lupa 社区发了一封信件,
由于前面一篇文章中叙述的原因,这封信件一直是乱码的,但是一不小心,点开
了,看了一眼,竟然中文没有乱码。高兴了,似乎这个问题修复了?

上网没有搜索到有价值的东西,在 irc 中和 manphiz 讨论了一下,他的测试也是
好了,hmm,不知还有没有用 gmail 的 imap 的,大家看看那个 bug 是不是修复
了,如果是的,就太好了。

PS. 之前叙述 imap 乱码的那篇 日志


emacs po-mode 断行的问题

Nov 14, 2007 in emacs

emacs 的 po-mode 非常好用,而且几乎不用任何配置,快捷键很多而且很简单。
比如 n 跳到下一条,t 跳到下一条翻译的,u 跳到下一条没有翻译的,f 跳到下
一条标记 fuzzy 的, backspace 增加 fuzzy 标记, TAB 去除,等等…

不过也有个比较郁闷的地方,就是多行的文本,在 emacs 中配合 autofill-mode
自动换行之后,会在每一行后面多出一个回车符“\n”,这个是不需要的,并且以后
修改的时候比较麻烦。因为在 po-mode 中是不能直接随心所欲的编辑文本正文的。
所以只有文本模式下面编辑。再处理一次简直是不可原谅的。所以就自己想修改一
下,查了一下,该死的竟然没有文档,于是就只有修改源码了。。。

Continue reading…