Man Linux: Main Page and Category List


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


       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 applications.


       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-

            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 icons.

       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

       --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 option.

       --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

       --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 above.

              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

       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 similarly.

              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 picture.

              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: gnome-logo-icon-transparent.png:no.

       --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

       --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

       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


       Olivier Chapuis <>

       Mikhael Goikhman <> - some changes


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