Wednesday, December 10, 2008

My first fvwm module

I've been using FVWM for some time now, but have never tried writing any kind of modules to extend it. Yesterday I tried it out, and I've got my first working FVWM module.



I wrote the module in Perl, and you can view there source here. Basically what it does is capture window focus events, and will set the transparency of the window to whatever is set in a configuration file
pblair@laptop:~$ cat ~/.fvwm/fvwmPeteTrans.cfg
XTerm:0.60
The above config will set all xterminals to 60% opacity when the focus moves away from it, but will return it to complete opacity once focus returns to it.

You can add as many types of applications (one per line). For instance, Firefox has
$ xprop | grep CLASS
WM_CLASS(STRING) = "Navigator", "Firefox"
So you could either place "Navigator" or "Firefox" at the left of the colon.

To install the module, place it somewhere where the .fvwmrc ModulePath will find it, then place it into the StartFunction section:

AddToFunc StartFunction
+ I Module FvwmPeteTransFocus
+ I FvwmButtons
P.S. You need "xcompmgr" and "transset" installed. And be sure to change the absolute pathnames within the module to the respective locations on your system.

No comments: