Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-5.8-gestures.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-5.8-gestures.diff (2356B)
---
1 diff dwm-5.8.2/config.h dwm-5.8.2mod/config.h
2 92a93
3 > { ClkWinTitle, 0, Button3, startg…
4 100a102,113
5 > };
6 >
7 > //may want to reuse the architecture present in buttons[] and keys[]
8 > static Gesture gestures[] = {
9 > {"dl", spawn, SHCMD("konqueror") },
10 > {"dr", spawn, SHCMD("pidgin" ) },
11 > {"l", spawn, SHCMD("xterm") },
12 > {"ld", spawn, SHCMD("gimp" ) },
13 > {"lr", spawn, SHCMD("google-chrome") },
14 > {"r" , spawn, SHCMD("firefox") },
15 > {"rl", spawn, SHCMD("pavucontrol") },
16 > {"du", spawn, SHCMD("kate") },
17 Only in dwm-5.8.2mod: config.h~
18 Binary files dwm-5.8.2/dwm and dwm-5.8.2mod/dwm differ
19 diff dwm-5.8.2/dwm.c dwm-5.8.2mod/dwm.c
20 73a74,79
21 > char *name;
22 > void (*func)(const Arg *arg);
23 > const Arg arg;
24 > } Gesture;
25 >
26 > typedef struct {
27 244a251
28 > static void startgesture(const Arg *arg);
29 1248a1256,1318
30 >
31 > void
32 > startgesture(const Arg *arg) {
33 > int x, y, dx, dy, q;
34 > int valid=0, listpos=0, gestpos=0, count=0;
35 > char move, currGest[10];
36 > XEvent ev;
37 >
38 > if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, Gr…
39 > None, cursor[CurMove], CurrentTime) != GrabSuccess)
40 > return;
41 > if(!getrootptr(&x, &y))
42 > return;
43 > do {
44 > XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRed…
45 > switch (ev.type) {
46 > case ConfigureRequest:
47 > case Expose:
48 > case MapRequest:
49 > handler[ev.type](&ev);
50 > break;
51 > case MotionNotify:
52 > if(count++ < 10)
53 > break;
54 > count = 0;
55 > dx = ev.xmotion.x - x;
56 > dy = ev.xmotion.y - y;
57 > x = ev.xmotion.x;
58 > y = ev.xmotion.y;
59 >
60 > if( abs(dx)/(abs(dy)+1) == 0 )
61 > move = dy<0?'u':'d';
62 > else
63 > move = dx<0?'l':'r';
64 >
65 > if(move!=currGest[gestpos-1])
66 > {
67 > if(gestpos>9)
68 > { ev.type++;
69 > break;
70 > }
71 >
72 > currGest[gestpos] = move;
73 > currGest[++gestpos] = '\0';
74 >
75 > valid = 0;
76 > for(q = 0; q<LENGTH(gestures);…
77 > { if(!strcmp(currGest, …
78 > { valid++;
79 > listpos = q; …
80 > }
81 > }
82 > }
83 >
84 > }
85 > } while(ev.type != ButtonRelease);
86 >
87 > if(valid)
88 > gestures[listpos].func(&(gestures[listpos].arg));
89 >
90 > XUngrabPointer(dpy, CurrentTime);
91 > }
92 >
93 Only in dwm-5.8.2mod: dwm.c~
94 Binary files dwm-5.8.2/dwm.o and dwm-5.8.2mod/dwm.o differ
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.