diff -r a1102e52ead4 config.def.h --- a/config.def.h Wed Mar 24 23:37:46 2010 +0100 +++ b/config.def.h Sat Apr 17 01:18:44 2010 +0000 @@ -27,4 +27,6 @@ { MODKEY, XK_9, move, { .i = 8 } }, { MODKEY, XK_0, move, { .i = 9 } }, { MODKEY, XK_q, killclient, { 0 } }, + { MODKEY|Mod1Mask, XK_l, list, { .v = (char *[]){ \ + "lsw %s | dmenu -l 5", winid, NULL } } }, }; diff -r a1102e52ead4 tabbed.c --- a/tabbed.c Wed Mar 24 23:37:46 2010 +0100 +++ b/tabbed.c Sat Apr 17 01:18:44 2010 +0000 @@ -111,6 +111,7 @@ static Bool isprotodel(Client *c); static void keypress(const XEvent *e); static void killclient(const Arg *arg); +static void list(const Arg *arg); static void manage(Window win); static void maprequest(const XEvent *e); static void move(const Arg *arg); @@ -564,6 +565,23 @@ } void +list(const Arg *arg) { + char buf[1024], *s; + Client *c; + FILE *l; + + snprintf(buf, sizeof buf, ((char **)arg->v)[0], ((char **)arg->v)[1]); + l = popen(buf, "r"); + s = fgets(buf, sizeof buf, l); + pclose(l); + if(!s) + return; + for(c = clients; c; c = c->next) + if(!strcmp(s, c->name)) + focus(c); +} + +void manage(Window w) { updatenumlockmask(); {