Provided by: openbox_3.6.1-9ubuntu0.20.04.1_amd64 bug

NAME

       obamenu - menu generator for the openbox window manager.

DESCRIPTION

       obamenu  (openbox  automenu) is a menu generator for the openbox window manager. Rather than striving for
       full and complete xdg compliance obamenu offers a reasonable basic level of xdg compliance and focuses on
       low resource usage and pragmatic issues.

       obamenu  consists  of  a single python file without any exotic imports. It has been developed with Python
       2.7 should, however, work fine with any Python > 2.5 (possibly even older)  and  with  Python's  standard
       included batteries.

       Usage:

       obamenu

       That's it. No options, no parameters, simple as that. But ...

       As  openbox  users  are  not  afraid  of  editing  config  files,  a decision was taken to make obamenu's
       configuration powerful yet simple not by command line üarameters or a config file but by having  a  short
       config section right within obamenu itself.

       The basic idea

       It  seems  reasonable  to assume that openbox users are quite different from users of the more common and
       usually monstrous window managers.  And while obamenu is perfectly capable to just splash the usual  full
       menu  into  your  .jwmrc the authors needs (and assumptions on other openbox users needs) and accordingly
       obamenu's capabilities are somewhat more refined.

       First some basics. On pretty much any halfway modern Unixoid OS, there is some directory with  ".desktop"
       files  which  contain information about applications needed by the OS; things like its name, the command,
       possibly some comment, and so on. On most linuxes and BSD this directory is "/usr/share/applications". Of
       course,  as  with every standard, there's some idio^H^H^H^H players (like Gnome) who don't care that much
       and dump their .desktop files elsewhere and anywhere.  Similarly there is also a place for all those nice
       application  (not  OS!)  icons.  Usually they are in "/usr/share/pixmaps".  Last but not least, there are
       "Categories" into which applications are grouped in menus. Btw, obamenu does not show empty categories to
       avoid senseless clutter.

       So, let's have a look at a obamenu's config section and its bits and pieces:

       # ---- config --- applications_dirs = ("/usr/share/applications", ) image_dir = "/usr/share/pixmaps"

       application_groups = ("Office",
              "Development",    "Graphics",   "Internet",    "Games",   "System",    "Multimedia",    "Utility",
              "Settings") group_aliases  =  {"AudioVideo":"Multimedia","Game":"Games",  "GTK":""}  ignoreList  =
              ("evince-previewer", "python3.4", "feh","xfce4-power-manager-settings" )

       terminal_string = "svte -e"
              # your favourites terminal exec string # --- End of user config ---

       The  first one, "applications_dirs" is a list of directories in which .desktop files are to be found. The
       default, which should be fine for most
              users, is where .desktop files are usually put by linux  or  BSD.  Feel  free  to  add  more,  for
              instance  some subdirectory within your $HOME.  The next one, "image_dir", is quite similar but is
              about icon images for applications. A small caveat, though: While  most  applications  are  nicely
              putting their .desktop files into the standard directory, the story with icons is quite different.
              Particularly the wm behemoths like Gnome tend to spread icon files all over the place. Often,  for
              instance,  icon  files  are  to be found in some obscure subdirectory of "/usr/share/icons" buried
              deep depending in the chosen theme and the icon size. The author of obamenu admits freely to  have
              taken a rather deliberate choice in that regard by having image_dir be a simple string rather than
              a list, which might seem to be a reasonable way to some. The author, however, didn't  consider  it
              wise  to play find and catch with ignorance and idiosyncrasies of some parties. He rather chose to
              use the trusted Unix mechanism of links. In other words: You are advised to  soft  link  all  icon
              files  outside  the  standard  icon  directory  to  /usr/share/pixmaps or similar. ("find" is your
              friend, e.g. find /usr/share/icons -name 'foo.*').

       The next setting, "application_groups" looks innocent enough but has some power with  it.  Obviously  the
       entries  in that list are "menu groups" or categories into which xdg menus put the applications depending
       on some .desktop data. You might want to keep in mind that obamenu keeps categories in the the  order  of
       this  setting,  i.e.  you  will find those categories in the menu in that order, too.  And then there are
       buts ...  The first but is that you almost certaintly don't want  more  categories  than  the  number  of
       citizens  in  your  home  town.  Another  and more interesting but is that, obviously, usage profiles are
       different. For me as a developer, for instance, a "shows coloured stuff or makes  sound"  category  seems
       sensibly sufficient; some movie editing people though might have quite different views... which brings us
       to the next setting.  "group_aliases" is a list of string pairs, the first  one  being  what  is  put  as
       category in the .desktop file(s) and the second one being the category it will end up in. In other words:
       this is your chance to rearrange things the way you want them. The author, for  instance,  has  a  rather
       frugal  attitude regarding multimedia; accordingly, he simply throws anything audio or video related into
       one category "multimedia".  To illustrate, though  admittedly  somewhat  construed,  another  potentially
       useful  feature,  have a look at "GTK" in those string pairs. Its second string is empty which comes down
       to telling obamenu "ignore that stuff. Don't put it into my menu". The reason being that  openbox  *only*
       creates  menus  for  applications  being  sorted into a category. No category, no menu entry.  Hint: This
       setting may also be used to have translated strings in your menu; simply have  the  english  cat.  string
       aliased to a translated version.

       The  second  to  last setting, "ignoreList" is what its name suggests. It's a list of .desktop file names
       (without the ".desktop" part) you wish to ignore, i.e. to not have in  your  menu  for  whatever  reason.
       Finally  the  last  setting,  "terminal_string",  is  telling obamenu how to call your favourite terminal
       emulator for console applications like "htop".  (obamenu  automagically  takes  care  of  having  console
       applications called in a terminal emulator).

       Note  that the auto-generated menu can be put right into the menu section of an openbox menu.xml Last but
       not least you can, of course, also send obamenu's  output  to  a  file  which  can  be  edited,  inserted
       manually, feed your cat, and all the other things Unixoids can do with files.

       Just to avoid misunderstandings, here's an example (the authors usage) of obamenu in a ob menu.xml file:

          <menu id="desktop-app-menu" label="Applications" icon="/usr/share/icons/applications.png" execute="~/obamenu" />

       License:  obamenu  is  under  a  dual  license depending on who you are. If you are using it as a private
       person (which also means non-commercially) it's under a 3 clause BSD license. If you are using it  as  or
       in the context of anything not private, for instance, in a business or an agency, it's under GPL v.2.

       Disclaimer:  The  author  uses  mainly  jwm.  While  obamenu has been tested to work properly it has been
       considerably less tested than the authors jwmamenu (same thing but for jwm. In  fact,  obamenu  has  been
       derived from jwmamenu).

       The  main motivation behind obamenu was the fact that openbox-menu (probably the most used menu generator
       for ob) doesn't compile properly on FreeBSD and the author saw absolutely no reason why a menu  generator
       couldn't - and shouldn't - be cross platform (e.g. using Python).

       News & Updates:

       •  ported  (from  jwmamenu)  smarts  to  get  rid  of '%x' target specifiers in Exec spec. (used for file
          managers but disturbing in menus)

       •  ported search for category icons in configurable Theme

       •  some cleaning up and small enhancements, mainly for speed.