=pod

=head2 NAME

 icewm-programs - icewm programs configuration file

=head2 SYNOPSIS

 $ICEWM_PRIVCFG/programs
 $XDG_CONFIG_HOME/icewm/programs
 $HOME/.icewm/programs
 /etc/icewm/programs
 /usr/share/icewm/programs

=head2 DESCRIPTION

The F<programs> file is an automatically generated menu configuration
file of installed programs. This file should be automatically generated
by xdg_menu, wmconfig (Redhat), menu (Debian), or icewm-menu-fdo,
perhaps as part of the login or X startup sequence.

=head2 FORMAT

The format of the file contains one of the following line syntax:

=over

=item B<prog> [B<">]I<title>[B<">] I<icon> I<program> I<options>

Specifies a program to execute when the menu item is selected.

=item B<restart> [B<">]I<title>[B<">] I<icon> I<program> I<options>

Specifies a program to replace the window manager when the menu item is
selected.  This is for launching other window managers from within
L<icewm(1)>.

=item B<runonce> [B<">]I<title>[B<">] I<icon> B<">[I<res_name>][B<.>I<res_class>]B<"> I<program> I<options>

Specifies a program to execute when the menu item is selected; however,
if a window of the specified I<res_name> and I<res_class> is present,
the program will not be run again.

=item B<menu> [B<">]I<title>[B<">] I<icon> B<{>
 # contained items
 B<}>

Specifies a sub-menu.  The lines that appear between the braces can be
any menu item described here.

=item B<menufile> [B<">]I<title>[B<">] I<icon> [B<">]I<filename>[B<">]

Specifies a file from which to collect sub-menu items (lines) and place
them at this point in the menu.

=item B<menuprog> [B<">]I<title>[B<">] I<icon> I<program> I<options>

Specifies a program that will print sub-menu items on standard output
and will be collected and placed in the sub-menu at this point.

=item B<menuprogreload> [B<">]I<title>[B<">] I<icon> I<timeout>
I<program> I<options>

Similar to B<menuprog>, but after at least I<timeout> seconds
the menu is regenerated.

=item B<include> [B<">]I<filename>[B<">]

Read additional entries from the file I<filename>

=item B<includeprog> I<program> I<options>

Read additional entries from the output of I<program> I<options>.

=item B<separator>

A separator for menu items.

=back

Where

=over

=item B<prog>, B<restart>, B<runonce>, B<menu>, B<menufile>,
B<menuprog>, B<menuprogreload>, B<include>, B<includeprog>, B<separator>

These are literal string keywords.

=item [B<">]I<title>[B<">]

This is the I<title> string associated with the menu item which is
displayed in the menu.  When the I<title> contains spaces, the title
must be surrounded by double quotes (C<">), although the I<title> may
always be surrounded by double quotes if preferred.

=item I<icon>

Is the name of the icon file (with or without extension) or the full
path to an icon file.

=item B<">[I<res_name>][B<.>I<res_class>]B<">

I<res_name> is the resource name of a window launched by I<program> and
I<res_class> is the resource class of the window.  Only one of
I<res_name> or I<res_class> need be specified.  This is used to identify
whether the program is already running and is for use with the
B<runonce> keyword.

=item I<program> I<options>

I<program> is the name of the executable or full path to the executable file that will
be run in response to selecting the menu item.  When used with the
B<menuprog> keyword, the I<program> must print on standard output the
contents of the menu and is used for dynamic menus.

I<options> is the options and arguments passed to the I<program>
verbatim.

=item I<filename>

I<filename> is the name of the file relative to one of the L<icewm(1)>
configuration directories, or the full path to a file.  The file is used
with the B<menufile> keyword and specifies the file from which to read
further menu items.

=back

=head2 EXAMPLES

Following is the example F<programs> file that ships with L<icewm(1)>:

 # This file is intended to be customized by the distributions.
 # (they should place it in /etc/X11/icewm)
 #
 # mostly obsolete, fixme
 menu Editors folder {
     prog fte fte fte
     prog vim vim gvim
     prog xemacs xemacs xemacs
     prog emacs emacs emacs
     prog NEdit nedit nedit
     prog xedit xedit xedit
     prog Lyx emacs lyx
 }
 menu "WWW" folder {
     prog Netscape netscape netscape
     prog Mozilla mozilla mozilla
     prog Galeon galeon galeon
     prog Arena arena arena
     prog Lynx lynx xterm -e lynx
     prog Links lynx xterm -e links
 }
 menu "Document Viewers" folder {
     prog "Acrobat Reader" pdf acroread
     prog "DVI Previewer" xdvi xdvi
     prog "Ghostview" ghostview gv
 }
 menu Graphics folder {
     prog Gimp gimp gimp
     prog XV xv xv
     prog XPaint xpaint xpaint
     prog XFig xfig xfig
 }
 menu Games folder {
     prog "Koules for X" koules xkoules -f
     prog Xboing xboing xboing
     prog Xboard xboard xboard
     prog XGalaga xgalaga xgal
     prog XDemineur xdemineur xdemineur
     prog "Tux Racer" tuxracer tuxracer
 }
 menu System folder {
     prog "Control Panel" redhat control-panel
 }
 menu Utilities folder {
     prog XPlayCD xplaycd xplaycd
     prog XMixer xmixer xmixer
     prog Clock xclock xclock
     prog Magnify xmag xmag
     prog Calculator xcalc xcalc
     prog Colormap xcolormap xcmap
     prog Clipboard xclipboard xclipboard
     prog xkill bomb xkill
     prog xload xload xload
     prog xosview xosview xosview
     separator
     prog "Screen Saver" xlock xlock -nolock
     prog "Screen Lock" xlock xlock
 }
 menu "Window Managers" folder {
     restart icewm - icewm
     restart metacity - metacity
     restart wmaker - wmaker
     restart fluxbox - fluxbox
     restart blackbox - blackbox
     restart enlightenment - enlightenment
     restart fvwm2 - fvwm2
     restart fvwm - fvwm
     restart sawfish - sawfish
     restart sawfish2 - sawfish2
 }

=head2 FILES

Locations for the F<programs> file are as follows:

 $ICEWM_PRIVCFG/programs
 $XDG_CONFIG_HOME/icewm/programs
 $HOME/.icewm/programs
 /etc/icewm/programs
 /usr/share/icewm/programs

The locations are searched in the order listed; the first file found is
read and the remainder ignored.

=head2 SEE ALSO

L<icewm(1)>,
L<icewm-menu(5)>,
L<icewm-menu-fdo(1)>.

=head2 AUTHOR

Brian Bidulock L<mailto:bidulock@openss7.org>.

=head2 LICENSE

B<IceWM> is licensed under the GNU Library General Public License.
See the F<COPYING> file in the distribution.

=cut

# vim: set sw=4 tw=72 nocin spell spelllang=en_ca:
