Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-insets-6.2.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-insets-6.2.diff (2379B)
---
1 From c74af17bcab18263ea565e6760728d03987359a7 Mon Sep 17 00:00:00 2001
2 From: jD91mZM2 <[email protected]>
3 Date: Sun, 31 May 2020 22:06:00 +0200
4 Subject: [PATCH] Custom screen insets
5
6 ---
7 config.def.h | 7 +++++++
8 dwm.c | 35 +++++++++++++++++++++++++++++++++++
9 2 files changed, 42 insertions(+)
10
11 diff --git a/config.def.h b/config.def.h
12 index 1c0b587..43b464a 100644
13 --- a/config.def.h
14 +++ b/config.def.h
15 @@ -18,6 +18,13 @@ static const char *colors[][3] = {
16 [SchemeSel] = { col_gray4, col_cyan, col_cyan },
17 };
18
19 +static const Inset default_inset = {
20 + .x = 0,
21 + .y = 30,
22 + .w = 0,
23 + .h = 0,
24 +};
25 +
26 /* tagging */
27 static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "…
28
29 diff --git a/dwm.c b/dwm.c
30 index 4465af1..f91da15 100644
31 --- a/dwm.c
32 +++ b/dwm.c
33 @@ -111,6 +111,13 @@ typedef struct {
34 void (*arrange)(Monitor *);
35 } Layout;
36
37 +typedef struct {
38 + int x;
39 + int y;
40 + int w;
41 + int h;
42 +} Inset;
43 +
44 struct Monitor {
45 char ltsymbol[16];
46 float mfact;
47 @@ -130,6 +137,7 @@ struct Monitor {
48 Monitor *next;
49 Window barwin;
50 const Layout *lt[2];
51 + Inset inset;
52 };
53
54 typedef struct {
55 @@ -199,6 +207,8 @@ static void sendmon(Client *c, Monitor *m);
56 static void setclientstate(Client *c, long state);
57 static void setfocus(Client *c);
58 static void setfullscreen(Client *c, int fullscreen);
59 +static void setinset(Monitor *m, Inset inset);
60 +static void updateinset(const Arg *arg);
61 static void setlayout(const Arg *arg);
62 static void setmfact(const Arg *arg);
63 static void setup(void);
64 @@ -641,6 +651,7 @@ createmon(void)
65 m->lt[0] = &layouts[0];
66 m->lt[1] = &layouts[1 % LENGTH(layouts)];
67 strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
68 + m->inset = default_inset;
69 return m;
70 }
71
72 @@ -1497,6 +1508,23 @@ setfullscreen(Client *c, int fullscreen)
73 }
74 }
75
76 +void
77 +setinset(Monitor *m, Inset inset)
78 +{
79 + m->inset = inset;
80 + updatebarpos(m);
81 + arrange(m);
82 +}
83 +
84 +void
85 +updateinset(const Arg *arg)
86 +{
87 + Inset *inset = (Inset *)arg->v;
88 +
89 + for (Monitor *m = mons; m; m = m->next)
90 + setinset(m, *inset);
91 +}
92 +
93 void
94 setlayout(const Arg *arg)
95 {
96 @@ -1831,6 +1859,13 @@ updatebarpos(Monitor *m)
97 m->wy = m->topbar ? m->wy + bh : m->wy;
98 } else
99 m->by = -bh;
100 +
101 + // Custom insets
102 + Inset inset = m->inset;
103 + m->wx += inset.x;
104 + m->wy += inset.y;
105 + m->ww -= inset.w + inset.x;
106 + m->wh -= inset.h + inset.y;
107 }
108
109 void
110 --
111 2.26.2
112
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.