Lamenu is a fault tolerant, configurable menu generator for lightweight window managers, panels and launchers. Menus are built from *.desktop files. Lamenu tries to produce high quality output even from baddly written desktop files. Currently supported window managers, panels and launchers: - AeWM http://www.red-bean.com/~decklin/aewm/ - Blackbox http://blackboxwm.sourceforge.net/ - Fluxbox http://fluxbox.org/ - FVWM 2 http://fvwm.org/ - IceWM http://icewm.org/ - OpenBox 3 http://icewm.org/ - Paunch http://paunch.sourceforge.net/ - PekWM http://pekwm.org/ - SuxPanel http://freshmeat.net/projects/suxpanel/ - Taskbar http://taskbar.sourceforge.net - Waimea http://freshmeat.net/projects/waimea/ - XFCE 4 http://xfce.org/ Project goals: - Create fault tolerant menu generator that can produce menus from errorous *.desktop files, - Every entry should have its icon assigned even if coresponding icon file is not present in system, - Develop localized menus with input file simple enough to let average user roll her own translation within minutes, - Do not use XDG XML templates because I don't have such stuff. Project status: Development. But it should be stable enough and generate high quality menus. XML interface is unstable and thus writing templates is currently undocumented. If you wish to add a new one, hack for yourself. Requirements: Python >= 2.3 grep find (from findutils package) uniq (from coreutils package) Default behavior: By default Lamenu works silently and prints its output on STDOUT. You will probably wish to store output in menu file. It is a good idea to use --output OUT option instead of shell redirection '> menu' because Lamenu will try to include itself under the "Regenerate Menu" entry and you'll end up with incomplete invocation. Customization: There are two things that can be customized: translations and menu header/footer. If you decide to make some adjustments, first create ~/.lamenu directory, then copy (cp -R) files from /etc/lamenu to it. If there is no translation file for your language, you need to roll your own. To do this, rename lang.xml to XX.xml where XX is a two letter language symbol. Eg. for Italian, name the file it.xml, for Greek, gr.xml etc. There is already pl.xml which is a ready to use Polish translation. You can use it to learn how to make your own. Then grab a good editor, set it to UTF-8, find wm-specific section and fill all empty tags. There is no need to translate entire file. The first section called is used by every window manager/panel/whatever and should be always translated. After that, pick up a section that describes your window manager and do the same. tags contain strings in English. Is it not wise to touch them with no reason. tags are those, which can handle translated strings. This file is flexible, you can add more custom pairs The second file that you might be interested in is a header/footer template which name starts with the name of window manager you wish to work with: icewm.xml for IceWM, etc. This file also must be encoded in UTF-8. All you need to know here is that you can add/remove raw lines that will appear above or below generated content. The syntax of those lines is the syntax accepted by corresponding window manager. Strings enclosed with @() are marked as translatable. You can have as many translatable strings as you wish but don't forget to add them to XX.xml. NOTE that .xml files contain a valid XML so you must preserve XML-specific characters like &<> or a complete tags etc. If you are not familiar with this, ask Google about XML tutorials. Basically, & should be written as & < ==> < > ==> > entire tags can be preserved by using CDATA section like this: ]]> If you've made changes to one or more configuration files, use --debug to test if everything is OK. Troubleshooting: If you encouraged problems, run Lamenu from command line with --debug switch to give it a chance to tell you what's wrong. Remember that this thing is for generating menus rather than validating corrupted files and although it can tell you something usefull, won't help you much if you (or someone else) eg. mix encodings in *.desktop files. And this is a feature: every unconvertable character will be dropped. Bugs: Bugs must be fixed :] If you've found some, drop a report at bart-rpm@silesianet.pl Author: Bart Kreska