WMCONFIG(1x)

NAME
wmconfig - Window Manager Config helper program

SYNOPSIS

wmconfig --output=manager [ --rootmenu=root_menu_name ]
    [ --flag=flags ] [ --sysdir=system_directory ]
    [ --userdir=user_directory ]
    [ --outputdir=output_directory ]
    [ --no-icons ] [ --no-mini-icons ]
    [ --directories ] [ --promote ]
    [ --newstyle-directories ]
    [ --no-sysdir ] [ --no-userdir ]
    [ --terminal ]
    [ --help ]
    [ --version ]
    [ file ... ]

DESCRIPTION
wmconfig is a program that will produce output consisting of menu definitions compatible with the selected window manager. You can include that output in your .rc file or have the output read through a pipe for dynamic configurations.

  How does it work ?
wmconfig will read all the files located in /usr/etc/wmconfig. It will then read the files from the .wmconfig directory in the user's home directory. Therefore, the user's settings will override the system-wide settings. If optionally any extra files are given as an argument on the command line, those will be read last and merged with the others (possibly overriding the settings in system and user home dir files)

Each of these files have the following format. For example, here's the gv package:

	gv name "Ghostview"
	gv icon "ghostview.bmp"
	gv mini-icon "mini-gv.xpm"
	gv exec "gv &"
	gv group "Graphics/Viewers"
	gv terminal "true"

	gv restart "quit"

  Config File Definition
The format of the config file is:
<package> <tag string>

  package
denotes the name of the package, and is used internally by wmconfig to group together multiple tags intended for the same application. This item does not have any other special meaning.

  tag
This can have several possible values. Among them:

name
    This is the name of the application, as it should be displayed in the menu.
    Example: name "My Cute Application"

icon
    This is the filename of an icon for this application. Use of full paths is discouraged because not all window managers can read and cope with full paths in icon names. Try to put your icons in a place where your window manager can find them by default.
    Example: icon "my-icon.xpm"

mini-icon
    Some window managers support mini icons in menus or title bars, etc. This tag is intended for those kind of window managers (among them, mwm, fvwm2, fvwm95, icewm). The same remarks from the icon tag apply here. See the example from icon.

copy
    This will result in the configuration (entries) for this application being completed (by copying) from another application.
    Example: copy anotherpackage

exec
    This is the command that will be excuted by the window manager when this menu entry is selected.
    Example: exec "pine"

group
    This is the group you want to have you application listed under. The group items are separated by / (that is a forward slash). Groups are created on the fly, so you do have to be careful with typos!.
    Example: group "Applications/Graphics Utilities/Viewers"
    The above example will generate code (for the window manager of your choice) to generate a menu entry named Applications with another menu entry under it named Graphics Utilities and finaly a menu entry under that one named Viewers containing your application as an entry.

mimetype
    The Mimetype description is used for KDE, KDE2, KDE3 and KDE4 output to describe that the Application can be used for several Filetypes. Use semicolons for more than one mimetype. The last semicolon is not needed.
    Example: mimetype "text/enligsh;text/x-csrc"

terminal
    This option describes that Wmconfig should append a terminal line to the exec entry. If you don't want to start the application with a terminal, delete the line. Wmconfig only checks if the terminal line exists.
    Example: terminal "yup"

restart
    This option signals Wmconfig to create a special quit, restart or restart with Windowmanager menu entry. If the quit option is specified, Wmconfig will create a Quit entry. A restart entry is created with the restart option. Other options will be used as a name of a Windowmanager. A restart entry for the specified Windowmanager will be created.
    Examples: restart "quit"
             restart "restart"
             restart "startkde"

User config files in $HOME/.wmconfig can have multiple packages defined in there; order does not matter. The only way to have an app in two different groups is to use copy to copy another package and override the group setting.

OPTIONS

--output=manager
    Where manager can currently be one of: debug, fvwm95, fvwm2, afterstep, mwm, icewm, blackbox, wmaker, kde1, twm, olwm, fvwm, mlvwm, kde2, kde3, kde4, qvwm, pekwm, golem, fluxbox, gnome2, openbox, aewm, amiwm, kahakai, pwm, e16, enlightenment, e17, ede, equinox, ude, xfce, wmx, flwm, tvtwm, vtwm, piewm, ctwm, freedesktop, jvm, sithwm, sawfish.
    The only entry which is special in this list is the debug entry, which will produce a nice tree-like output to debug your settings and show you how the data is represented internally by wmconfig.

--flag=flags
    Where flags can be one of:
    no-icons - this will tell wmconfig not to produce any icon-related output. You might want to do this if you don't want to have Icon styles applied to your application in your window manager. For instance, if you don't want to have iconified windows on the desktop.
    no-mini-icons - the same thing, except for mini-icons (currently only supported by fvwm2, fvwm95 and afterstep).
    directories - some window managers are expecting their menu configuration as a hierarchy of directories/files. This option is working together with --output setting. Currently it is known to work only when invoked with --output=afterstep, and it will create the directories/files in ~/GNUstep/Library/AfterStep/start. This path can be changed using --outputdir switch.
    newstyle-directories - enhanced version of directories. Menu has mini-icons. Only for AfterStep >= 1.5.
    no-check-existence - By default, Wmconfig checks if the app defined in the configuration file exists. If not, no menu entry is created. By using this flag, you can turn off this behaviour.
    promote - Some people find it irritating to have menus with only one app in. This flag entry will be promoted to the higher level menu.
    If you want to specify more than one flag at a time, you can either repeat the --flag switch, or list all the flags comma-separated with no spacing in between.
    Example:
        --flag=flag1,flag2,flag3 or
        --flag=flag1 --flag=flag2 ...

--sysdir=system_directory
    This switch is used to set the system directory instead of using the default (which is /usr/etc/wmconfig).

--userdir=user_directory
    The default value for this switch is .wmconfig. This means that a directory called $HOME/.wmconfig will be searched for files containing valid wmconfig entries, and will be read after the system directory is read. By using --userdir you have a way to change that value.

--rootmenu=root_menu_name
    By default, the name of the root menu is RootStart. If you want wmconfig to begin generating entryies starting at a certain point in your already-existing menu tree, you will want to use this switch.

--outputdir=output_directory
    The default output directory is ~/GNUstep/Library/AfterStep/start. For the Enlightenment DR16 directory output the default directory is ~/.enlightenment/wmconfig. For the Freedesktop output this switch describes where the menu XML configuration will be created. This enhances compatiblity with several XDG configuration scenarios. As example if /etc/xdg/menus/e17-applications.menu is the E17 system menu configuration choosing ~/.config/menus/e17-merged as option will let Wmconfig create the menu definition at the given place. This enhances compatiblity with several desktop environments and should ensure the Wmconfig menu is always shown. Using this switch you can tell wmconfig to generate menu tree in specified path. Works only for --output=afterstep with directories or newstyle-directories flags, for --output=enlightenment, for --output=kde1, --output=kde2, --output=kde3, --output=freedesktop and for --output=kde4.

--terminal=terminal_name
    This option is used for menu entries that require a terminal to start. If Wmconfig finds the terminal option, it automatically appends xterm to the exec line. If you do not want to use xterm, you may specify an alternative terminal with this option.

--no-icons
    Does the same thing as --flag=no-icons

--no-mini-icons
    Does the same thing as --flag=no-mini-icons

--directories
    Does the same thing as --flag=directories

--newstyle-directories
    Does the same thing as --flag=newstyle-directories

--promote
    Does the same thing as --flag=no-promote

--no-sysdir
    Do not parse the files from the system-wide settings (/usr/etc/wmconfig) directory.

--no-userdir
    Do not parse the files from the user's $HOME/.wmconfig directory.

--help
    This is the popular "show me the help-screen !" switch.

--version
    This is the popular "what version was that ?" switch.

BUGS

  Definite bugs
Probably the source code of the whole thing is far more useful than this man page.

  Possible bugs
The BUGS section of this man page might be inaccurate.

FILES

/usr/etc/wmconfig
    The default system directory containing wmconfig files

$HOME/.wmconfig
    The default user directory containing wmconfig files

AUTHORS
Cristian Gafton <gafton@redhat.com>
Red Hat Software, Inc.
Romildo <romildo@uber.com.br>
Tommy Scheunemann<net@arrishq.net>