Hello Rohan, sorry for the very late reply...
> is there a way to bind control-meta-<somekey>, as my attempts have
> failed so far. I am interested as I do not want to clobber my emacs
> bindings when I want to perform different commands.
Giving "C-M-x" should work as you want it. But I'm not sure, if you
might have to use something between "C-M1-x" to "C-M5-x" on your
system and with the Meta key you intend to use (I don't know if other
applications might sum these keys up).
Concerning your desired abstraction for running a terminal, your
config file could look like this:
(define-structure config-file config-file-interface
(open scheme-with-scsh xlib config-file-utils)
(let ((term '(xterm -bg yellow)))
;;(define-option root-options user-bindings
;; '(("F2" exec xterm -bg yellow)))
(define-option root-options user-bindings
`(("F2" apply ,get-term)))
Note that you have to include scsh, or better scheme-with-scsh, in the
'open' declaration. Otherwise you will get a (actually not very
intuitive) error message :-(