dwww Home | Manual pages | Find package

obamenu(1)                       User Commands                      obamenu(1)

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 oba-
       menu  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  com-
       mand line üarameters or a config file but by having a short config sec-
       tion 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 open-
       box 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, pos-
       sibly 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 "Cate-
       gories" 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", ) im-
       age_dir = "/usr/share/pixmaps"

       application_groups = ("Office",
              "Development",    "Graphics",  "Internet",   "Games",  "System",
              "Multimedia",  "Utility",   "Settings")  group_aliases  =  {"Au-
              dioVideo":"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 dif-
              ferent. 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 depend-
       ing 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 be-
       ing 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  in-
       stance, 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, an-
       other 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 cate-
       gory. 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.  Fi-
       nally  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 applica-
       tions called in a terminal emulator).

       Note that the auto-generated menu can be put right into the  menu  sec-
       tion 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-commer-
       cially) 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.

obamenu                          January 2018                       obamenu(1)

Generated by dwww version 1.15 on Sat Jun 29 02:34:30 CEST 2024.