all repos — ryudo @ dd9e049a8c5e04e94fa53120ae04f37bffd5e9e4

the floatiling window manager that flows; fork of rio from plan9port

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-----
commit

dd9e049a8c5e04e94fa53120ae04f37bffd5e9e4

parent

8ffa8d334b7574d7d132852105e757af425d8a3d

5 files changed, 45 insertions(+), 6 deletions(-)

jump to
M config.hconfig.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.hdat.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 fns.hfns.h

@@ -81,7 +81,7 @@ void button2();

void initb2menu(); void switch_to(); void switch_to_c(); - +void stick(); /* client.c */
M key.ckey.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))