Sawfish is a window manager that can be extended using a Lisp dialect. See ExtensibleSoftware and

sawfish.el provides a major mode “sawfish-mode” to edit Sawfish source lisp files. There, you can use ‘C-x C-e’ to run ‘sawfish-eval-last-sexp’, just like ‘eval-last-sexp’ of elisp modes.

From Sawfish-1.7.0, it is included in the Sawfish window manager, and the above link points to the latest version. It was originally written by Dave Pearson, but currently maintained by Sawfish community.

Example ~/.sawfish/rc can be like:

(setq user-apps-menu
      '(("Terminal" (system "terminal &"))
	("Root" (system "root &"))
	("Emacs 20.7" (system "emacs-20.7 &"))
	("XEmacs 21.4" (system "xemacs-21.4.1 &"))
	("Netscape" (system "netscape &"))
	("Galeon" (system "galeon &"))
	("xchat" (system "xchat &"))
	("The GIMP" (system "gimp &"))
	("XFIG" (system "xfig &"))))

Editing these lines and hitting ‘C-x C-e’ I can change the apps-menu on the fly.

For more Sawfish code, check the Sawfish Wiki.