Patches for FVWM

StickyWindowStipples / IconStickyStipples

(As of FVWM 2.5.20, this patch is now included with FVWM.)

This patch allow for new style options StickyWindowStipples to be used with sticky window to turn the stipple effect on or off. To apply it, download the latest source for FVWM (unstable, or CVS will do), then:

    cd /path/to/fvwm-source/fvwm
    patch < /path/to/fvwm-stipple-patch.patch
    cd ..
    su -c 'make install'

When you've done that you can then edit your ~/.fvwm2rc file to include style lines such as the following. In the case of a window titled "xterm" the window will be sticky, but won't have any stipples drawn:

    Style rxvt Sticky
    Style xterm Sticky, !StickyWindowStipples

To turn on stipples for sticky windows:

    Style rxvt Sticky
    Style xterm Sticky, StickyWindowStipples

There is also an equivalent style for icons as well. The following will turn off the rendering of the stipples for the icon matchig "xterm".

    Style rxvt Sticky
    Style xterm Sticky, StickyWindowStipples, !IconStickyStipples

The following negates it to redraw the stipples on icon titles:

    Style rxvt Sticky
    Style xterm Sticky, StickyWindowStipples, IconStickyStipples

Conditional: HasTitle, HasBorders

This patch allows for two new conditionals that's matched within condition commands: HasTitle checks whether a window has a titlebar or not. hasBorders checks to see if a window has a border. Example:

    	All (CurrentPage, HasTitle) Echo $[]
	All (CurrentPage, !HasTitle) Echo $[]

	All (CurrentPage, HasTitle, HasBorders) Echo $[]
	All (CurrentPage, !HasBorders) Echo $[]

Menustyle: SkipSection

This patch stops the skipping between menu sections. When pressing Ctrl-Tab on a menu which has separators, the default behaviour is to "jump" to that section. Whilst it is turned on by default, the following styles negate and re-enable that behaviour:

    # Don't skip sections.
    MenuStyle * SkipSection
    # Turns it on again.
    MenuStyle * !SkipSection

FvwmButtons: Tooltip patch

This patch (currently a work in progress) allows for the generation of tooltips for buttons. A very simple button config demonstrates this:

    Test (!EnvIsSet FBMP2) SetEnv FBMP2 $[HOME]/fvwm-2.5.18/modules/FvwmButtons/FvwmButtons 

	KillModule $[FBMP2] FE-eg
	DestroyModuleConfig FE-eg:*
	*FE-eg: Columns 4
	*FE-eg: Rows 4
	*FE-eg: UseTips 
	*FE-eg: TipsFont "-*-fixed-medium-o-semicondensed-*-13-*-*-*-*-*-*-*"
	*FE-eg: TipsColorset 0
	*FE-eg: TipsBorderWidth 1
	*FE-eg: (1x1, Title "Hello", TipsLabel "This is my tip", Action (Mouse 1) Nop)
	*FE-eg: (1x1, Title "Hello2", TipsLabel "This is my other tip",Action (Mouse 1) Nop, ActiveIcon cd.xpm)
	*FE-eg: (1x1, Title "Hello3", ActiveIcon $[HOME]/.fvwm/icons/Xfm.xpm)
	*FE-eg: (1x1, Title "Hello4", TipsLabel "Label4", Action (Mouse 1) Exec exec xcalc, ActiveIcon $[HOME]/.fvwm/icons/Xfm.xpm)
	Module $[FBMP2] FE-eg

The options are much the same as for FvwmIconMan, although currently, I've implemented the tips positioning but ignored it, in favour of having the tip follow the mouse for the button it's currently in. Hence in the above example, the only required field to get tips working is:


The other tips options (TipsFont, TipsColorset, TipsBorderWidth) are all optional and will use the defaults. Each specific button has its own tipslabel which must be user-defined. I might look at making a tipslabel default to the button's title (if it has one) or the hangon (again if it has one), although currently the only way a tip will be displayed is if it is a user-defined string.

To apply this patch:

	cd /path/to/fvwm/source/fvwm && patch -p0 < ./FvwmButtons-tips.patch

It applies against the latest CVS snapshot, and the latest unstable release. Note that you will need at least 2.5.X in order to use this.

FvwmButtons: ActiveAction patch

This patch allows for actions to happen as soon as the mouse enters into a specific button. For instance:

    *FvwmButtons: (1x1, Action beep, ActiveAction "Exec exec xcalc", Title "My Button")

This should be applied against the latest CVS of FVWM, and the patch should run from the top-level directory, with the following command:

patch -p0 < ./FvwmButtons-ActiveAction.patch