2005年11月29日星期二

vim-cream的tear-off menu

vim的菜单是支持tear-off的(gtk, motif 1.2或者win32版本), 但装了cream(debian package)之后,菜单就不再能够拆下来了。

vim的文档里面说可以用":tearoff 菜单名"这个命令来手工将一个菜单拆下来。

注意: 1. 对于已经翻译过的菜单,直接使用翻译过的名字,比如简体中文环境可以用":tearoff 编辑(E)";

2. vim是采用'.'来分隔多级菜单的,比如用":tearoff 设置(S).色彩主题(C)"就可以拆下cream的color scheme菜单,然后我们就可以一个个地试验那个颜色比较养眼了。

当然,如果你想主菜单创建的时候就有那个用于拆卸的分隔条,也是可以办到的: set guioptions+=t,但我看见cream/cream- settings.vim里面特意关闭了这个选项,不知道是不是有什么特殊的原因。

链接:

Tear-off menu 有什么不好
vim -cream的菜单国际化(i18n)支持

2005年11月25日星期五

搞定无线上网

现在又有了宽带用,于是把原来商家送的无线路由器翻了出来,开始玩无线上网。

在网上翻了半天,好像很多无线网卡得用ndiswrapper来调用windows的驱动。幸运的是我的本本上的无线网卡是Intel PRO/Wireless 2200BG,intel提供了ipw2200驱动

安装步骤大致如下:

modprobe ipw2200
iwconfig eth1 essid YOURID
ifconfig eth1 up
dhclient eth1

当然有些细节还得说说:

1. 首先,你得先看看你的内核有没有ipw2200内核模块: find /lib/module/kernel-${kernel_version} -name 'ipw2200*',我的kernel是ubuntu的,自带这个,Mandrake的也带。如果没有的话,就得自己编译了。

2. modprobe ipw2200之后,用dmesg | grep ipw2200看看是否成功。最可能碰到的一个问题是没有相应的firmware, 需要先下载放到/usr/lib/hotplug/firmware/或者/lib/firmware/(具体位置请查看 /etc/hotplug/firmware.agent里的配置)。然后重新加载ipw2200模块: rmmod ipw2200; modprobe 2200

3.modprobe ipw2200成功后,可以从iwconfig看到对应的网络接口名(network interface),我这里是eth1。

2005年11月24日星期四

感恩节

1960年4月16日下午3点前的一分钟,我们做了朋友,因为你,我会永远记住这一分钟的。――《阿飞正传》

2005年11月22日星期二

Tear-off menu有什么不好?

半年前写过一篇tear-off menu,里面提到gnome2缺省没有打开这个功能,但可以通过一个gconf设置项打开。

但这并不适用与“开始”菜单,因为上述设置只影响gnome_menu_new()创建的菜单(由libgnomeui里面提供),而开始菜单gnome-panel是直接用gtk_menu_new()创建的。

对于这个功能的缺失我一直有点耿耿于怀。 今天下载源代码看了看,发现要加这个并不难,效果图见右,尤其是Debian菜单现在用起来方便多了。

但我不明白的是,当初为什么要删除这个功能?

--- gnome-panel/menu.c.orig     2005-06-07 03:08:56.000000000 +0800
+++ gnome-panel/menu.c 2005-11-23 00:07:22.000000000 +0800
@@ -257,6 +257,7 @@ GtkWidget *
panel_create_menu (void)
{
GtkWidget *retval;
+ GtkWidget *tearoff;
static gboolean registered_icon_theme_changer = FALSE;

if (!registered_icon_theme_changer) {
@@ -267,7 +268,11 @@ panel_create_menu (void)
}

retval = gtk_menu_new ();

+ tearoff = gtk_tearoff_menu_item_new();
+ gtk_widget_show(tearoff);
+ gtk_menu_prepend(retval, tearoff);
+
panel_gconf_notify_add_while_alive ("/desktop/gnome/interface/menus_have_icons",
(GConfClientNotifyFunc) menus_have_icons_changed,
G_OBJECT (retval));

昨天升级后发现debian菜单没有了

今天发现GNOME的debian菜单没有了,昨天刚做过apt-get upgrade,估计是它带来的。

解决方法: apt-get install menu-xdg

(好在这两天不是特别忙,可以抽空翻翻邮件列表。debian-gtk-gnome邮件列表上前几天也有其他人提出这个问题。)

2005年11月18日星期五

Cygwin Ports

早在cygwin的主页上看见了Cygwin Ports的公告,说是提供了近700个包,还包括GNOME 2和xfce4!

但原来一直访问不畅,所以也没有特别注意。

昨天又试了一下,发现不仅有GNOME 2.10,而且pygtk2, python-gnome2以及很多应用程序(比如devhelp, gnochm, stardict, gaphor, sodipodi, bmp)都有。爽啊!

xorg的15:9分辨率问题

对Debian做了一次整体升级,X也从XFree86也升级到了X.org,但原来的1280x768分辨率不见了。

[@more@]

Google跟我说这是xorg的一个bug, 对i855的显卡出不了1280x768的选项。但仔细看下来,这个问题已经解决了啊。

还是回头先看看错误输出吧,查看/var/log/Xorg.log,发现这么一段:

(WW) I810(0): config file hsync range 30-60kHz not within DDC hsync ranges.
(WW) I810(0): config file vrefresh range 50-75Hz not within DDC vrefresh ranges.
(II) I810(0): Generic Monitor: Using hsync range of 30.00-60.00 kHz
(II) I810(0): Generic Monitor: Using vrefresh range of 50.00-75.00 Hz
(II) I810(0): Not using mode "1280x960" (no mode of this name)
(II) I810(0): Not using built-in mode "1280x768" (width too large for virtual size)
(--) I810(0): Virtual size is 1024x768 (pitch 1024)
(**) I810(0): *Built-in mode "1024x768"
(**) I810(0): *Built-in mode "800x600"

看来是virtual设置在捣乱, xorg.conf的手册页上说比virtual设置大的分辨率都会被喀喳掉。看了一下我的xorg.conf,没有设置这个啊,这个1024x768的设置哪里跑来的?

不理它,参照man xorg.conf的说明自己设一个。然后在GNOME的“屏幕分辨率”里面就看见1280x768的选项了。搞定。

2005年11月17日星期四

gdm: 如何禁用不需要的会话(session)名

一不留神,成了公司论坛上的"Linux"版的专家。昨天收到一个问题问如何禁用gdm中的某些会话(session)名称。

记得以前装xfce4时也碰到过类似的问题,只是当时想在上面添加一项xfce4。但当时看遍了/etc/X11/gdm下的文件也没看出怎么设置,只好等到后来debian自己提供了这个条目。

怎么解决呢?

[@more@]
拉下gdm的源代码翻了一下,发现它似乎是这样的: 寻找/usr/share/xsession/下的.desktop文件,如果里面Hidden为false(这也是缺省值)就显示它,否则就不显示。

好在debian提供了包文件搜索,我可以进一步验证哪些包提供了这个目录下的文件: 搜索usr/share/xession即可看出,众多的wm也提供了这个目录下的文件,而gdm提供的文件中只有两个.desktop文件,另外一个明显不是。基本可以确认了。找个闲着的机器试验一下就可以正式确认。

P.S 比较奇怪的是xfce4的这个文件是由xfce4-utils提供的,而不是xfce4-session.

2005年11月8日星期二

Python and XUL

Daily Python-URL上看见的:

Sidnei da Silva: Python and XUL: The Screenshot [«Mark Hammond just shown me a screenshot of Python and XUL. That's right, Python used as scripting language on our most beloved browser to create XUL interfaces.»]

比较完整的说明在这里。上面说估计在Mozilla 1.9上可以看到这个东西。

本来我对XUL还是有兴趣的(近来的工作也存在一个如何快速制作业务界面(数量多但大都比较简单)的问题),只是一直懒得去学javascript了。

2005年11月5日星期六

Porting simple Delphi application to Lazarus

You should read the following docs first:

Now I'm porting unwebcompiler(see also) to lazarus. The Windows version now works fine. but the linux one would thraw exceptions on LH5 decompressing.

The debugger refuse to work on my Linux box, I have to fall back on gdb.

Another problem is the executable created by Lazarus is too big(as for the unwebcompiler, it is about 6M). :-(