Provided by: fvwm_2.5.30.ds-1_amd64 bug


       fvwm-menu-desktop - builds GNOME and KDE menus and style commands for fvwm


       fvwm-menu-desktop  [  --help|-h|-?  ]  [  --version|-v|-V  ]  [  --install-prefix  DIR ] [
       --desktop NAME ] [ --type NAME ] [ --fvwmgtk-alias NAME ] [ --title NAME ] [ --name NAME ]
       [   --merge-user-menu   ]   [   --enable-mini-icons   ]  [  --enable-tran-mini-icons  ]  [
       --mini-icons-path DIR ] [ --png-icons-path DIR ] [ --tran-mini-icons-path DIR ] [ --check-
       mini-icons  PATH  ]  [  --icon-toptitle  micon:law:place:side_pic:color  ]  [ --icon-title
       micon:law:place:side_pic:color  ]  [  --icon-folder   micon:law:place   ]   [   --icon-app
       micon:law:place ] [ --wm-icons ] [ --enable-style ] [ --enable-tran-style ] [ --icon-style
       micon:icon:law ] [ --icons-path DIR ] [ --tran-icons-path DIR ] [ --check-icons PATH  ]  [
       --submenu-name-prefix  name  ]  [  --dir  DIR  ] [ --destroy-type FLAG ] [ --xterm CMD ] [
       --lang NAME ] [ --utf8 ] [ --uniconv charset ] [ --uniconv-exec exec ] [ --menu-style name
       ] [ --no-check-app ] [ --time-limit NUM ]


       This  is  a perl script which parses GNOME or KDE menus definitions to build corresponding
       fvwm or FvwmGtk menus. The script can also build icon and mini-icon style commands for the


       There  are  a  lot of options. However the defaults are, I hope, good enough.  If you want
       the KDE system menu in the menu "Utilities" add the following lines in your .fvwm2rc file:
       AddToMenu Utilities "KDE System Menu" Popup kde-sys
       PipeRead 'fvwm-menu-desktop --desktop kde-sys'
       For KDE2 you may have to add --utf8 or --uniconv "charset" (see  below).   Moreover,  with
       KDE2 you can add --merge-user-menu.  If you use KDE version 1 (see below for KDE2) and you
       want mini-icons in the menu and if the KDE mini-icons are in "mini/" relative to your fvwm
       ImagePath  add  the  option --enable-mini-icons.  (if the KDE mini-icons are in some other
       place  use  the  --mini-icons-path  option,  e.g.,  they  are  in  your   ImagePath   plus
       --mini-icons-path).  If  you  want  to  build  Icon  and  MiniIcon  style commands for KDE
       applications, add the option --enable-style.  If you  want  to  have  the  KDE  user  menu
       replace  "sys" by "user". If you use the KDE menu editor, you may want to pop this menu up
       dynamically.  Then, put this into your .fvwm2rc file (note the destroy-type).
       AddToMenu Utilities "KDE User Menu" Popup kde-user
       AddToMenu kde-user
       + DynamicPopupAction PipeRead 'fvwm-menu-desktop --desktop kde-user --enable-mini-icons [--destroy-type dynamic] [other options]'

       For GNOME it is natural to use FvwmGtk menus. The following  example  builds  "all"  GNOME
       menus  (with  some  mini-icons  in  the  system  menu).  You  need  to  specify  the GNOME
       installation prefix if it is not /usr (with the option  --install-prefix).  Moreover,  the
       GNOME  icons  need  to  be  in  your ImagePath and the non .png mini-icons you use for the
       user-menu need  to  be  in  mini/  (if  not,  use  the  --png-icons-path  option  and  the
       --mini-icons-path option, respectively).

       Module FvwmGtk
       *FvwmGtk: Destroy gnome-all
       *FvwmGtk: Menu gnome-all
       *FvwmGtk: Title "Gnome Menus"
       *FvwmGtk: Separator
       *FvwmGtk: Destroy gnome-sys
       *FvwmGtk: Submenu "System" gnome-sys
       *FvwmGtk: Destroy gnome-user
       *FvwmGtk: Submenu "User" gnome-user
       *FvwmGtk: Destroy gnome-redhat
       *FvwmGtk: Submenu "RedHat" gnome-redhat

       PipeRead 'fvwm-menu-desktop --type gtk --enable-mini-icons --icon-folder :re --icon-app :re --icon-title :re --icon-toptitle :re'

       PipeRead 'fvwm-menu-desktop --type gtk --desktop gnome-user --enable-mini-icons'

       PipeRead 'fvwm-menu-desktop --type gtk --desktop gnome-redhat --enable-mini-icons'

       # To obtain the menu above with Alt-button1 on the root window
       Mouse 1  R  M  SendToModule FvwmGtk gnome-all

       You  can specify FvwmGtk alias: Module FvwmGtk MyGnomeMenu.  In this case you must pass an
       additional parameter to fvwm-menu-desktop: --fvwmgtk-alias MyGnomeMenu.

       Of course you can build fvwm (i.e., no FvwmGtk) GNOME menus.  GNOME and KDE2 use PNG icons
       which are not supported by fvwm menu.  However, if you have XPM version of the GNOME or of
       the KDE2 (mini-)icons you can build fvwm menus and style commands with these  icons  using
       the  option  --enable-tran-mini-icons  and  --enable-tran-style.  The  Fvwm Themes package
       ( contains an utility, fvwm-themes-images,  which  can
       convert  automatically  (with  the  help  of  ImageMagick) all GNOME and KDE2 icons to XPM

       You can build sub menus using the --dir options. However, if you want to use more than one
       submenu it is better to build the "all" menu and to use the submenu names.  See the option
       --submenu-name-prefix for information on submenu names. Nevertheless, you may put the menu
       in a tmp file using redirection to see the submenu names.

       If  you  think  that  fvwm-menu-desktop  slows  your startup too much do not use PipeRead.
       Instead run  fvwm-menu-desktop and redirect the menu to a file and Read that file in  your
       .fvwm2rc  file.   Another  possibility  is to use DynamicPopupAction (with fvwm menu), the
       menu (and the styles) will be built only if you  pop  up  the  menu.  The  following  menu
       creates  a "kde-all" menu which contains the user menu which is built each time you pop up
       "kde-all" and contains a pop up to the system menu which is built only the first time  you
       pop it up.
       AddToMenu kde-all
       + DynamicPopupAction FuncRecreateKdeAll

       AddToMenu kde-sys
       + DynamicPopupAction PipeRead 'fvwm-menu-desktop \
       --desktop kde-sys [options, but --destroy-type d* or n*]'

       AddToFunc FuncRecreateKdeAll \
       I PipeRead 'fvwm-menu-desktop \
       --desktop kde-user --enable-mini-icons --name kde-all \
       --destroy-type dynamic [options you like]'
       + I AddToMenu "kde-all" "" Nop
       + I AddToMenu "kde-all" "Kde System%mini/mini-k.xpm%" Popup kde-sys

       fvwm-menu-desktop  takes  into  account  your  $LANG  environment  variable,  which may be
       overwritten using the --lang option.

       Hint, if you need a different menu font or item format from the ones used in  the  default
       MenuStyle,  you may use the --menus-style option to assign a non-default MenuStyle name to
       menus built by this script.  Don't forget to create a new menu  style  in  your  .fvwm2rc,
       using CopyMenuStyle and MenuStyle commands.


       Main Options

       --help Show the help and exit.

              Show the version and exit.

       --install-prefix DIR
              The  prefix  of  GNOME or KDE installation. Default is /usr for GNOME (other common
              prefixes: /usr/local, /opt/gnome).  For KDE the default is $KDEDIR and you probably
              do not need to use this option.

       --desktop NAME
              Use  gnome-sys  for the GNOME system menu (this is the default), gnome-user for the
              GNOME user menu, gnome-redhat for the AnotherLevel menu of Red Hat,  gnome-mandriva
              for  Mandriva menudrake menus, kde-sys for the KDE system menu and kde-user for the
              KDE user menu. It may be useful to use KDE or  GNOME  as  a  flag  with  the  --dir

       --type NAME
              If NAME is fvwm, a native fvwm menu will be built (this is the default). If NAME is
              gtk, a FvwmGtk menu will be built.

       --fvwmgtk-alias NAME
              The name for then FvwmGtk module to use instead of default FvwmGtk.

       --title NAME
              Define the menu title  of  the  top  menu.  Default  is  "Gnome  System  Menu"  for
              gnome-sys, "Gnome User Menu" for gnome-user, "Gnome Red Hat Menu" for gnome-redhat,
              "Gnome Mandriva Menu" for gnome-mandriva. For KDE  the  default  is  given  by  KDE
              itself (or are similar to GNOME title).

       --name NAME
              Define  the menu name of the top menu. Default is the --desktop name if you use one

              this option tries to merge the user menu with the system menu  (gnome-sys  or  kde-
              sys,  based  on  the --desktop option) and takes into account changes to the system
              menu that it is now possible to do in the  "user  directory"  (at  least  with  KDE
              version 2 menu editor).

       Icons Options

              By  default,  fvwm-menu-desktop   builds mini-icon free menus. To enable mini-icons
              use one of the two following options.

              This option enables mini-icons in the menu.  The desktop hints are used  if  it  is
              possible  (fvwm  menu  can't  use  .png  icons).  Use the --mini-icons-path and the
              --png-icons-path to specify the good paths. By using the --icon-* options below you
              can control mini-icons in menus.

              This  option  applies only to fvwm menus and is useful to build GNOME or KDE2 menus
              with mini-icons (and if you have XPM version of the GNOME or KDE2 PNG  icons).   If
              this  option is used any icon hint foo.png is translated to path/foo.xpm where path
              is determined by the --tran-mini-icons-path option (xpm icons are used as with  the
              previous option).

       --mini-icons-path DIR
              Define  the  directory of the .xpm mini-icons (relative to your ImagePath). Default
              is "mini/".

       --png-icons-path DIR
              Define the directory of .png icons. Default is "" (i.e., in your ImagePath). Useful
              only with FvwmGtk menus.

       --tran-mini-icons-path DIR
              Define  the  directory  of  the mini-icons for the --enable-tran-mini-icons option.
              Default is mini/. It is preferable to give the complete  path  so  that  fvwm-menu-
              desktop  can check if the translated mini-icons exists (and the "re" law will apply
              in a good way).

       --check-mini-icons PATH
              Where PATH is a list of directories with  ":"  as  a  separator.  Then,  fvwm-menu-
              desktop checks that the mini icons actually exist in one of these directories (this
              check is not done for the translated mini icons).


              To control  mini-icons in menus you can use the  4  following  options  which  work

              In  these  options  law  may  be no, dh, re or ow.  no means "do not use mini-icon"
              (this does not affect side pic).  dh  means  "use  only  the  mini-icons  GNOME/KDE
              hints".   re  means  "use  mini-icons  GNOME/KDE  hints  but if it is empty use the
              specified mini-icon".  ow means "override the mini-icons  GNOME/KDE  hints  by  the
              specified mini-icon".

              The  path  to  the  specified  icons  is  given  by  the options --mini-icons-path,
              --png-icons-path or --tran-mini-icons-path (i.e., you  just  have  to  specify  the
              icon, the path is computed). For the sidepic you need to give the complete relative
              path from your ImagePath.

              Note that for the fvwm menu (without the --enable-tran-mini-icons  option)  a  .png
              icon  hint  is  considered  as  an empty hint, so for the system menu use no=dh and
              re=ow (you may use .xpm icons in a user menu). If the --tran-mini-icons-path option
              is  set  with  a  complete path, then if the .xpm icon which corresponds  to a .png
              icon hint does not exist, the icon hint is considered as empty.

              place, sidepic and color apply only with fvwm menus. place is either  left  or  up.
              left means that the icon will be placed on the left of the label. up means that the
              icon will be placed above the label.  sidepic needs to be nothing or an icon (for a
              picture  in  the  bottom left of the menu). color applies only if a sidepic icon is
              given and it is the color for  the  region  of  the  menu  containing  the  sidepic

              When  you  use  an  option  below, if an icon, a law ...etc is not specified (i.e.,
              empty) the default is used (e.g, if you want, for an fvwm menu, the icon folder.xpm
              on the left of the top title and the sidepic fvwm2.xpm on the left of this menu use
              the following: --icon-toptitle :ow::fvwm2.xpm).

       --icon-toptitle micon:law:place:sidepic:color
              Mini-icon for the top title and sidepic for the top menu.  Default for fvwm  menus:
              folder.xpm:no:left::.    Default  for  fvwm  menus  with  --enable-tran-mini-icons:
              gnome-logo-icon-transparent.xpm:no:left:.      Default     for      gtk      menus:

       --icon-title micon:law:place:sidepic:color
              Use  the  option below for submenus.  Default for fvwm menus: folder.xpm:dh:left::.
              Default for fvwm menus with  --enable-tran-mini-icons:  gnome-folder.xpm:dh:left::.
              Default for gtk menus: gnome-folder.png:dh

       --icon-folder micon:law:place:sidepic:color
              Mini-icons  for  pop up item.  Default for fvwm menus: folder.xpm:dh:left.  Default
              for fvwm menus with  --enable-tran-mini-icons:  gnome-folder.xpm:dh:left.   Default
              for gtk menus: gnome-folder.png:dh.

       --icon-app micon:law:place
              Mini-icon  for  applications item.  Default for fvwm menus: mini-x.xpm:dh.  Default
              for fvwm menus with --enable-tran-mini-icons:  gnome-default.xpm:dh.   Default  for
              gtk menus: gnome-default.png:dh

              This  is  a  shortcut, which can be used if you plan to use icons from the wm-icons
              package. Currently this is equivalent to: --enable-mini-icons --mini-icons-path  ''
              --icon-toptitle    menu/folder-open.xpm:ow   --icon-title   menu/folder-open.xpm:ow
              --icon-folder menu/folder.xpm:ow --icon-app menu/utility.xpm:ow.

       Style Options

       --enable-style mini-icon:icon:law:addstyle
              Build icons and mini-icons style commands for the applications in the built menu.

              Only  useful  with  FvwmGtk  GNOME  or  KDE2  menus.  Make   translation   as   the
              enable-tran-mini-icon option but only for style (not for mini-icons menus).

       --icon-style mini-icon:icon:law:addstyle
              This  option  is  similar to the options --icon-* above. Default law is "dh" (there
              is no "no" law).  Default mini-icon is mini-x.xpm and default icon  is  x.xpm.  You
              can   add   a   style   to   all   applications  with  addstyle.  If  you  use  the
              enable-tran-mini-icon  options  the  translated  (mini-)icons  will  be  used   (if
              translation is needed) and the default icons are gnome-default.xpm.  If you use the
              --enable-tran-style options above the default  icons  are  gnome-default.xpm.   The
              paths  to  mini-icons are the same as those for the menus. The path to the icons is
              computed from the mini-icons path: they are one directory up to  the  corresponding
              mini-icons  path (so the "defaults" are "" and this is consistent with KDE1 and XPM
              icons builded by fvwm-themes-images).

       --icons-path DIR
              Not useful in a normal situation.  Define the directory of the  icons.  Default  is
              one  directory  up  from the path given by the --mini-icons-path option. To set the
              path to "" you need to use "inpath".

       --tran-icons-path DIR
              Similar to the above option.

       --check-icons PATH
              Where PATH is a list of directories with  ":"  as  a  separator.  Then,  fvwm-menu-
              desktop  checks  that  the  icons  actually exist in one of these directories (this
              chack is not done for the translated icons, use a full path in --tran-icons-path to
              do so).

       Other Options

       --submenu-name-prefix NAME
              May  be  useful  in some unfortunate cases. By default the name of a sub menu is of
              the form prefix-adirname-level where prefix is the desktop flag,  adirname  is  the
              name of the directory of the description of the sub menus (not a complete path) and
              where level is an integer equal to the number of "cd"s you need to do  to  go  from
              the  root  to the directory of the description of the sub menus. You may change the
              prefix using the present option.

       --dir DIR
              Set the directory where fvwm-menu-desktop looks for a GNOME/KDE menu description to
              DIR.   The name of the menu is 'desktop-name' and the title is 'desktop' name where
              'desktop' is either GNOME or KDE (if fvwm-menu-desktop can't find which desktop  is
              concerned,  you can help with the --desktop option) and where 'name' is the name of
              the right directory of DIR (or a hint of the desktop for the title).  Note that  if
              this     option     is     not     set,     the     description     directory    is
              install-prefix/share/gnome/apps if --desktop is  gnome-sys,  $HOME/.gnome/apps   if
              --desktop  is  gnome-user,  $HOME/.gnome/apps-redhat  if --desktop is gnome-redhat,
              $HOME/.gnome/apps-mdk  if --desktop  is  gnome-mandriva,  $KDEDIR/share/applink  if
              --desktop is kde-sys and $HOME/.kde/share/applnk if--desktop is sys-user.

       --destroy-type flag
              flag may be "y(es)", "no", "d(ynamic)". Default is "yes" with fvwm menus, "no" with
              FvwmGtk menus and dynamic applies only with fvwm menus.  If "yes" is used  the  top
              menu  will be destroyed (DestroyMenu "name"), if "no" is used the top menu will not
              be destroyed (useful for FvwmGtk menus called by another menu via FvwmGtkSubMenu or
              to  give the same name to two or more menus built by fvwm-menu-desktop). If dynamic
              is  used   the   menu   will   be   destroyed/recreated   (may   be   useful   with
              DynamicPopupAction). Note that all the built sub menus are always destroyed.

       --xterm CMD
              Define complete X terminal command to run applications in it if needed.  Default is
              'xterm -e'.

       --lang NAME
              Default is the value of $LANG. Useful if your language is not  GNOME/KDE  compliant
              and  you  prefer a non-English compliant language. Also useful if fvwm-menu-desktop
              gives bad result with your language.

       --utf8 Assume that the desktop entries used UTF-8 encoding. This  is  the  case  with  KDE
              version  2 and will be probably the case with GNOME version 2.  At the present time
              this option work only if you have perl version 5.6 or better and if  your  language
              use  latin-1 font. If one of these conditions is not satisfied, then this option is
              equivalent to --lang en. For other languages/charsets use the --uniconv option. The
              advantage of this option as compared to the following option is that it is fast.

       --uniconv charset
              Use  iconv,  uniconv  or  internal method to translate utf8 desktop entries into an
              appropriate "charset". You can choose between one  of  the  supported  tools  using
              --uniconv-exec  option.  iconv comes with glibc >= 2.1.1 and uniconv comes with the
              utf8 editor yudit. Type "iconv --list" or "man uniconv" for the list  of  supported
              charsets.  Of  course  you  must  also use the appropriate font using the MenuStyle
              command. Also, $LANG (or --lang xx) must be compatible with the charset.  Note,  if
              you  don't use an internal method, fvwm-menu-desktop is very slow with this option:
              you probably need to use the --time-limit option and you should redirect the result
              into a file and read this file in your fvwm configuration.

       --uniconv-exec exec
              Where  exec  is  either  iconv or uniconv or internal. Allows to choose the program
              which perform the UTF8 translation  in  the  case  of  the  --uniconv  option.  The
              internal  method  is  only  available  with  perl 5.8.0 and better.  The default is
              either internal (if available) or iconv.

       --menu-style name
              By default the generated fvwm menus use the default MenuStyle (i.e., the  MenuStyle
              "*"). You can specify another MenuStyle name using this option.

              Either check or don't check that applications to execute are in your path.  Default
              is --check-app.

       --time-limit NUM
              Change the internal limit (15 seconds) for running this script to  NUM  seconds,  0
              means unlimited running. This limiting may be useful to cut mistakes with the --dir
              or --install-path options.


       This script needs more testing to see if all options work well (note that the script  does
       not  check for inconsistency of the given options).  If Desktop menu hints are changed the
       script may not work as expected. I have tested the script with gnome-core-1.0.3,  kde-1.1,
       kde-1.2 and kde-2.0.


       Olivier Chapuis <>

       Mikhael Goikhman <> - some changes


       The  script  is  distributed  by  the  same  terms as fvwm itself.  See GNU General Public
       License for details.