StickyWindowStipples / IconStickyStipples

This patch has since made it into 2.5.21

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 ..
./configure
make
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 $[w.name]
All (CurrentPage, !HasTitle) Echo $[w.name]

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

Menustyle: SkipSection

This is obsoleted by alternative methods in FVWM.

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

WindowStyle: Multicoloured-borders

This patch allows for the user to define different colorsets for the different areas of the border, including the handles. This works for both the focused and any or all unfocused windows. As an example:

Style * HilightBorderColorsetRegions 2 2 2 2

Will use Colorset 2 for all borders. The order the numbers are applied in as as follows:

Top
Bottom
Left
Right

The opposite of that for unfocused windows would be:

Style * BorderColorsetRegions 6 6 6 6

The handles of a window are handled like this:

# Focused window
Style * HilightHandlesColorsetRegions 3 3 3 3

# Unfocused window
Style * BorderHandlesColorsetRegions 4 4 4 4

To which the handle colorsets are applied like this:

Top Left
Top Right
Bottom Left
Bottom Right

As an entire example including a screenshot...

Colorset 2 fg white, bg darkred
Colorset 3 fg white, bg blue
Colorset 4 fg white, bg orange
Colorset 5 fg white, bg green

Style * FvwmBorder, BorderWidth 7, HandleWidth 7
Style * HilightBorderColorsetRegions 2 2 2 2
Style * BorderColorsetRegions 6 6 6 6
Style * HilightHandlesColorsetRegions 3 3 3 3
Style * BorderHandlesColorsetRegions 4 4 4 4

There are some known caveats: 1. It breaks UseBorderStyle in decors (obviously), and 2. It doesn't handle windows where they've been declared as having no handles. I will fix these.

To apply this patch:

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

Style: StartShaded

This is now in FVWM 2.5.23, but remains here for historical purposes.

This patch allows for a new style condition StartShaded which will automatically shade windows in a given direction (which is optional) when the window is mapped, as opposed to using FvwmEvent. As an example:

DestroyModuleConfig FE-SS:*
*FE-SS: add_window "ThisWindow (name1|name2|name3) WindowShade"

AddToFunc StartFunction I Module FvwmEvent FE-SS

Would be replaced with:

Style name1 StartShaded
Style name2 StartShaded West
Style name3 StartShaded East

The optional direction is in accordance with the direction commands that the WindowShade command accepts.

You can find the patch here. To install it, it's the same as the other patches:

cd /path/to/fvwm/repository
patch < /path/to/startshaded_window.patch
./configure
make

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:

UseTips

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

PageName command

This patch allows for the naming of individual pages per desk -- it works in the same way as the DesktopName command does. For example:

DesktopSize 2x2
DesktopName 0 Games

PageName 0 0 0 MoonBuggy
PageName 0 0 1 Cowsay
PageName 0 1 0 MoonLander

PageName accepts three arguments then:

At present, only:

GotoPage MoonBuggy

works. But I plan to make this a generic rule in terms of allowing a page name for use with: GotoDeskAndPage, etc.

This patch also allows for:

DesktopName 0 Games
DesktopName 1 Work

GotoDesk Games
GotoDesk Work

To apply this patch (against the CVS version of FVWM only) use the following:

cd /path/to/fvwm/source/fvwm && patch -p0 < ./fvwm-pages-info.patch

TitleFormat style command

** I have since included this in FVWM 2.6.3, but remains here for historical interest only. **

This patch allows for custom window visible names for window titles; incorporating features from IndexedWindowName (deprecated by this patch, along with: IndexedIconName, ExactWindowName, ExactIconName) the following placeholders are valid:

So for example, the following is possible:

Style * TitleFormat %n [%t] -> %c (%I)

Note that no quotes are stripped, so the entire option set presented to TitleFormat is taken verbatim.

To apply this patch (against the CVS version of FVWM only) use the following:

cd /path/to/fvwm/source/fvwm && patch -p0 < ./fvwm-pages-info.patch