First, thanks for all the ideas and responses. I already decided to go with FlatSvg, which is nice and net, the way I like things. Reinhards it also nice, though it offers a not so good contrast over dark backgrounds, that is why I decided to use FlatSvg:
kde-look.org/content/show.php?content=17158
It is a pretty extensive svg theme, “With 1776 pieces of SVG goodness” quoting the author of the icon set. I wanted to achieve two things: first, a good but sober overall look, I don’t like fancy things, you know. Second, portability.
My theme is as automatic as it can be in which regards configuration, meaning that it should need no tweaking at all to be used in any other display size (well, but for the gkrellm thing hehe). This svg thing was one of the last few pieces left to integrate in that scheme. So, my goal was to do a nice menu to change the icon size, and a default icons size of vp.height/64 if none has been configured. That is 16pix in 1024x768, which I think is fine.
The whole thing goes this way:
1.- First, make sure you update your cvs trunk, compile and make sure that librsvg and cairo are correctly installed.
2.- I use this to set the defaults:
Piperead `echo SetEnv icon_default $(($[vp.width] / 64))`
PipeRead `echo SetEnv icon_size $(cat $[FVWM_USERDIR]/.menu_icon_size || echo $[icon_default])`
3.- A nice function to do the job:
DestroyFunc ChangeIconSize
AddToFunc ChangeIconSize
+ I Piperead `echo SetEnv icon_size $0 && echo $0 > $[FVWM_USERDIR]/.menu_icon_size`
+ I Read $[FVWM_USERDIR]/menu.config
+ I Read $[FVWM_USERDIR]/windowops.config
For this, is convenient to have the menus in separate files (I use two files for practical reasons, but it could be one or twenty, just add them all at the end of this function), unless you want to Restart the whole fvwm each time you change the icon size… You decide.
4.- After that, you need a menu:
DestroyMenu user_IconSizeChooser
AddToMenu user_IconSizeChooser
+ "16x16%select.svg:$[icon_size]%" ChangeIconSize 16x16
+ "22x22%select.svg:$[icon_size]%" ChangeIconSize 22x22
+ "32x32%select.svg:$[icon_size]%" ChangeIconSize 32x32
+ "48x48%select.svg:$[icon_size]%" ChangeIconSize 48x48
+ "64x64%select.svg:$[icon_size]%" ChangeIconSize 64x64
+ "96x96%select.svg:$[icon_size]%" ChangeIconSize 96x96
+ "128x128%select.svg:$[icon_size]%" ChangeIconSize 128x128
5.- Then just insert it in any apropiate place or bind it somewhere:
AddToMenu menu_fvwmConfig
+ MissingSubmenuFunction ConfigBrowser
+ "Tapiz%wine.svg:$[icon_size]%" Popup WallpaperBrowser
+ "&Colorsets%wine.svg:$[icon_size]%" Popup ColorsetBrowser
+ "&Fuente%wine.svg:$[icon_size]%" Popup FontthemeBrowser
+ "&Decoración%wine.svg:$[icon_size]%" Popup menu_Decorations
+ "Tamaño de iconos%select.svg:$[icon_size]%" Popup user_IconSizeChooser
+ "Editar config%kate.svg:$[icon_size]%" Exec exec kate --session fvwmconfig &> /dev/null
+ "\$\[FVWM_USERDIR\]%konqueror.svg:$[icon_size]%" Exec exec konqueror $[FVWM_USERDIR] &> /dev/null
Nice. Now all you have to do is to adjust the ImagePath to your svg iconset folders, and then specify the icons in a similar way that I did in the menu at step 4, above. Like “icon.svg:$[icon_size]%”. More about the svg options on man fvwm, as usual.
Regards, and thanks again for all the input. It has been a valuable source of ideas.
EDIT, in case someone wants it, I will clean and package the whole config up to date soon and make it available, in case someone wants to play with it.