diff options
author | Akshay <[email protected]> | 2021-09-26 16:56:36 +0100 |
---|---|---|
committer | Akshay <[email protected]> | 2021-09-26 16:56:36 +0100 |
commit | 5cdb4e421a809de51c3ebe8404e50d732721238b (patch) | |
tree | 73b71617c41b3e13edbf26035e821bb884d30441 /patches/st/xres.diff |
init
Diffstat (limited to 'patches/st/xres.diff')
-rw-r--r-- | patches/st/xres.diff | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/patches/st/xres.diff b/patches/st/xres.diff new file mode 100644 index 0000000..bac5373 --- /dev/null +++ b/patches/st/xres.diff | |||
@@ -0,0 +1,185 @@ | |||
1 | From 2752a599ee01305a435729bfacf43b1dde7cf0ef Mon Sep 17 00:00:00 2001 | ||
2 | From: Benji Encalada Mora <[email protected]> | ||
3 | Date: Thu, 4 Jun 2020 00:41:10 -0500 | ||
4 | Subject: [PATCH] fix: replace xfps and actionfps variables | ||
5 | |||
6 | --- | ||
7 | config.def.h | 36 ++++++++++++++++++++++++ | ||
8 | x.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++--- | ||
9 | 2 files changed, 110 insertions(+), 4 deletions(-) | ||
10 | |||
11 | diff --git a/config.def.h b/config.def.h | ||
12 | index 6f05dce..9b99782 100644 | ||
13 | --- a/config.def.h | ||
14 | +++ b/config.def.h | ||
15 | @@ -168,6 +168,42 @@ static unsigned int defaultattr = 11; | ||
16 | */ | ||
17 | static uint forcemousemod = ShiftMask; | ||
18 | |||
19 | +/* | ||
20 | + * Xresources preferences to load at startup | ||
21 | + */ | ||
22 | +ResourcePref resources[] = { | ||
23 | + { "font", STRING, &font }, | ||
24 | + { "color0", STRING, &colorname[0] }, | ||
25 | + { "color1", STRING, &colorname[1] }, | ||
26 | + { "color2", STRING, &colorname[2] }, | ||
27 | + { "color3", STRING, &colorname[3] }, | ||
28 | + { "color4", STRING, &colorname[4] }, | ||
29 | + { "color5", STRING, &colorname[5] }, | ||
30 | + { "color6", STRING, &colorname[6] }, | ||
31 | + { "color7", STRING, &colorname[7] }, | ||
32 | + { "color8", STRING, &colorname[8] }, | ||
33 | + { "color9", STRING, &colorname[9] }, | ||
34 | + { "color10", STRING, &colorname[10] }, | ||
35 | + { "color11", STRING, &colorname[11] }, | ||
36 | + { "color12", STRING, &colorname[12] }, | ||
37 | + { "color13", STRING, &colorname[13] }, | ||
38 | + { "color14", STRING, &colorname[14] }, | ||
39 | + { "color15", STRING, &colorname[15] }, | ||
40 | + { "background", STRING, &colorname[256] }, | ||
41 | + { "foreground", STRING, &colorname[257] }, | ||
42 | + { "cursorColor", STRING, &colorname[258] }, | ||
43 | + { "termname", STRING, &termname }, | ||
44 | + { "shell", STRING, &shell }, | ||
45 | + { "minlatency", INTEGER, &minlatency }, | ||
46 | + { "maxlatency", INTEGER, &maxlatency }, | ||
47 | + { "blinktimeout", INTEGER, &blinktimeout }, | ||
48 | + { "bellvolume", INTEGER, &bellvolume }, | ||
49 | + { "tabspaces", INTEGER, &tabspaces }, | ||
50 | + { "borderpx", INTEGER, &borderpx }, | ||
51 | + { "cwscale", FLOAT, &cwscale }, | ||
52 | + { "chscale", FLOAT, &chscale }, | ||
53 | +}; | ||
54 | + | ||
55 | /* | ||
56 | * Internal mouse shortcuts. | ||
57 | * Beware that overloading Button1 will disable the selection. | ||
58 | diff --git a/x.c b/x.c | ||
59 | index 210f184..76f167f 100644 | ||
60 | --- a/x.c | ||
61 | +++ b/x.c | ||
62 | @@ -14,6 +14,7 @@ | ||
63 | #include <X11/keysym.h> | ||
64 | #include <X11/Xft/Xft.h> | ||
65 | #include <X11/XKBlib.h> | ||
66 | +#include <X11/Xresource.h> | ||
67 | |||
68 | char *argv0; | ||
69 | #include "arg.h" | ||
70 | @@ -45,6 +46,19 @@ typedef struct { | ||
71 | signed char appcursor; /* application cursor */ | ||
72 | } Key; | ||
73 | |||
74 | +/* Xresources preferences */ | ||
75 | +enum resource_type { | ||
76 | + STRING = 0, | ||
77 | + INTEGER = 1, | ||
78 | + FLOAT = 2 | ||
79 | +}; | ||
80 | + | ||
81 | +typedef struct { | ||
82 | + char *name; | ||
83 | + enum resource_type type; | ||
84 | + void *dst; | ||
85 | +} ResourcePref; | ||
86 | + | ||
87 | /* X modifiers */ | ||
88 | #define XK_ANY_MOD UINT_MAX | ||
89 | #define XK_NO_MOD 0 | ||
90 | @@ -828,8 +842,8 @@ xclear(int x1, int y1, int x2, int y2) | ||
91 | void | ||
92 | xhints(void) | ||
93 | { | ||
94 | - XClassHint class = {opt_name ? opt_name : termname, | ||
95 | - opt_class ? opt_class : termname}; | ||
96 | + XClassHint class = {opt_name ? opt_name : "st", | ||
97 | + opt_class ? opt_class : "St"}; | ||
98 | XWMHints wm = {.flags = InputHint, .input = 1}; | ||
99 | XSizeHints *sizeh; | ||
100 | |||
101 | @@ -1104,8 +1118,6 @@ xinit(int cols, int rows) | ||
102 | pid_t thispid = getpid(); | ||
103 | XColor xmousefg, xmousebg; | ||
104 | |||
105 | - if (!(xw.dpy = XOpenDisplay(NULL))) | ||
106 | - die("can't open display\n"); | ||
107 | xw.scr = XDefaultScreen(xw.dpy); | ||
108 | xw.vis = XDefaultVisual(xw.dpy, xw.scr); | ||
109 | |||
110 | @@ -1964,6 +1976,59 @@ run(void) | ||
111 | } | ||
112 | } | ||
113 | |||
114 | +int | ||
115 | +resource_load(XrmDatabase db, char *name, enum resource_type rtype, void *dst) | ||
116 | +{ | ||
117 | + char **sdst = dst; | ||
118 | + int *idst = dst; | ||
119 | + float *fdst = dst; | ||
120 | + | ||
121 | + char fullname[256]; | ||
122 | + char fullclass[256]; | ||
123 | + char *type; | ||
124 | + XrmValue ret; | ||
125 | + | ||
126 | + snprintf(fullname, sizeof(fullname), "%s.%s", | ||
127 | + opt_name ? opt_name : "st", name); | ||
128 | + snprintf(fullclass, sizeof(fullclass), "%s.%s", | ||
129 | + opt_class ? opt_class : "St", name); | ||
130 | + fullname[sizeof(fullname) - 1] = fullclass[sizeof(fullclass) - 1] = '\0'; | ||
131 | + | ||
132 | + XrmGetResource(db, fullname, fullclass, &type, &ret); | ||
133 | + if (ret.addr == NULL || strncmp("String", type, 64)) | ||
134 | + return 1; | ||
135 | + | ||
136 | + switch (rtype) { | ||
137 | + case STRING: | ||
138 | + *sdst = ret.addr; | ||
139 | + break; | ||
140 | + case INTEGER: | ||
141 | + *idst = strtoul(ret.addr, NULL, 10); | ||
142 | + break; | ||
143 | + case FLOAT: | ||
144 | + *fdst = strtof(ret.addr, NULL); | ||
145 | + break; | ||
146 | + } | ||
147 | + return 0; | ||
148 | +} | ||
149 | + | ||
150 | +void | ||
151 | +config_init(void) | ||
152 | +{ | ||
153 | + char *resm; | ||
154 | + XrmDatabase db; | ||
155 | + ResourcePref *p; | ||
156 | + | ||
157 | + XrmInitialize(); | ||
158 | + resm = XResourceManagerString(xw.dpy); | ||
159 | + if (!resm) | ||
160 | + return; | ||
161 | + | ||
162 | + db = XrmGetStringDatabase(resm); | ||
163 | + for (p = resources; p < resources + LEN(resources); p++) | ||
164 | + resource_load(db, p->name, p->type, p->dst); | ||
165 | +} | ||
166 | + | ||
167 | void | ||
168 | usage(void) | ||
169 | { | ||
170 | @@ -2037,6 +2102,11 @@ run: | ||
171 | |||
172 | setlocale(LC_CTYPE, ""); | ||
173 | XSetLocaleModifiers(""); | ||
174 | + | ||
175 | + if(!(xw.dpy = XOpenDisplay(NULL))) | ||
176 | + die("Can't open display\n"); | ||
177 | + | ||
178 | + config_init(); | ||
179 | cols = MAX(cols, 1); | ||
180 | rows = MAX(rows, 1); | ||
181 | tnew(cols, rows); | ||
182 | -- | ||
183 | 2.26.2 | ||
184 | |||
185 | |||