wmgenmenu: A Window Maker menu generator
commit1861880239634774bf898175a3155b7c7cd9b59c
authorCarlos R. Mafra <crmafra@gmail.com>
Mon, 25 Jan 2010 09:55:33 +0000 (25 10:55 +0100)
committerCarlos R. Mafra <crmafra@gmail.com>
Sun, 21 Feb 2010 10:51:00 +0000 (21 11:51 +0100)
tree24d5146e1c1ae42c6e4f8fba01e6d07ee947ac1d
parent6367bf523432adccce0562ebd5069faa65f9683e
wmgenmenu: A Window Maker menu generator

The inspiration comes from Geir T. Kristiansen's 'genmenu' shell script
(http://gtk.no/genmenu) which I have been hapilly using for
the last 9 years or so.

That script generates the Window Maker menu by asking a few questions
and checks whether the applications in a predefined list exist in
the user's $PATH, so that the menu contains only the applications
which are guaranteed to exist and which the user cares about.

However I always thought it was a bit slow to finish, even
when having a file containing the answers to the questions to
be piped in.

And as Kristiansen states in his webpage, his script does not
support internationalization:

   "If you want internationalization I really suggest you rewrite
    genmenu from scratch anyway in a more sensible language and remove
    other limitations while you are at it."

so I decided to rewrite in C and make it support internationalization
(only English and German so far). While I am not sure yet if I removed
"other limitations while you are at it" I definitely made it finish faster.
This C program does not make you questions though.

But in the same spirit as the author of 'genmenu', who says:

    "Genmenu is a hack, deal with it, it just happens to serve my needs."

I present you 'wmgenmenu', which you can use like this:

wmgenmenu > /home/mafra/GNUstep/Defaults/WMRootMenu

and the menu is automatically generated from the list of
predefined apps which are contained in the C sources (wmgenmenu.h).

And when you generate the WMRootMenu as above, wmaker will automatically
load the new menu for you (due to the 'inotify' mechanism in wmaker-crm).

As for 'wmgenmenu' being faster than 'genmenu':

[mafra@Pilar:~]$ time ./genmenu.sh < answers.txt &> /dev/null

real    0m3.626s
user    0m0.968s
sys     0m1.830s

[mafra@Pilar:~]$ time wmgenmenu &> /dev/null

real    0m0.020s
user    0m0.006s
sys     0m0.013s
configure.ac
util/Makefile.am
util/po/Makefile.am [new file with mode: 0644]
util/po/de.po [new file with mode: 0644]
util/wmgenmenu.c [new file with mode: 0644]
util/wmgenmenu.h [new file with mode: 0644]