all repos — dwm @ ee31e38dc75832a66cb0fc01bcf2f419ac96a20b

my dwm build

removed NUMLOCKMASK, added dynamically calculated numlockmask instead
Anselm R.Garbe arg@10ksloc.org
Mon, 14 Aug 2006 19:18:02 +0200
commit

ee31e38dc75832a66cb0fc01bcf2f419ac96a20b

parent

442334641e4124d8c32387287d431a83761ff916

6 files changed, 29 insertions(+), 19 deletions(-)

jump to
M client.cclient.c

@@ -228,27 +228,27 @@ XGrabButton(dpy, Button1, MODKEY, c->win, False, BUTTONMASK,

GrabModeAsync, GrabModeSync, None, None); XGrabButton(dpy, Button1, MODKEY | LockMask, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button1, MODKEY | NUMLOCKMASK, c->win, False, BUTTONMASK, + XGrabButton(dpy, Button1, MODKEY | numlockmask, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button1, MODKEY | NUMLOCKMASK | LockMask, c->win, False, BUTTONMASK, + XGrabButton(dpy, Button1, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); XGrabButton(dpy, Button2, MODKEY, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); XGrabButton(dpy, Button2, MODKEY | LockMask, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button2, MODKEY | NUMLOCKMASK, c->win, False, BUTTONMASK, + XGrabButton(dpy, Button2, MODKEY | numlockmask, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button2, MODKEY | NUMLOCKMASK | LockMask, c->win, False, BUTTONMASK, + XGrabButton(dpy, Button2, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); XGrabButton(dpy, Button3, MODKEY, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); XGrabButton(dpy, Button3, MODKEY | LockMask, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button3, MODKEY | NUMLOCKMASK, c->win, False, BUTTONMASK, + XGrabButton(dpy, Button3, MODKEY | numlockmask, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button3, MODKEY | NUMLOCKMASK | LockMask, c->win, False, BUTTONMASK, + XGrabButton(dpy, Button3, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); settags(c);
M config.arg.hconfig.arg.h

@@ -13,7 +13,6 @@ #define BGCOLOR "#0d121d"

#define FGCOLOR "#eeeeee" #define BORDERCOLOR "#3f484d" #define MODKEY Mod1Mask -#define NUMLOCKMASK Mod2Mask #define MASTERW 60 /* percent */ #define KEYS \
M config.default.hconfig.default.h

@@ -13,7 +13,6 @@ #define BGCOLOR "#666699"

#define FGCOLOR "#eeeeee" #define BORDERCOLOR "#9999CC" #define MODKEY Mod1Mask -#define NUMLOCKMASK Mod2Mask #define MASTERW 60 /* percent */ #define KEYS \
M dwm.hdwm.h

@@ -70,7 +70,7 @@

extern const char *tags[]; extern char stext[1024]; extern int screen, sx, sy, sw, sh, bx, by, bw, bh, mw; -extern unsigned int ntags; +extern unsigned int ntags, numlockmask; extern void (*handler[LASTEvent])(XEvent *); extern void (*arrange)(Arg *); extern Atom wmatom[WMLast], netatom[NetLast];
M event.cevent.c

@@ -18,7 +18,7 @@ } Key;

KEYS -#define CLEANMASK(mask) (mask & ~(NUMLOCKMASK | LockMask)) +#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask)) static void movemouse(Client *c)

@@ -378,9 +378,9 @@ XGrabKey(dpy, code, key[i].mod, root, True,

GrabModeAsync, GrabModeAsync); XGrabKey(dpy, code, key[i].mod | LockMask, root, True, GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True, + XGrabKey(dpy, code, key[i].mod | numlockmask, root, True, GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True, + XGrabKey(dpy, code, key[i].mod | numlockmask | LockMask, root, True, GrabModeAsync, GrabModeAsync); } }
M main.cmain.c

@@ -11,6 +11,7 @@ #include <string.h>

#include <unistd.h> #include <sys/select.h> #include <X11/cursorfont.h> +#include <X11/keysym.h> #include <X11/Xatom.h> #include <X11/Xproto.h>

@@ -85,7 +86,7 @@

char stext[1024]; Bool *seltag; int screen, sx, sy, sw, sh, bx, by, bw, bh, mw; -unsigned int ntags; +unsigned int ntags, numlockmask; Atom wmatom[WMLast], netatom[NetLast]; Bool running = True; Bool issel = True;

@@ -162,12 +163,13 @@

int main(int argc, char *argv[]) { - int i, xfd; + int i, j, xfd; unsigned int mask; fd_set rd; Bool readin = True; Window w; XEvent ev; + XModifierKeymap *modmap; XSetWindowAttributes wa; if(argc == 2 && !strncmp("-v", argv[1], 3)) {

@@ -211,7 +213,16 @@ cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr);

cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing); cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur); - wa.event_mask = SubstructureRedirectMask | EnterWindowMask | LeaveWindowMask; + modmap = XGetModifierMapping(dpy); + for (i = 0; i < 8; i++) { + for (j = 0; j < modmap->max_keypermod; j++) { + if(modmap->modifiermap[i * modmap->max_keypermod + j] == XKeysymToKeycode(dpy, XK_Num_Lock)) + numlockmask = (1 << i); + } + } + XFree(modmap); + + wa.event_mask = SubstructureRedirectMask | SubstructureNotifyMask | EnterWindowMask | LeaveWindowMask; wa.cursor = cursor[CurNormal]; XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);

@@ -233,13 +244,12 @@ sw = DisplayWidth(dpy, screen);

sh = DisplayHeight(dpy, screen); mw = (sw * MASTERW) / 100; + bx = by = 0; + bw = sw; + dc.h = bh = dc.font.height + 4; wa.override_redirect = 1; wa.background_pixmap = ParentRelative; wa.event_mask = ButtonPressMask | ExposureMask; - - bx = by = 0; - bw = sw; - dc.h = bh = dc.font.height + 4; barwin = XCreateWindow(dpy, root, bx, by, bw, bh, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);

@@ -258,6 +268,7 @@ scan();

/* main event loop, also reads status text from stdin */ XSync(dpy, False); + goto XLoop; while(running) { FD_ZERO(&rd); if(readin)

@@ -278,6 +289,7 @@ strcpy(stext, "broken pipe");

drawstatus(); } if(FD_ISSET(xfd, &rd)) { +XLoop: while(XPending(dpy)) { XNextEvent(dpy, &ev); if(handler[ev.type])