dwm-defaulttransparency-r1521.diff - sites - public wiki contents of suckless.o… | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-defaulttransparency-r1521.diff (3238B) | |
--- | |
1 diff -r 53d98940cb04 config.def.h | |
2 --- a/config.def.h Fri Jun 04 11:41:16 2010 +0100 | |
3 +++ b/config.def.h Sun Jun 06 22:48:32 2010 +0200 | |
4 @@ -12,14 +12,16 @@ | |
5 static const unsigned int snap = 32; /* snap pixel */ | |
6 static const Bool showbar = True; /* False means no bar */ | |
7 static const Bool topbar = True; /* False means bottom b… | |
8 +static const double defaultopacity = 0.75; | |
9 @@ -52,6 +54,9 @@ | |
10 /* modifier key function argu… | |
11 { MODKEY, XK_p, spawn, {.v … | |
12 { MODKEY|ShiftMask, XK_Return, spawn, {.v … | |
13 + { MODKEY|ShiftMask, XK_s, spawn, … | |
14 + { MODKEY|ShiftMask, XK_d, spawn, … | |
15 + { MODKEY|ShiftMask, XK_f, spawn, … | |
16 { MODKEY, XK_b, togglebar, {0} … | |
17 { MODKEY, XK_j, focusstack, {.i … | |
18 { MODKEY, XK_k, focusstack, {.i … | |
19 diff -r 53d98940cb04 dwm.c | |
20 --- a/dwm.c Fri Jun 04 11:41:16 2010 +0100 | |
21 +++ b/dwm.c Sun Jun 06 22:48:32 2010 +0200 | |
22 @@ -58,7 +58,7 @@ | |
23 enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ | |
24 enum { ColBorder, ColFG, ColBG, ColLast }; /* color */ | |
25 enum { NetSupported, NetWMName, NetWMState, | |
26 - NetWMFullscreen, NetLast }; /* EWMH atoms */ | |
27 + NetWMFullscreen, NetLast, NetWMWindowsOpacity }; /* EWMH atoms */ | |
28 enum { WMProtocols, WMDelete, WMState, WMLast }; /* default atom… | |
29 enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, | |
30 ClkClientWin, ClkRootWin, ClkLast }; /* clicks */ | |
31 @@ -179,6 +179,7 @@ | |
32 static void drawtext(const char *text, unsigned long col[ColLast], Bool… | |
33 static void enternotify(XEvent *e); | |
34 static void expose(XEvent *e); | |
35 +static void opacity(Client *c, double opacity); | |
36 static void focus(Client *c); | |
37 static void focusin(XEvent *e); | |
38 static void focusmon(const Arg *arg); | |
39 @@ -816,6 +817,18 @@ | |
40 } | |
41 | |
42 void | |
43 +opacity(Client *c, double opacity) | |
44 +{ | |
45 + if(opacity >= 0 && opacity <= 1) { | |
46 + unsigned long real_opacity[] = { opacity * 0xffffffff }; | |
47 + XChangeProperty(dpy, c->win, netatom[NetWMWindowsOpacit… | |
48 + 32, PropModeReplace, (unsigned char *)r… | |
49 + 1); | |
50 + } else | |
51 + XDeleteProperty(dpy, c->win, netatom[NetWMWindowsOpacit… | |
52 +} | |
53 + | |
54 +void | |
55 focus(Client *c) { | |
56 if(!c || !ISVISIBLE(c)) | |
57 for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext… | |
58 @@ -1104,6 +1117,7 @@ | |
59 *c = cz; | |
60 c->win = w; | |
61 updatetitle(c); | |
62 + opacity(c, defaultopacity); | |
63 if(XGetTransientForHint(dpy, w, &trans)) | |
64 t = wintoclient(trans); | |
65 if(t) { | |
66 @@ -1539,6 +1553,7 @@ | |
67 netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); | |
68 netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False); | |
69 netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULL… | |
70 + netatom[NetWMWindowsOpacity] = XInternAtom(dpy, "_NET_WM_WINDOW… | |
71 /* init cursors */ | |
72 cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr); | |
73 cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing); |