menu.c, fns.h, dat.h, config.h: add omnipresent windows, add config option to enable or disable menu item; config.h, key.c: add keyboard shortcut for sticky windows
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmAksmUACgkQO3+8IhRO Y5itCxAAmYY49Do9E/FMJBqR+TYROyb5p5awr7QwjrgB5bNvA9Ru5Og3pp4qHiv7 oZzGFYLOv+BJLLuM92prMnlpqupCv4INSyIQ/j4vkhQzARJepx9P1nKQqcf6h+uN MrpscderzttNg8QJi0YcACAr3CMRfXzMQozP7YFIx823+VxUAq1aMSRT8j4jnv0e Wg/kJWZItx/PUNwADw+oW7KDMHc81Y/MKaf76epDYOz2ZHm4Mv2Gu9XxFaxRcoJ4 +AP08lxd7EAQfwUXSZZEMAP8nEsxnmWSctLJ1N2USBwNAqS7wyv6TZOCjYNnn4ep PNSonh5CcNpwGnmNe59mclJrdRn4oGpRq93T/dmjiAY064mfCDTpMoO6E8OqvTh0 tqVoOQ02hpk0xJyTWZHB2Dhw1T17KEyMKSCv/BCbQV/2zUoF41g0IKjw6ZsMbKot lgXrlvW7MQWIBCWzFIofoOl+Y0V9Tjt2Eq0k3XjtjJ94zLgAGC/2Tx/1dgtH3pJC IzEZKnbaDJzuPEIkAx+VNBchBgJhcVSpen/kTMe64weWGMWuT1FDxqoM5ZdIpBuv kNL4msUoIzOStNtiJiAUqmnLMZwSi7QZIU4OWfeNc//KGsYSOrJBgTcU+rfoxD23 KrkX1dLbBm3Hx/MVmHzlA0FffFD1FPXwn/yVSd8KYlroaqNYPYI= =szWc -----END PGP SIGNATURE-----
M
config.h
→
config.h
@@ -12,6 +12,8 @@ #define MENUBGCOL 0x000000
#define SMENUFGCOL 0x000000 #define SMENUBGCOL 0x1f9b92 +// #define SHOWSTICK + #define SHORTCUTMOD Mod4Mask #define MODBITS (1<<6)@@ -21,6 +23,7 @@ #define UNHIDE_KEY XK_u
#define MOVE_KEY XK_v #define RESIZE_KEY XK_r #define DESTROY_KEY XK_d +#define STICK_KEY XK_s #define SNAPLEFT_KEY XK_h #define SNAPRIGHT_KEY XK_l@@ -38,3 +41,4 @@ #define NEXTVIRT_KEY XK_Right
#define PREVVIRT_KEY XK_Left #define LAUNCH_KEY XK_slash +
M
dat.h
→
dat.h
@@ -6,7 +6,11 @@ #endif
#define CORNER _corner #define INSET _inset #define MAXHIDDEN 128 -#define B3FIXED 5 +#ifdef SHOWSTICK +#define B3FIXED 6 +#else +#define B3FIXED 5 +#endif #define NUMVIRTUALS 12 #define AllButtonMask (Button1Mask|Button2Mask|Button3Mask \@@ -188,4 +192,4 @@ extern int ignore_badwindow;
/* key.c and event.c share this */ -extern int kbLaunch;+extern int kbLaunch;
M
key.c
→
key.c
@@ -43,6 +43,7 @@ int ucode = XKeysymToKeycode(dpy, UNHIDE_KEY);
int mcode = XKeysymToKeycode(dpy, MAX_KEY); int vcode = XKeysymToKeycode(dpy, MOVE_KEY); int rcode = XKeysymToKeycode(dpy, RESIZE_KEY); + int scode = XKeysymToKeycode(dpy, STICK_KEY); int hcode = XKeysymToKeycode(dpy, SNAPLEFT_KEY); int lcode = XKeysymToKeycode(dpy, SNAPRIGHT_KEY); int jcode = XKeysymToKeycode(dpy, SNAPBOTTOM_KEY);@@ -64,6 +65,7 @@ XGrabKey(dpy, ucode, SHORTCUTMOD, screens[i].root, 0, GrabModeSync, GrabModeAsync);
XGrabKey(dpy, rcode, SHORTCUTMOD, screens[i].root, 0, GrabModeSync, GrabModeAsync); XGrabKey(dpy, vcode, SHORTCUTMOD, screens[i].root, 0, GrabModeSync, GrabModeAsync); XGrabKey(dpy, mcode, SHORTCUTMOD, screens[i].root, 0, GrabModeSync, GrabModeAsync); + XGrabKey(dpy, scode, SHORTCUTMOD, screens[i].root, 0, GrabModeSync, GrabModeAsync); XGrabKey(dpy, hcode, SHORTCUTMOD, screens[i].root, 0, GrabModeSync, GrabModeAsync); XGrabKey(dpy, lcode, SHORTCUTMOD, screens[i].root, 0, GrabModeSync, GrabModeAsync); XGrabKey(dpy, jcode, SHORTCUTMOD, screens[i].root, 0, GrabModeSync, GrabModeAsync);@@ -95,6 +97,7 @@ int icode = XKeysymToKeycode(dpy, ICON_KEY);
int ucode = XKeysymToKeycode(dpy, UNHIDE_KEY); int mcode = XKeysymToKeycode(dpy, MAX_KEY); int vcode = XKeysymToKeycode(dpy, MOVE_KEY); + int scode = XKeysymToKeycode(dpy, STICK_KEY); int rcode = XKeysymToKeycode(dpy, RESIZE_KEY); int slcode = XKeysymToKeycode(dpy, LAUNCH_KEY); int hcode = XKeysymToKeycode(dpy, SNAPLEFT_KEY);@@ -128,6 +131,8 @@ if (e->keycode == rcode && (e->state&SHORTCUTMOD) == (MODBITS))
reshape(current, Button3, sweep, 0); if (e->keycode == mcode && (e->state&SHORTCUTMOD) == (MODBITS)) quickreshape(current, -BORDER, -BORDER, ra.width + 2*BORDER, ra.height + 2*BORDER); + if (e->keycode == scode && (e->state&SHORTCUTMOD) == (MODBITS)) + stick(current); /* half snap */ if (e->keycode == hcode && (e->state&SHORTCUTMOD) == (MODBITS))