Tuesday, March 06, 2007

FVWM-Crystal

I have tried some window managers these days, such as Beryl and FVWM. The 3D effect of Beryl is really astonishing but its requirement is too high. Finally I found fvwm-crystal. It is both nice looking and light-weighted. I like it.

However, I found the fvwm-crystal project is not well documented. Here are some tips for the configuration of fvwm-crystal.

* fvwm-crystal is actually a nice configuration of fvwm with some handy small tools. So almost all the configuration for fvwm can be used directly on fvwm-crystal.

* The user configuration file is stored in ~/.fvwm-crystal/userconfig (for fvwm-crystal 3.0.4 and above). The configuration file for fvwm-crystal 3.0.3 and below is still in ~/.fvwm/ .

* The most default key bindings are Meta- or Meta-Shift- which conflict with Emacs key bindings. So I have to disable them all like this:
Key 1 A MS - # disable M-S-1
Key X A M - # disable M-x

The default key bindings are in /usr/local/share/fvwm-crystal/fvwm/components/bindings/ .

* Font set. The default font is Verdana. So the multibyte characters are not able to be displayed correctly. I have to change it to font like Vera Sans YuanTi. The window title bar font configuration is:
Style * Font "Shadow=1 1:StringEncoding=gbk-0:xft:Vera Sans YuanTi:Bold:pixelsize=12:minspace=True:encoding=iso10646-1"

* I think 8 virtual desktops are too many. So change it to 6:
DeskTopSize 6x1

* The "suspend" in the main menu doesn't work quite well. It will logout and then suspend to memory. I use Fn+F4 on my ThinkPad instead. This works fine. Maybe you need to install xscreensaver.

* Removable devices can't be auto mounted as in GNOME. You can install ivman and put the following line into ~/.bashrc:
ivman --nofork > /dev/null 2>&1 &
Here is some more information about how to auto mount removable devices.

* KDE applications such as Amarok and Kopete don't stay in trayer. You may need to start Amarok this way:
amarok
dcop kded kded loadModule kdetrayproxy
After that, other kde apps like Kopete will stay in trayer as well. However, I have tried to put the second line in to InitFunction or StartFunction but it doesn't work.

* Some startup applications. You can add startup apps like this:
AddToFunc InitFunction
+ I Exec exec dcop kded kded loadModule kdetrayproxy
+ I Test (x gkrellm) Exec pidof gkrellm || exec gkrellm
+ I Test (x update-notifier) Exec exec update-notifier
+ I Test (x gdeskcal) X gdeskcal

***

3 comments:

sishen said...

Sth. i don't agree.

I think the requirement of beryl is normal.

For example.. the intergrated Graphics Card i950 is very happy to run it.

However, ATI/NV which is much better need some addtional effort. Strange, yes. :)

jasonal said...

大概因为我用Aiglx所以会影响性能?

Anonymous said...

For your information, you shouldn't be using InitFunction, as per the following post:

http://fvwm.lair.be/viewtopic.php?t=1505

StartFunction is preferred.

-- Thomas Adam