IceWM Menu Builder

One of the main, very silly drawbacks to Pepper Desktop is that it doesn’t have a built-in way to launch native binaries. The Pad 2 out of the box ships using IceWM as the window manager. If you press Ctrl-Esc you get the IceWM menu pop open on the screen, and this does let you open native binaries. But customizing it was a pain in the neck, until now.

I’ve designed a simple system to build IceWM menu files from a hierarchy of files installed by other RPM packages. Packagers have their RPMs write an IceWM menu entry in a file under /usr/local/share/icewm_menu/ and the script icewm_menu_build.sh traverses this structure and writes menu files in the users’ .icewm/ directory. I’m working on having all of my custom Pad 2 RPMs write these files and require the icewm-menu-build package so that Pad 2 users can have easy access to third-party Linux applications.

Here’s what the directory structure looks like:

/usr/local/share/icewm_menu/ (Root directory, if you will)
    root/
        root (entries that go directly in the root menu)
    Games/ (a directory that will become a sub-menu)
        xmahjongg (a file containing a menu entry under Games)
    Programs/ (another sub-menu)
        emelfm2

An IceWM menu entry looks like this, taking FBreader as an example:

prog FBReader /usr/share/FBReader/icons/FBReader.png /usr/bin/FBReader

That is:

prog (menu entry name) (path to menu icon, or '-') (path to executable)
 

Other posts

Leave a reply