dwm-setenvvars-6.5.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
dwm-setenvvars-6.5.diff (1751B)
---
1 From c107bca4d607041850166bebe68e136557749702 Mon Sep 17 00:00:00 2001
2 From: tch69 <ifa26417@outlook.com.vn>
3 Date: Sun, 6 Apr 2025 11:46:32 +0700
4 Subject: [PATCH] allow setting ENV vars inside config.h
5
6 ---
7 config.def.h | 5 +++++
8 dwm.c | 14 ++++++++++++++
9 2 files changed, 19 insertions(+)
10
11 diff --git a/config.def.h b/config.def.h
12 index 9efa774..9d93742 100644
13 --- a/config.def.h
14 +++ b/config.def.h
15 @@ -44,6 +44,11 @@ static const Layout layouts[] = {
16 { "[M]", monocle },
17 };
18
19 +static const Env envs[] = {
20 + /* variable value */
21 + { "TERMINAL", "st" },
22 +};
23 +
24 /* key definitions */
25 #define MODKEY Mod1Mask
26 #define TAGKEYS(KEY,TAG) \
27 diff --git a/dwm.c b/dwm.c
28 index f1d86b2..30cf88a 100644
29 --- a/dwm.c
30 +++ b/dwm.c
31 @@ -99,6 +99,11 @@ struct Client {
32 Window win;
33 };
34
35 +typedef struct {
36 + const char *variable;
37 + const char *value;
38 +} Env;
39 +
40 typedef struct {
41 unsigned int mod;
42 KeySym keysym;
43 @@ -198,6 +203,7 @@ static void scan(void);
44 static int sendevent(Client *c, Atom proto);
45 static void sendmon(Client *c, Monitor *m);
46 static void setclientstate(Client *c, long state);
47 +static void setenvvars(void);
48 static void setfocus(Client *c);
49 static void setfullscreen(Client *c, int fullscreen);
50 static void setlayout(const Arg *arg);
51 @@ -1467,6 +1473,13 @@ sendevent(Client *c, Atom proto)
52 return exists;
53 }
54
55 +static void
56 +setenvvars(void)
57 +{
58 + for (size_t i = 0; i < LENGTH(envs); i++)
59 + setenv(envs[i].variable, envs[i].value, 1);
60 +}
61 +
62 void
63 setfocus(Client *c)
64 {
65 @@ -2152,6 +2165,7 @@ main(int argc, char *argv[])
66 if (!(dpy = XOpenDisplay(NULL)))
67 die("dwm: cannot open display");
68 checkotherwm();
69 + setenvvars();
70 setup();
71 #ifdef __OpenBSD__
72 if (pledge("stdio rpath proc exec", NULL) == -1)
73 --
74 2.48.1
75