Propagate Layer changes via Style command on-the-fly.
[fvwm.git] / modules / FvwmWindowMenu / FvwmWindowMenu.1
blob84df305ca6cbf76ec5405941fb24a42a41413988
1 .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.02)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sh \" Subsection heading
6 .br
7 .if t .Sp
8 .ne 5
9 .PP
10 \fB\\$1\fR
11 .PP
13 .de Sp \" Vertical space (when we can't use .PP)
14 .if t .sp .5v
15 .if n .sp
17 .de Vb \" Begin verbatim text
18 .ft CW
19 .nf
20 .ne \\$1
22 .de Ve \" End verbatim text
23 .ft R
24 .fi
26 .\" Set up some character translations and predefined strings.  \*(-- will
27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
29 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
30 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
31 .\" nothing in troff, for use with C<>.
32 .tr \(*W-
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34 .ie n \{\
35 .    ds -- \(*W-
36 .    ds PI pi
37 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
39 .    ds L" ""
40 .    ds R" ""
41 .    ds C` ""
42 .    ds C' ""
43 'br\}
44 .el\{\
45 .    ds -- \|\(em\|
46 .    ds PI \(*p
47 .    ds L" ``
48 .    ds R" ''
49 'br\}
50 .\"
51 .\" Escape single quotes in literal strings from groff's Unicode transform.
52 .ie \n(.g .ds Aq \(aq
53 .el       .ds Aq '
54 .\"
55 .\" If the F register is turned on, we'll generate index entries on stderr for
56 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
57 .\" entries marked with X<> in POD.  Of course, you'll have to process the
58 .\" output yourself in some meaningful fashion.
59 .ie \nF \{\
60 .    de IX
61 .    tm Index:\\$1\t\\n%\t"\\$2"
63 .    nr % 0
64 .    rr F
65 .\}
66 .el \{\
67 .    de IX
69 .\}
70 .\"
71 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
72 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
73 .    \" fudge factors for nroff and troff
74 .if n \{\
75 .    ds #H 0
76 .    ds #V .8m
77 .    ds #F .3m
78 .    ds #[ \f1
79 .    ds #] \fP
80 .\}
81 .if t \{\
82 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
83 .    ds #V .6m
84 .    ds #F 0
85 .    ds #[ \&
86 .    ds #] \&
87 .\}
88 .    \" simple accents for nroff and troff
89 .if n \{\
90 .    ds ' \&
91 .    ds ` \&
92 .    ds ^ \&
93 .    ds , \&
94 .    ds ~ ~
95 .    ds /
96 .\}
97 .if t \{\
98 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
99 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
100 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
101 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
102 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
103 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
105 .    \" troff and (daisy-wheel) nroff accents
106 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
107 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
108 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
109 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
110 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
111 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
112 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
113 .ds ae a\h'-(\w'a'u*4/10)'e
114 .ds Ae A\h'-(\w'A'u*4/10)'E
115 .    \" corrections for vroff
116 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
117 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
118 .    \" for low resolution devices (crt and lpr)
119 .if \n(.H>23 .if \n(.V>19 \
121 .    ds : e
122 .    ds 8 ss
123 .    ds o a
124 .    ds d- d\h'-1'\(ga
125 .    ds D- D\h'-1'\(hy
126 .    ds th \o'bp'
127 .    ds Th \o'LP'
128 .    ds ae ae
129 .    ds Ae AE
131 .rm #[ #] #H #V #F C
132 .\" ========================================================================
134 .IX Title "FvwmWindowMenu 1"
135 .TH FvwmWindowMenu 1 "2009-03-22" "2.5.28 (from cvs)" "Fvwm Modules"
136 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
137 .\" way too many mistakes in technical documents.
138 .if n .ad l
140 .SH "NAME"
141 FvwmWindowMenu \- open configurable fvwm menu listing current windows
142 .SH "SYNOPSIS"
143 .IX Header "SYNOPSIS"
144 FvwmWindowMenu should be spawned by \fIfvwm\fR\|(1) for normal functionality.
146 Run this module from your StartFunction:
148 .Vb 2
149 \&    AddToFunc StartFunction
150 \&    + I Module FvwmWindowMenu
152 .SH "DESCRIPTION"
153 .IX Header "DESCRIPTION"
154 A substitute for \fIfvwm\fR builtin \fBWindowList\fR, but written in Perl and easy to customize. Unlike \fBFvwmIconMan\fR or \fBFvwmWinList\fR the module does not draw its own window, but instead creates an \fIfvwm\fR menu and asks \fIfvwm\fR to pop it up.
156 By defining a set of regular expressions, windows may be sorted into sections based on a regexp matching the window name, class or resource and included in the menu.
158 Similarly, another set of regular expressions can be used to exclude items from the menu.
160 Any windows not matching an instance of the include or exclude list will be placed in the last section of the menu.
161 .SH "USAGE"
162 .IX Header "USAGE"
163 Run the module, supposedly from StartFunction in \fI.fvwm2rc\fR:
165 .Vb 1
166 \&    Module FvwmWindowMenu
169 To actually invoke the menu add something like:
171 .Vb 2
172 \&    Key Menu A N SendToModule FvwmWindowMenu \e
173 \&        Post Root c c SelectOnRelease Menu
178 .Vb 1
179 \&    Mouse 2 A N SendToModule FvwmWindowMenu Popup
182 The additional parameters are any valid \fBMenu\fR command parameters without a menu name, see fvwm.
184 Recognized actions are \fBPost\fR (or its alias \fBMenu\fR) and \fBPopup\fR, they create \fIfvwm\fR menus and invoke them using the corresponding commands \fBMenu\fR and \fBPopup\fR. If the module was started with \*(L"\-g\*(R" switch, it additionally supports \fBPostBar\fR (not implemented yet).
186 Set module options for windows to include (Show) or exclude (DontShow). The syntax is:
188 .Vb 6
189 \&    *FvwmWindowMenu: ShowName pattern
190 \&    *FvwmWindowMenu: ShowClass pattern
191 \&    *FvwmWindowMenu: ShowResource pattern
192 \&    *FvwmWindowMenu: DontShowName pattern
193 \&    *FvwmWindowMenu: DontShowClass pattern
194 \&    *FvwmWindowMenu: DontShowResource pattern
197 Pattern is a perl regular expression that will be evaluated in m// context. See \fIperlre\fR\|(1).
199 For example:
201 .Vb 2
202 \&    *FvwmWindowMenu: ShowResource ^gvim
203 \&    *FvwmWindowMenu: ShowName Galeon|Navigator|mozilla\-bin|Firefox
206 will define two sections containing respectively browsers, and GVim. A third section will contain all other windows.
208 To only include matching windows, add:
210 .Vb 1
211 \&    *FvwmWindowMenu: DontShowName .*
214 Similarly:
216 .Vb 2
217 \&    *FvwmWindowMenu: DontShowName ^Fvwm
218 \&    *FvwmWindowMenu: DontShowClass Gkrellm
221 will cause the menu to ignore windows with name beginning with Fvwm or class gkrellm.
223 Other options:
224 .IP "*FvwmWindowMenu: \fIOnlyIconified\fR {on|off}" 4
225 .IX Item "*FvwmWindowMenu: OnlyIconified {on|off}"
226 show only iconified windows
227 .IP "*FvwmWindowMenu: \fIAllDesks\fR {on|off}" 4
228 .IX Item "*FvwmWindowMenu: AllDesks {on|off}"
229 show windows from all desks
230 .IP "*FvwmWindowMenu: \fIAllPages\fR {on|off}" 4
231 .IX Item "*FvwmWindowMenu: AllPages {on|off}"
232 show windows from all pages
233 .IP "*FvwmWindowMenu: \fIMaxLen\fR 32" 4
234 .IX Item "*FvwmWindowMenu: MaxLen 32"
235 max length in chars of entry
236 .IP "*FvwmWindowMenu: \fIMenuName\fR MyMenu" 4
237 .IX Item "*FvwmWindowMenu: MenuName MyMenu"
238 name of menu to popup
239 .IP "*FvwmWindowMenu: \fIMenuStyle\fR MyMenuStyle" 4
240 .IX Item "*FvwmWindowMenu: MenuStyle MyMenuStyle"
241 name of MenuStyle to apply
242 .IP "*FvwmWindowMenu: \fIDebug\fR {0,1,2,3}" 4
243 .IX Item "*FvwmWindowMenu: Debug {0,1,2,3}"
244 level of debug info output, 0 means no debug
245 .IP "*FvwmWindowMenu: \fIFunction\fR MyWindowListFunc" 4
246 .IX Item "*FvwmWindowMenu: Function MyWindowListFunc"
247 function to invoke on menu entries; defaults to WindowListFunc
248 .IP "*FvwmWindowMenu: \fIItemFormat\fR formatstring" 4
249 .IX Item "*FvwmWindowMenu: ItemFormat formatstring"
250 how to format menu entries; substitutions are made as follows:
251 .RS 4
252 .ie n .IP "%n\fR, \f(CW%i\fR, \f(CW%c\fR, \f(CW%r" 4
253 .el .IP "\f(CW%n\fR, \f(CW%i\fR, \f(CW%c\fR, \f(CW%r\fR" 4
254 .IX Item "%n, %i, %c, %r"
255 the window name, icon name, class or resource
256 .ie n .IP "%x\fR, \f(CW%y" 4
257 .el .IP "\f(CW%x\fR, \f(CW%y\fR" 4
258 .IX Item "%x, %y"
259 the window x or y coordinates w.r.t. the page the window is on.
260 .ie n .IP "%X\fR, \f(CW%Y" 4
261 .el .IP "\f(CW%X\fR, \f(CW%Y\fR" 4
262 .IX Item "%X, %Y"
263 the window x or y coordinates w.r.t. the desk the window is on.
264 .ie n .IP "%d" 4
265 .el .IP "\f(CW%d\fR" 4
266 .IX Item "%d"
267 the window desk number
268 .ie n .IP "%m" 4
269 .el .IP "\f(CW%m\fR" 4
270 .IX Item "%m"
271 the window's mini-icon
272 .ie n .IP "%M" 4
273 .el .IP "\f(CW%M\fR" 4
274 .IX Item "%M"
275 the window's mini-icon only for iconified windows, otherwise empty
276 .ie n .IP "%t" 4
277 .el .IP "\f(CW%t\fR" 4
278 .IX Item "%t"
279 a tab
280 .IP "%%" 4
281 a literal %
283 .RS 4
285 The format string must be quoted. The default string is \*(L"%m%n%t%t(+%x+%y) \- Desk \f(CW%d\fR\*(R".
287 .SH "MORE EXAMPLES"
288 .IX Header "MORE EXAMPLES"
289 Fancy binding of the window menu to the right windows key on some keyboards. Hold this button while navigating using cursor keys, then release it.
291 .Vb 3
292 \&    CopyMenuStyle * WindowMenu
293 \&    MenuStyle WindowMenu SelectOnRelease Super_R
294 \&    *FvwmWindowMenu: MenuStyle WindowMenu
296 \&    AddToFunc StartFunction I Module FvwmWindowMenu
298 \&    Key Super_R A A SendToModule FvwmWindowMenu Post Root c c WarpTitle
300 .SH "AUTHORS"
301 .IX Header "AUTHORS"
302 Richard Lister <ric+lister@cns.georgetown.edu>.
304 Scott Smedley <ss@aao.gov.au>.
306 Mikhael Goikhman <migo@homemail.com>.