[dev] Why does the floating window lose focus ?

From: z_axis <z_axis_AT_163.com>
Date: Wed, 04 Jul 2012 11:03:22 +0800

I am using DWM-6.0 on my FreeBSD 9.0 box. Somtimes when i am inputting
something in a floating window, it will lose focus automatically.
Then i have to press MODKEY+XK_j/XK_k to switch back. The following is my
config.h

static const char font[] = "-wenquanyi-wenquanyi bitmap
song-medium-r-normal--12-130-75-75-p-80-iso10646-1";

static const char normbordercolor[] = "#444444";
static const char normbgcolor[] = "#222222";
static const char normfgcolor[] = "#bbbbbb";
static const char selbordercolor[] = "#005577";
static const char selbgcolor[] = "#005577";
static const char selfgcolor[] = "#eeeeee";
static const unsigned int borderpx = 1; /* border pixel of windows
*/
static const unsigned int snap = 32; /* snap pixel */
static const Bool showbar = False; /* False means no bar */
static const Bool topbar = True; /* False means bottom bar
*/
/* tagging */
static const char *tags[] = { "1", "2", "3" };

static const Rule rules[] = {
         /* class instance title tags mask isfloating
monitor */
         { "Opera", NULL, NULL, 0, True,
-1 },
         { "Wine", NULL, NULL, 1 << 1, False,
-1 },
};

/* layout(s) */
static const float mfact = 0.45; /* factor of master area size
[0.05..0.95] */
static const int nmaster = 1; /* number of clients in master area
*/
static const Bool resizehints = True; /* True means respect size hints in
tiled resizals */

#include "bstack.c"
#include "bstackhoriz.c"

/* first entry is default */
static const Layout layouts[] = {
         /* symbol arrange function */
         { "><>", NULL }, /* no layout function means floating
behavior */
         { "TTT", bstack },
         { "===", bstackhoriz },
         { "[]=", tile },
     { "[M]", monocle },
};

/* key definitions */
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
         { MODKEY, KEY, view, {.ui = 1
<< TAG} }, \
         { MODKEY|ControlMask, KEY, toggleview, {.ui = 1
<< TAG} }, \
         { MODKEY|ShiftMask, KEY, tag, {.ui = 1
<< TAG} }, \
         { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1
<< TAG} },

/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }

/* commands */
static const char *dmenucmd[] = { "/home/sw2wolf/bin/dmenu.sh", NULL };
static const char *browsecmd[] = { "opera", NULL };
static const char *haltcmd[] = { "sudo", "/sbin/shutdown", "-p", "now",
NULL };
static const char *rebootcmd[] = { "sudo", "/sbin/shutdown", "-r", "now",
NULL };

static Key keys[] = {
         /* modifier key function
argument */
         { MODKEY, XK_p, spawn, {.v =
dmenucmd } },
         { MODKEY, XK_w, spawn, {.v =
browsecmd } },
         { MODKEY, XK_F11, spawn, {.v =
rebootcmd } },
// { MODKEY, XK_F12, spawn, {.v =
haltcmd } },
         { MODKEY, XK_F12, spawn,
SHCMD("sudo /sbin/shutdown -p now") },
         { MODKEY, XK_Print, spawn,
SHCMD("scrot %Y%m%d-%H.%M.%S.png -t 280x175 -e 'mv $f $m ~'") },
         { MODKEY|ShiftMask, XK_Print, spawn,
SHCMD("scrot %Y%m%d-%H.%M.%S.png -t 280x175 -d 5 -e 'mv $f $m ~'") },
         { MODKEY, XK_b, togglebar, {0} },
         { MODKEY, XK_Tab, focusstack, {.i =
+1 } },
         { MODKEY, XK_j, focusstack, {.i =
+1 } },
         { MODKEY, XK_k, focusstack, {.i =
-1 } },
         { MODKEY, XK_i, incnmaster, {.i =
+1 } },
         { MODKEY, XK_d, incnmaster, {.i =
-1 } },
         { MODKEY, XK_h, setmfact, {.f =
-0.05} },
         { MODKEY, XK_l, setmfact, {.f =
+0.05} },
// { MODKEY, XK_Return, zoom, {0} },
// { MODKEY, XK_Tab, view, {0} },
         { MODKEY|ShiftMask, XK_c, killclient, {0} },
         { MODKEY, XK_f, setlayout, {.v =
&layouts[0]} },
         { MODKEY, XK_x, setlayout, {.v =
&layouts[1]} },
         { MODKEY, XK_y, setlayout, {.v =
&layouts[2]} },
         { MODKEY, XK_t, setlayout, {.v =
&layouts[3]} },
         { MODKEY, XK_m, setlayout, {.v =
&layouts[4]} },
// { MODKEY, XK_space, setlayout, {0} },
         { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
         { MODKEY, XK_0, view, {.ui =
~0 } },
         { MODKEY|ShiftMask, XK_0, tag, {.ui =
~0 } },
         { MODKEY, XK_comma, focusmon, {.i =
-1 } },
         { MODKEY, XK_period, focusmon, {.i =
+1 } },
         { MODKEY|ShiftMask, XK_comma, tagmon, {.i =
-1 } },
         { MODKEY|ShiftMask, XK_period, tagmon, {.i =
+1 } },
         TAGKEYS( XK_1, 0)
         TAGKEYS( XK_2, 1)
         TAGKEYS( XK_3, 2)
         { MODKEY|ShiftMask, XK_q, quit, {0}
}, // logout
};
/* button definitions */
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or
ClkRootWin */
static Button buttons[] = {
         /* click event mask button
function argument */
//{ ClkLtSymbol, 0, Button1, setlayout,
{0} },
//{ ClkLtSymbol, 0, Button3, setlayout,
{.v = &layouts[2]} },
//{ ClkWinTitle, 0, Button2, zoom,
{0} },
         { ClkClientWin, MODKEY, Button1,
movemouse, {0} },
         { ClkClientWin, MODKEY, Button2,
togglefloating, {0} },
         { ClkClientWin, MODKEY, Button3,
resizemouse, {0} },
//{ ClkTagBar, 0, Button1, view,
{0} },
//{ ClkTagBar, 0, Button3, toggleview,
{0} },
         { ClkTagBar, MODKEY, Button1,
tag, {0} },
         { ClkTagBar, MODKEY, Button3,
toggletag, {0} },
};

Any suggestion is appreciated!
Received on Wed Jul 04 2012 - 05:03:22 CEST

This archive was generated by hypermail 2.3.0 : Wed Jul 04 2012 - 05:12:05 CEST