Hi. Here's a patch which does it. It's quick and dirty hardcoded; it'd be nicer to have an rc.xml-configurable option, but I couldn't be bothered.
Index: openbox/event.c
===================================================================
--- openbox/event.c (revision 5500)
+++ openbox/event.c (working copy)
@@ -1210,6 +1210,15 @@
ObMenuFrame *f;
ObMenuEntryFrame *e;
+ static guint h, j, k, l;
+ if (h == 0 && j == 0 && k == 0 && l == 0) {
+ int nil;
+ translate_key("h", &nil, &h);
+ translate_key("j", &nil, &j);
+ translate_key("k", &nil, &k);
+ translate_key("l", &nil, &l);
+ }
+
switch (ev->type) {
case ButtonRelease:
if (menu_can_hide) {
@@ -1246,19 +1255,23 @@
ObMenuFrame *f;
if ((f = find_active_menu()))
menu_entry_frame_execute(f->selected, ev->xkey.state);
- } else if (ev->xkey.keycode == ob_keycode(OB_KEY_LEFT)) {
+ } else if (ev->xkey.keycode == ob_keycode(OB_KEY_LEFT) ||
+ ev->xkey.keycode == h) {
ObMenuFrame *f;
if ((f = find_active_or_last_menu()) && f->parent)
menu_frame_select(f, NULL);
- } else if (ev->xkey.keycode == ob_keycode(OB_KEY_RIGHT)) {
+ } else if (ev->xkey.keycode == ob_keycode(OB_KEY_RIGHT) ||
+ ev->xkey.keycode == l) {
ObMenuFrame *f;
if ((f = find_active_or_last_menu()) && f->child)
menu_frame_select_next(f->child);
- } else if (ev->xkey.keycode == ob_keycode(OB_KEY_UP)) {
+ } else if (ev->xkey.keycode == ob_keycode(OB_KEY_UP) ||
+ ev->xkey.keycode == k) {
ObMenuFrame *f;
if ((f = find_active_or_last_menu()))
menu_frame_select_previous(f);
- } else if (ev->xkey.keycode == ob_keycode(OB_KEY_DOWN)) {
+ } else if (ev->xkey.keycode == ob_keycode(OB_KEY_DOWN) ||
+ ev->xkey.keycode == j) {
ObMenuFrame *f;
if ((f = find_active_or_last_menu()))
menu_frame_select_next(f);
--
Jonas Kölker <[EMAIL PROTECTED]> <URL:http://jonaskoelker.homeunix.org>
signature.asc
Description: Digital signature

