diff -u larswm-7.5.3/dat.h 10-druuna/dat.h --- larswm-7.5.3/dat.h 2004-07-15 21:00:25.000000000 +0200 +++ 10-druuna/dat.h 2008-08-30 01:31:23.000000000 +0200 @@ -310,6 +310,9 @@ KeySym application_key[MAXAPPS]; unsigned long application_mod[MAXAPPS]; + + KeySym toggle_floatclass_key; + unsigned long toggle_floatclass_mod; }; /* main.c */ diff -u larswm-7.5.3/keys.c 10-druuna/keys.c --- larswm-7.5.3/keys.c 2004-06-22 01:30:29.000000000 +0200 +++ 10-druuna/keys.c 2008-08-30 02:07:02.000000000 +0200 @@ -245,6 +245,11 @@ XGrabKey (dpy, XKeysymToKeycode (dpy, prefs.application_key[y]), prefs.application_mod[y], c->parent, True, GrabModeAsync, GrabModeAsync); + + if (prefs.toggle_floatclass_key) + XGrabKey (dpy, XKeysymToKeycode (dpy, prefs.toggle_floatclass_key), + prefs.toggle_floatclass_mod, c->parent, True, GrabModeAsync, + GrabModeAsync); } else { @@ -309,6 +314,12 @@ XGrabKey (dpy, XKeysymToKeycode (dpy, prefs.application_key[y]), prefs.application_mod[y], screens[i].root, True, GrabModeAsync, GrabModeAsync); + + if (prefs.toggle_floatclass_key) + XGrabKey (dpy, XKeysymToKeycode (dpy, prefs.toggle_floatclass_key), + prefs.toggle_floatclass_mod, screens[i].root, True, GrabModeAsync, + GrabModeAsync); + } } } @@ -411,6 +422,8 @@ unhide_last (s); else if (k == prefs.close_key && m == prefs.close_mod) wmdelete (current, 0); + else if (k == prefs.toggle_floatclass_key && m == prefs.toggle_floatclass_mod) + toggle_isfloat (current); else { int i; diff -u larswm-7.5.3/prefs.c 10-druuna/prefs.c --- larswm-7.5.3/prefs.c 2008-08-30 01:46:00.000000000 +0200 +++ 10-druuna/prefs.c 2008-08-30 01:53:54.000000000 +0200 @@ -183,6 +183,9 @@ prefs.close_key = XK_w; prefs.close_mod = CLOSE_MOD; + prefs.toggle_floatclass_key = XK_d; + prefs.toggle_floatclass_mod = Mod1Mask, + /* provide defaults for up to 12 virtual desktops */ prefs.goto_desktop_key[0] = XK_F1; prefs.goto_desktop_mod[0] = DEFAULT_MOD; @@ -1241,5 +1244,11 @@ if (XrmGetResource (db, "larswm.close_mod", "Larswm.Close_mod", &vt, &v)) prefs.close_mod = get_mod (v.addr); + if (XrmGetResource (db, "larswm.toggle_floatclass_key", "Larswm.Toggle_Floatclass_key", &vt, &v)) + prefs.toggle_floatclass_key = XStringToKeysym (v.addr); + + if (XrmGetResource (db, "larswm.toggle_floatclass_mod", "Larswm.Toggle_Floatclass_mod", &vt, &v)) + prefs.toggle_floatclass_mod = get_mod (v.addr); + validate_prefs (); }