sylware / nyanlinux (public) (License: AFFERO GPLv3) (since 2019-09-09) (hash sha1)
scripts for a lean, from scratch, amd hardware, linux distro
List of commits:
Subject Hash Author Date (UTC)
dwm: update and more patches 2181cf7faaaa5f4091f08c219c72888d6eb33ee5 Sylvain BERTRAND 2020-04-10 19:23:17
gfx stack update b7a984cb9b1417aa1bd24fbcc6b3c63ae95953d4 Sylvain BERTRAND 2020-04-05 22:07:04
direct x11, no xcb client lib 03efcc42dc5d528f58126da83da3977ad94a748d Sylvain BERTRAND 2020-04-04 23:24:28
add a x11 global key autorepeat killer b245362d8ee762fcc78c5e9a337857933838a5b1 Sylvain BERTRAND 2020-04-04 00:12:58
gfx stack update b7f25ba7b6135062d41763489791aea6d59203d6 Sylvain BERTRAND 2020-03-29 18:05:56
add a from git alsa-lib 1f762d0674a4781b38912b36da62717c72724ce4 Sylvain BERTRAND 2020-03-28 00:18:57
alsa lib and utils update af8c9e1a4e35e212b6f9740ae3cabd3846a89ba0 Sylvain BERTRAND 2020-03-25 18:09:18
gfx stack update 3c83b101e7a523df96a5c4c85d6712e8835390e0 Sylvain BERTRAND 2020-03-22 20:25:40
gfx stack update 2216530600b4381354f85ef7a254ac0505db5aba Sylvain BERTRAND 2020-03-15 22:09:01
gfx stack update 646fb7c5a61410c70b38607fd0425ad1c5daf737 Sylvain BERTRAND 2020-03-08 20:22:39
gfx stack update b32df04760174f31a1ef6644405dd63f9070efab Sylvain BERTRAND 2020-03-01 22:07:35
gfx stack update 75dcd100bc63f2e2c82a5deee19cd5e3e0fe852d Sylvain BERTRAND 2020-02-23 22:07:43
actually, it depends on my mood e915785dc1b05026199563e1417339e9e34163f0 Sylvain BERTRAND 2020-02-18 16:40:37
gfx stack update ccd861d9b69b3eb6a18e88d84035f18bcf0acb48 Sylvain BERTRAND 2020-02-17 19:13:35
cleanup personal lynx conf 7bcbc8cdb3e08b295cf399f50172e0995efafa54 Sylvain BERTRAND 2020-02-16 20:26:30
curl update including a switch to libressl 8e4ba157fe796d427cebdf698a38d16ffba2df3d Sylvain BERTRAND 2020-02-16 20:08:33
lynx update including a switch to libressl a4841e764e3d37a10ea6160f340044134d8a7273 Sylvain BERTRAND 2020-02-16 19:26:55
nyanmp addition 36191515f084f3cc5963fb0cc5d53a1a264938a1 Sylvain BERTRAND 2020-02-12 19:13:48
gfx stack update 301289739687f81affd8414f323fc5e41d7da4f5 Sylvain BERTRAND 2020-02-10 19:21:13
st update 13f92a8a40f2ddaffdce06738639911fad610cd7 Sylvain BERTRAND 2020-02-03 19:38:06
Commit 2181cf7faaaa5f4091f08c219c72888d6eb33ee5 - dwm: update and more patches
Author: Sylvain BERTRAND
Author date (UTC): 2020-04-10 19:23
Committer name: Sylvain BERTRAND
Committer date (UTC): 2020-04-10 19:23
Parent(s): b7a984cb9b1417aa1bd24fbcc6b3c63ae95953d4
Signer:
Signing key:
Signing status: N
Tree: dc6a8f087c2ab351f240afa4b9930ca664633d7f
File Lines added Lines deleted
builders/dwm-1/builder.sh 7 2
builders/dwm-1/config.h 1 0
builders/dwm-1/dwm-actualfullscreen-20191112-cb3f58a.diff 27 0
builders/dwm-1/dwm-smartborders-6.2.diff 225 0
File builders/dwm-1/builder.sh copied from file builders/dwm-0/builder.sh (similarity 84%) (mode: 100644) (index 7f570ee..b8fceb5)
1 1 src_name=dwm src_name=dwm
2 git_commit=cb3f58ad06993f7ef3a7d8f61468012e2b786cab
2 git_commit=c82db690cc0c4624dad4dc6ae899020799ec84db
3 3 git_url0=https://git.suckless.org/dwm git_url0=https://git.suckless.org/dwm
4 4
5 slot=0
5 slot=1
6 6
7 7 pkg_dir=$pkgs_dir_root/$pkg_name pkg_dir=$pkgs_dir_root/$pkg_name
8 8 src_dir=$src_dir_root/$src_name src_dir=$src_dir_root/$src_name
 
... ... cd $pkg_dir
17 17 git checkout --force $git_commit git checkout --force $git_commit
18 18 git reset --hard git reset --hard
19 19
20 cp $nyan_root/builders/$pkg_name/dwm-smartborders-6.2.diff ./
21 patch -N -p 1 -i dwm-smartborders-6.2.diff
22 cp $nyan_root/builders/$pkg_name/dwm-actualfullscreen-20191112-cb3f58a.diff ./
23 patch -N -p 1 -i dwm-actualfullscreen-20191112-cb3f58a.diff
24
20 25 #------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
21 26
22 27 build_dir=$builds_dir_root/$pkg_name build_dir=$builds_dir_root/$pkg_name
File builders/dwm-1/config.h copied from file builders/dwm-0/config.h (similarity 98%) (mode: 100644) (index dc9fbe9..f05b379)
... ... static Key keys[] = {
82 82 { MODKEY|ControlMask|ShiftMask, XK_n, incnmaster, {.i = +1 } }, { MODKEY|ControlMask|ShiftMask, XK_n, incnmaster, {.i = +1 } },
83 83 { MODKEY|ControlMask|ShiftMask, XK_d, incnmaster, {.i = -1 } }, { MODKEY|ControlMask|ShiftMask, XK_d, incnmaster, {.i = -1 } },
84 84 { MODKEY|ControlMask|ShiftMask, XK_h, setmfact, {.f = -0.05} }, { MODKEY|ControlMask|ShiftMask, XK_h, setmfact, {.f = -0.05} },
85 { MODKEY|ControlMask, XK_h, togglefullscr, {0} },
85 86 { MODKEY|ControlMask|ShiftMask, XK_t, setmfact, {.f = +0.05} }, { MODKEY|ControlMask|ShiftMask, XK_t, setmfact, {.f = +0.05} },
86 87 { MODKEY|ControlMask, XK_Return, zoom, {0} }, { MODKEY|ControlMask, XK_Return, zoom, {0} },
87 88 // { MODKEY, XK_Tab, view, {0} }, // { MODKEY, XK_Tab, view, {0} },
File builders/dwm-1/dwm-actualfullscreen-20191112-cb3f58a.diff added (mode: 100644) (index 0000000..056be91)
1 --- a/dwm.c
2 +++ b/dwm.c
3 @@ -211,6 +211,7 @@ static void tagmon(const Arg *arg);
4 static void tile(Monitor *);
5 static void togglebar(const Arg *arg);
6 static void togglefloating(const Arg *arg);
7 +static void togglefullscr(const Arg *arg);
8 static void toggletag(const Arg *arg);
9 static void toggleview(const Arg *arg);
10 static void unfocus(Client *c, int setfocus);
11 @@ -1719,6 +1720,13 @@ togglefloating(const Arg *arg)
12 arrange(selmon);
13 }
14
15 +void
16 +togglefullscr(const Arg *arg)
17 +{
18 + if(selmon->sel)
19 + setfullscreen(selmon->sel, !selmon->sel->isfullscreen);
20 +}
21 +
22 void
23 toggletag(const Arg *arg)
24 {
25 --
26 2.17.1
27
File builders/dwm-1/dwm-smartborders-6.2.diff added (mode: 100644) (index 0000000..1ff246f)
1 diff --git a/dwm.c b/dwm.c
2 index 4465af1..3c94e4b 100644
3 --- a/dwm.c
4 +++ b/dwm.c
5 @@ -143,7 +143,7 @@ typedef struct {
6
7 /* function declarations */
8 static void applyrules(Client *c);
9 -static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact);
10 +static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int *bw, int interact);
11 static void arrange(Monitor *m);
12 static void arrangemon(Monitor *m);
13 static void attach(Client *c);
14 @@ -188,8 +188,8 @@ static void pop(Client *);
15 static void propertynotify(XEvent *e);
16 static void quit(const Arg *arg);
17 static Monitor *recttomon(int x, int y, int w, int h);
18 -static void resize(Client *c, int x, int y, int w, int h, int interact);
19 -static void resizeclient(Client *c, int x, int y, int w, int h);
20 +static void resize(Client *c, int x, int y, int w, int h, int bw, int interact);
21 +static void resizeclient(Client *c, int x, int y, int w, int h, int bw);
22 static void resizemouse(const Arg *arg);
23 static void restack(Monitor *m);
24 static void run(void);
25 @@ -312,7 +312,7 @@ applyrules(Client *c)
26 }
27
28 int
29 -applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact)
30 +applysizehints(Client *c, int *x, int *y, int *w, int *h, int *bw, int interact)
31 {
32 int baseismin;
33 Monitor *m = c->mon;
34 @@ -325,18 +325,18 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact)
35 *x = sw - WIDTH(c);
36 if (*y > sh)
37 *y = sh - HEIGHT(c);
38 - if (*x + *w + 2 * c->bw < 0)
39 + if (*x + *w + 2 * *bw < 0)
40 *x = 0;
41 - if (*y + *h + 2 * c->bw < 0)
42 + if (*y + *h + 2 * *bw < 0)
43 *y = 0;
44 } else {
45 if (*x >= m->wx + m->ww)
46 *x = m->wx + m->ww - WIDTH(c);
47 if (*y >= m->wy + m->wh)
48 *y = m->wy + m->wh - HEIGHT(c);
49 - if (*x + *w + 2 * c->bw <= m->wx)
50 + if (*x + *w + 2 * *bw <= m->wx)
51 *x = m->wx;
52 - if (*y + *h + 2 * c->bw <= m->wy)
53 + if (*y + *h + 2 * *bw <= m->wy)
54 *y = m->wy;
55 }
56 if (*h < bh)
57 @@ -374,7 +374,7 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact)
58 if (c->maxh)
59 *h = MIN(*h, c->maxh);
60 }
61 - return *x != c->x || *y != c->y || *w != c->w || *h != c->h;
62 + return *x != c->x || *y != c->y || *w != c->w || *h != c->h || *bw != c->bw;
63 }
64
65 void
66 @@ -394,9 +394,16 @@ arrange(Monitor *m)
67 void
68 arrangemon(Monitor *m)
69 {
70 + Client *c;
71 +
72 strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol);
73 if (m->lt[m->sellt]->arrange)
74 m->lt[m->sellt]->arrange(m);
75 + else
76 + /* <>< case; rather than providing an arrange function and upsetting other logic that tests for its presence, simply add borders here */
77 + for (c = selmon->clients; c; c = c->next)
78 + if (ISVISIBLE(c) && c->bw == 0)
79 + resize(c, c->x, c->y, c->w - 2*borderpx, c->h - 2*borderpx, borderpx, 0);
80 }
81
82 void
83 @@ -566,7 +573,7 @@ configurenotify(XEvent *e)
84 for (m = mons; m; m = m->next) {
85 for (c = m->clients; c; c = c->next)
86 if (c->isfullscreen)
87 - resizeclient(c, m->mx, m->my, m->mw, m->mh);
88 + resizeclient(c, m->mx, m->my, m->mw, m->mh, 0);
89 XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh);
90 }
91 focus(NULL);
92 @@ -1112,7 +1119,7 @@ monocle(Monitor *m)
93 if (n > 0) /* override layout symbol */
94 snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
95 for (c = nexttiled(m->clients); c; c = nexttiled(c->next))
96 - resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0);
97 + resize(c, m->wx, m->wy, m->ww, m->wh, 0, 0);
98 }
99
100 void
101 @@ -1180,7 +1187,7 @@ movemouse(const Arg *arg)
102 && (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
103 togglefloating(NULL);
104 if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
105 - resize(c, nx, ny, c->w, c->h, 1);
106 + resize(c, nx, ny, c->w, c->h, c->bw, 1);
107 break;
108 }
109 } while (ev.type != ButtonRelease);
110 @@ -1266,14 +1273,14 @@ recttomon(int x, int y, int w, int h)
111 }
112
113 void
114 -resize(Client *c, int x, int y, int w, int h, int interact)
115 +resize(Client *c, int x, int y, int w, int h, int bw, int interact)
116 {
117 - if (applysizehints(c, &x, &y, &w, &h, interact))
118 - resizeclient(c, x, y, w, h);
119 + if (applysizehints(c, &x, &y, &w, &h, &bw, interact))
120 + resizeclient(c, x, y, w, h, bw);
121 }
122
123 void
124 -resizeclient(Client *c, int x, int y, int w, int h)
125 +resizeclient(Client *c, int x, int y, int w, int h, int bw)
126 {
127 XWindowChanges wc;
128
129 @@ -1281,7 +1288,7 @@ resizeclient(Client *c, int x, int y, int w, int h)
130 c->oldy = c->y; c->y = wc.y = y;
131 c->oldw = c->w; c->w = wc.width = w;
132 c->oldh = c->h; c->h = wc.height = h;
133 - wc.border_width = c->bw;
134 + c->oldbw = c->bw; c->bw = wc.border_width = bw;
135 XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
136 configure(c);
137 XSync(dpy, False);
138 @@ -1330,7 +1337,7 @@ resizemouse(const Arg *arg)
139 togglefloating(NULL);
140 }
141 if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
142 - resize(c, c->x, c->y, nw, nh, 1);
143 + resize(c, c->x, c->y, nw, nh, c->bw, 1);
144 break;
145 }
146 } while (ev.type != ButtonRelease);
147 @@ -1477,22 +1484,20 @@ setfullscreen(Client *c, int fullscreen)
148 PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1);
149 c->isfullscreen = 1;
150 c->oldstate = c->isfloating;
151 - c->oldbw = c->bw;
152 - c->bw = 0;
153 c->isfloating = 1;
154 - resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh);
155 + resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh, 0);
156 XRaiseWindow(dpy, c->win);
157 } else if (!fullscreen && c->isfullscreen){
158 XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32,
159 PropModeReplace, (unsigned char*)0, 0);
160 c->isfullscreen = 0;
161 c->isfloating = c->oldstate;
162 - c->bw = c->oldbw;
163 c->x = c->oldx;
164 c->y = c->oldy;
165 c->w = c->oldw;
166 c->h = c->oldh;
167 - resizeclient(c, c->x, c->y, c->w, c->h);
168 + c->bw = c->oldbw;
169 + resizeclient(c, c->x, c->y, c->w, c->h, c->bw);
170 arrange(c->mon);
171 }
172 }
173 @@ -1619,7 +1624,7 @@ showhide(Client *c)
174 /* show clients top down */
175 XMoveWindow(dpy, c->win, c->x, c->y);
176 if ((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !c->isfullscreen)
177 - resize(c, c->x, c->y, c->w, c->h, 0);
178 + resize(c, c->x, c->y, c->w, c->h, c->bw, 0);
179 showhide(c->snext);
180 } else {
181 /* hide clients bottom up */
182 @@ -1673,13 +1678,17 @@ tagmon(const Arg *arg)
183 void
184 tile(Monitor *m)
185 {
186 - unsigned int i, n, h, mw, my, ty;
187 + unsigned int i, n, h, mw, my, ty, bw;
188 Client *c;
189
190 for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
191 if (n == 0)
192 return;
193
194 + if (n == 1)
195 + bw = 0;
196 + else
197 + bw = borderpx;
198 if (n > m->nmaster)
199 mw = m->nmaster ? m->ww * m->mfact : 0;
200 else
201 @@ -1687,11 +1696,11 @@ tile(Monitor *m)
202 for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
203 if (i < m->nmaster) {
204 h = (m->wh - my) / (MIN(n, m->nmaster) - i);
205 - resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0);
206 + resize(c, m->wx, m->wy + my, mw - 2*bw, h - 2*bw, bw, 0);
207 my += HEIGHT(c);
208 } else {
209 h = (m->wh - ty) / (n - i);
210 - resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0);
211 + resize(c, m->wx + mw, m->wy + ty, m->ww - mw - 2*bw, h - 2*bw, bw, 0);
212 ty += HEIGHT(c);
213 }
214 }
215 @@ -1715,7 +1724,9 @@ togglefloating(const Arg *arg)
216 selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed;
217 if (selmon->sel->isfloating)
218 resize(selmon->sel, selmon->sel->x, selmon->sel->y,
219 - selmon->sel->w, selmon->sel->h, 0);
220 + selmon->sel->w - 2 * (borderpx - selmon->sel->bw),
221 + selmon->sel->h - 2 * (borderpx - selmon->sel->bw),
222 + borderpx, 0);
223 arrange(selmon);
224 }
225
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanlinux

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanlinux

Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanlinux

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main