Introduction
Introduction Statistics Contact Development Disclaimer Help
dmenu-xtheme-20220325-005000.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dmenu-xtheme-20220325-005000.diff (4586B)
---
1 diff --git a/Makefile b/Makefile
2 index a03a95c..4ccdf8d 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -17,19 +17,26 @@ options:
6 .c.o:
7 $(CC) -c $(CFLAGS) $<
8
9 -config.h:
10 - cp config.def.h $@
11 +theme.h:
12 + ./xtheme
13
14 -$(OBJ): arg.h config.h config.mk drw.h
15 +theme_beg.h:
16 + ./themesetup
17 +
18 +config.h: theme.h
19 + cp -n config.def.h $@
20 +
21 +$(OBJ): arg.h config.h config.mk drw.h theme_beg.h
22
23 dmenu: dmenu.o drw.o util.o
24 $(CC) -o $@ dmenu.o drw.o util.o $(LDFLAGS)
25 + rm -f theme_{beg,end}.h
26
27 stest: stest.o
28 $(CC) -o $@ stest.o $(LDFLAGS)
29
30 clean:
31 - rm -f dmenu stest $(OBJ) dmenu-$(VERSION).tar.gz
32 + rm -f dmenu stest $(OBJ) theme_{beg,end}.h dmenu-$(VERSION).tar…
33
34 dist: clean
35 mkdir -p dmenu-$(VERSION)
36 diff --git a/config.def.h b/config.def.h
37 index 1edb647..c072c86 100644
38 --- a/config.def.h
39 +++ b/config.def.h
40 @@ -1,17 +1,19 @@
41 /* See LICENSE file for copyright and license details. */
42 /* Default settings; can be overriden by command line. */
43
44 -static int topbar = 1; /* -b option; if 0, dmenu …
45 +/* theme management */
46 +# include "theme_beg.h" /* this is a compile-time generated header file…
47 +# include "theme.h"
48 +
49 +static int topbar = DMENU_TOPBAR; /* -b option; i…
50 /* -fn option overrides fonts[0]; default X11 font or font set */
51 -static const char *fonts[] = {
52 - "monospace:size=10"
53 -};
54 +static const char *fonts[] = DMENU_FONTS;
55 static const char *prompt = NULL; /* -p option; prompt to th…
56 static const char *colors[SchemeLast][2] = {
57 /* fg bg */
58 - [SchemeNorm] = { "#bbbbbb", "#222222" },
59 - [SchemeSel] = { "#eeeeee", "#005577" },
60 - [SchemeOut] = { "#000000", "#00ffff" },
61 + [SchemeNorm] = { DMENU_FOREGROUND, DMENU_BACKGROUND },
62 + [SchemeSel] = { DMENU_SELFOREGROUND, DMENU_SELBACKGROUND },
63 + [SchemeOut] = { DMENU_OUTFOREGROUND, DMENU_OUTBACKGROUND },
64 };
65 /* -l option; if nonzero, dmenu uses vertical list with given number of…
66 static unsigned int lines = 0;
67 @@ -21,3 +23,6 @@ static unsigned int lines = 0;
68 * for example: " /?\"&[]"
69 */
70 static const char worddelimiters[] = " ";
71 +
72 +/* theme management */
73 +# include "theme_end.h" /* this is a compile-time generated header file…
74 diff --git a/theme.h b/theme.h
75 new file mode 100644
76 index 0000000..e25c106
77 --- /dev/null
78 +++ b/theme.h
79 @@ -0,0 +1,8 @@
80 +# define DMENU_TOPBAR 1
81 +# define DMENU_FONTS {"monospace:size=10"}
82 +# define DMENU_FOREGROUND "#839496"
83 +# define DMENU_BACKGROUND "#002b36"
84 +# define DMENU_SELFOREGROUND "#002b36"
85 +# define DMENU_SELBACKGROUND "#839496"
86 +# define DMENU_OUTFOREGROUND "#000000"
87 +# define DMENU_OUTBACKGROUND "#00ffff"
88 diff --git a/themesetup b/themesetup
89 new file mode 100755
90 index 0000000..e8710c1
91 --- /dev/null
92 +++ b/themesetup
93 @@ -0,0 +1,5 @@
94 +#!/bin/sh
95 +
96 +echo \# if $(cat theme.h | cut -d' ' -f3 | sed "s/^/defined /;s/$/ ||/"…
97 +echo -e "# error (conflicting macro names)\n# endif" >> theme_beg.h
98 +cat theme.h | cut -d' ' -f3 | sed "s/^/# undef /;" > theme_end.h
99 diff --git a/xtable.md b/xtable.md
100 new file mode 100644
101 index 0000000..cda7c05
102 --- /dev/null
103 +++ b/xtable.md
104 @@ -0,0 +1,10 @@
105 +| TYPE | RESOURCE | DEFAULT …
106 +|:---------:|:-----------------:|:-------------------------:|:---------…
107 +| I | topbar | …
108 +| SA | fonts | …
109 +| S | foreground | #…
110 +| S | background | #…
111 +| S | selforeground | #eeeee…
112 +| S | selbackground | #00557…
113 +| S | outforeground | #00000…
114 +| S | outbackground | #00fff…
115 diff --git a/xtheme b/xtheme
116 new file mode 100755
117 index 0000000..4cc3067
118 --- /dev/null
119 +++ b/xtheme
120 @@ -0,0 +1,51 @@
121 +#!/bin/sh
122 +
123 +prefix=dmenu
124 +themeout=theme.h
125 +xtable=xtable.md
126 +
127 +rm -f $themeout
128 +
129 +set_resource ()
130 +{
131 + T=$1
132 + M=$2
133 + V=$3
134 +
135 + case $T in
136 + S)
137 + V=\"$V\"
138 + ;;
139 + SA)
140 + V="{\"$(echo $V | sed 's/, /", "/g')\"}"
141 + esac
142 +
143 + [[ $V == '{""}' ]] && V="{}"
144 +
145 + echo "# define $M $V" >> $themeout
146 +}
147 +
148 +cat "$xtable" …
149 + sed '1,2d;s/\t*|\t*/|/g;s/\(^|\)\|\(|$\)//g' |
150 + while IFS='|' read T R D A
151 + do
152 + m=$(echo "$prefix"'_'"$R" | tr '[:lower:]' '[:upper:]')
153 +
154 + l=''
155 +
156 + for r in "$R" "$A"
157 + do
158 + [[ "$r" == '' ]] && continue
159 +
160 + l=$(xgetres "$prefix.$r")
161 +
162 + if [[ "$l" != '' ]]
163 + then
164 + set_resource $T $m "$l"
165 + break
166 + fi
167 + done
168 +
169 + [[ "$l" == '' ]] &&
170 + set_resource $T $m "$D"
171 + done
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.