docs
This commit is contained in:
11
cerberus.c
11
cerberus.c
@@ -838,6 +838,7 @@ int main(int argc, char *argv[])
|
|||||||
root = DefaultRootWindow(display);
|
root = DefaultRootWindow(display);
|
||||||
xerror = XSetErrorHandler(oops);
|
xerror = XSetErrorHandler(oops);
|
||||||
|
|
||||||
|
// default non-multi-head setup
|
||||||
monitors[0].x = 0;
|
monitors[0].x = 0;
|
||||||
monitors[0].y = 0;
|
monitors[0].y = 0;
|
||||||
monitors[0].w = WidthOfScreen(screen);
|
monitors[0].w = WidthOfScreen(screen);
|
||||||
@@ -846,6 +847,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
XSelectInput(display, root, StructureNotifyMask | SubstructureRedirectMask | SubstructureNotifyMask);
|
XSelectInput(display, root, StructureNotifyMask | SubstructureRedirectMask | SubstructureNotifyMask);
|
||||||
|
|
||||||
|
// figure out NumlockMask
|
||||||
XModifierKeymap *modmap = XGetModifierMapping(display);
|
XModifierKeymap *modmap = XGetModifierMapping(display);
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
for (j = 0; j < (int)modmap->max_keypermod; j++)
|
for (j = 0; j < (int)modmap->max_keypermod; j++)
|
||||||
@@ -853,6 +855,7 @@ int main(int argc, char *argv[])
|
|||||||
{ NumlockMask = (1<<i); break; }
|
{ NumlockMask = (1<<i); break; }
|
||||||
XFreeModifiermap(modmap);
|
XFreeModifiermap(modmap);
|
||||||
|
|
||||||
|
// process config.h key bindings
|
||||||
for (i = 0; i < sizeof(keys)/sizeof(binding); i++)
|
for (i = 0; i < sizeof(keys)/sizeof(binding); i++)
|
||||||
{
|
{
|
||||||
XGrabKey(display, XKeysymToKeycode(display, keys[i].key), keys[i].mod, root,
|
XGrabKey(display, XKeysymToKeycode(display, keys[i].key), keys[i].mod, root,
|
||||||
@@ -868,6 +871,7 @@ int main(int argc, char *argv[])
|
|||||||
True, GrabModeAsync, GrabModeAsync);
|
True, GrabModeAsync, GrabModeAsync);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// we grab buttons to do click-to-focus. all clicks get passed through to apps.
|
||||||
XGrabButton(display, Button1, AnyModifier, root, True, ButtonPressMask, GrabModeSync, GrabModeSync, None, None);
|
XGrabButton(display, Button1, AnyModifier, root, True, ButtonPressMask, GrabModeSync, GrabModeSync, None, None);
|
||||||
XGrabButton(display, Button3, AnyModifier, root, True, ButtonPressMask, GrabModeSync, GrabModeSync, None, None);
|
XGrabButton(display, Button3, AnyModifier, root, True, ButtonPressMask, GrabModeSync, GrabModeSync, None, None);
|
||||||
|
|
||||||
@@ -876,7 +880,7 @@ int main(int argc, char *argv[])
|
|||||||
stack wins;
|
stack wins;
|
||||||
memset(&wins, 0, sizeof(stack));
|
memset(&wins, 0, sizeof(stack));
|
||||||
|
|
||||||
// panel struts
|
// detect panel struts
|
||||||
windows_visible(&wins);
|
windows_visible(&wins);
|
||||||
inplay.depth = 0;
|
inplay.depth = 0;
|
||||||
for (i = 0; i < wins.depth; i++)
|
for (i = 0; i < wins.depth; i++)
|
||||||
@@ -910,11 +914,13 @@ int main(int argc, char *argv[])
|
|||||||
monitors[i].w = info[i].width;
|
monitors[i].w = info[i].width;
|
||||||
monitors[i].h = info[i].height - struts[TOP] - struts[BOTTOM];
|
monitors[i].h = info[i].height - struts[TOP] - struts[BOTTOM];
|
||||||
|
|
||||||
|
// left struts affect first monitor
|
||||||
if (!i)
|
if (!i)
|
||||||
{
|
{
|
||||||
monitors[i].x += struts[LEFT];
|
monitors[i].x += struts[LEFT];
|
||||||
monitors[i].w -= struts[LEFT];
|
monitors[i].w -= struts[LEFT];
|
||||||
}
|
}
|
||||||
|
// right struts affect last monitor
|
||||||
if (i == nmonitors-1)
|
if (i == nmonitors-1)
|
||||||
{
|
{
|
||||||
monitors[i].w -= struts[RIGHT];
|
monitors[i].w -= struts[RIGHT];
|
||||||
@@ -923,7 +929,7 @@ int main(int argc, char *argv[])
|
|||||||
XFree(info);
|
XFree(info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// setup exiting managable windows
|
// setup existing managable windows
|
||||||
windows_visible(&wins);
|
windows_visible(&wins);
|
||||||
inplay.depth = 0;
|
inplay.depth = 0;
|
||||||
for (i = 0; i < wins.depth; i++)
|
for (i = 0; i < wins.depth; i++)
|
||||||
@@ -932,6 +938,7 @@ int main(int argc, char *argv[])
|
|||||||
if (c && c->manage)
|
if (c && c->manage)
|
||||||
{
|
{
|
||||||
window_listen(c->window);
|
window_listen(c->window);
|
||||||
|
// activate first one
|
||||||
if (!current && c->visible)
|
if (!current && c->visible)
|
||||||
{
|
{
|
||||||
client_active(c);
|
client_active(c);
|
||||||
|
|||||||
Reference in New Issue
Block a user