Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-scheme_switch-20170804-ceac8c9.diff - sites - public wiki contents of suckl…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-scheme_switch-20170804-ceac8c9.diff (3618B)
---
1 diff --git a/config.def.h b/config.def.h
2 index a9ac303..b047735 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -12,10 +12,26 @@ static const char col_gray2[] = "#444444";
6 static const char col_gray3[] = "#bbbbbb";
7 static const char col_gray4[] = "#eeeeee";
8 static const char col_cyan[] = "#005577";
9 +
10 +/* solarized colors http://ethanschoonover.com/solarized */
11 +static const char s_base03[] = "#002b36";
12 +static const char s_base02[] = "#073642";
13 +static const char s_base01[] = "#586e75";
14 +static const char s_base00[] = "#657b83";
15 +static const char s_base0[] = "#839496";
16 +static const char s_base1[] = "#93a1a1";
17 +static const char s_base2[] = "#eee8d5";
18 +static const char s_base3[] = "#fdf6e3";
19 +
20 +
21 static const char *colors[][3] = {
22 /* fg bg border */
23 - [SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
24 - [SchemeSel] = { col_gray4, col_cyan, col_cyan },
25 + { s_base0, s_base03, s_base2 }, /* SchemeNorm dark */
26 + { s_base0, s_base02, s_base2 }, /* SchemeSel dark */
27 + { s_base00, s_base3, s_base02 }, /* SchemeNorm light */
28 + { s_base00, s_base2, s_base02}, /* SchemeSel light */
29 + { col_gray3, col_gray1, col_gray2 }, /* SchemeNorm orig */
30 + { col_gray4, col_cyan, col_cyan }, /* SchemeSel orig */
31 };
32
33 /* tagging */
34 @@ -84,6 +100,8 @@ static Key keys[] = {
35 { MODKEY, XK_period, focusmon, {.i …
36 { MODKEY|ShiftMask, XK_comma, tagmon, {.i …
37 { MODKEY|ShiftMask, XK_period, tagmon, {.i …
38 + { MODKEY|ShiftMask, XK_t, schemeToggle, {0} …
39 + { MODKEY|ShiftMask, XK_z, schemeCycle, {0} …
40 TAGKEYS( XK_1, 0)
41 TAGKEYS( XK_2, 1)
42 TAGKEYS( XK_3, 2)
43 diff --git a/dwm.c b/dwm.c
44 index a5ce993..3935efc 100644
45 --- a/dwm.c
46 +++ b/dwm.c
47 @@ -60,7 +60,6 @@
48
49 /* enums */
50 enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
51 -enum { SchemeNorm, SchemeSel }; /* color schemes */
52 enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
53 NetWMFullscreen, NetActiveWindow, NetWMWindowType,
54 NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
55 @@ -195,6 +194,8 @@ static void resizemouse(const Arg *arg);
56 static void restack(Monitor *m);
57 static void run(void);
58 static void scan(void);
59 +static void schemeCycle(const Arg*);
60 +static void schemeToggle(const Arg*);
61 static int sendevent(Client *c, Atom proto);
62 static void sendmon(Client *c, Monitor *m);
63 static void setclientstate(Client *c, long state);
64 @@ -264,6 +265,7 @@ static Atom wmatom[WMLast], netatom[NetLast];
65 static int running = 1;
66 static Cur *cursor[CurLast];
67 static Scm *scheme;
68 +static int SchemeNorm = 0, SchemeSel = 1;
69 static Display *dpy;
70 static Drw *drw;
71 static Monitor *mons, *selmon;
72 @@ -1410,6 +1412,42 @@ scan(void)
73 }
74
75 void
76 +schemeCycle(const Arg *arg) {
77 +
78 + if ((SchemeSel + 2) < LENGTH(colors))
79 + {
80 + SchemeNorm += 2;
81 + SchemeSel += 2;
82 + } else {
83 + SchemeNorm = 0;
84 + SchemeSel = 1;
85 + }
86 +
87 + drawbars();
88 +}
89 +
90 +void
91 +schemeToggle(const Arg *arg) {
92 +
93 + int numThemePairs = LENGTH(colors) / 4;
94 + int sheme = SchemeNorm / 2;
95 +
96 + if (sheme / 2 > numThemePairs-1) {
97 + return;
98 + }
99 +
100 + if (sheme % 2 == 0) {
101 + SchemeNorm += 2;
102 + SchemeSel += 2;
103 + } else {
104 + SchemeNorm -= 2;
105 + SchemeSel -= 2;
106 + }
107 +
108 + drawbars();
109 +}
110 +
111 +void
112 sendmon(Client *c, Monitor *m)
113 {
114 if (c->mon == m)
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.