Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-stairs-20220430-8b48e30.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-stairs-20220430-8b48e30.diff (3560B)
---
1 From a189dd70bd7c0789a11f304ceb75fd2d66fa405d Mon Sep 17 00:00:00 2001
2 From: Ehsan Ghorbannezhad <[email protected]>
3 Date: Sat, 30 Apr 2022 01:15:20 +0430
4 Subject: [PATCH] add a new layout called stairs
5
6 ---
7 config.def.h | 5 +++++
8 dwm.c | 38 ++++++++++++++++++++++++++++++++++++++
9 2 files changed, 43 insertions(+)
10
11 diff --git a/config.def.h b/config.def.h
12 index a2ac963..7774f1e 100644
13 --- a/config.def.h
14 +++ b/config.def.h
15 @@ -5,6 +5,9 @@ static const unsigned int borderpx = 1; /* borde…
16 static const unsigned int snap = 32; /* snap pixel */
17 static const int showbar = 1; /* 0 means no bar */
18 static const int topbar = 1; /* 0 means bottom bar */
19 +static const unsigned int stairpx = 20; /* depth of the stairs …
20 +static const int stairdirection = 1; /* 0: left-aligned, 1: …
21 +static const int stairsamesize = 1; /* 1 means shrink all t…
22 static const char *fonts[] = { "monospace:size=10" };
23 static const char dmenufont[] = "monospace:size=10";
24 static const char col_gray1[] = "#222222";
25 @@ -42,6 +45,7 @@ static const Layout layouts[] = {
26 { "[]=", tile }, /* first entry is default */
27 { "><>", NULL }, /* no layout function means floating b…
28 { "[M]", monocle },
29 + { "[S]", stairs },
30 };
31
32 /* key definitions */
33 @@ -77,6 +81,7 @@ static Key keys[] = {
34 { MODKEY, XK_t, setlayout, {.v …
35 { MODKEY, XK_f, setlayout, {.v …
36 { MODKEY, XK_m, setlayout, {.v …
37 + { MODKEY, XK_s, setlayout, {.v …
38 { MODKEY, XK_space, setlayout, {0} …
39 { MODKEY|ShiftMask, XK_space, togglefloating, {0} …
40 { MODKEY, XK_0, view, {.ui…
41 diff --git a/dwm.c b/dwm.c
42 index 5646a5c..fcdbb06 100644
43 --- a/dwm.c
44 +++ b/dwm.c
45 @@ -207,6 +207,7 @@ static void seturgent(Client *c, int urg);
46 static void showhide(Client *c);
47 static void sigchld(int unused);
48 static void spawn(const Arg *arg);
49 +static void stairs(Monitor *m);
50 static void tag(const Arg *arg);
51 static void tagmon(const Arg *arg);
52 static void tile(Monitor *);
53 @@ -1659,6 +1660,43 @@ spawn(const Arg *arg)
54 }
55 }
56
57 +void
58 +stairs(Monitor *m)
59 +{
60 + unsigned int i, n, h, mw, my;
61 + unsigned int ox, oy, ow, oh; /* stair offset values */
62 + Client *c;
63 +
64 + for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next…
65 + if (n == 0)
66 + return;
67 +
68 + if (n > m->nmaster)
69 + mw = m->nmaster ? m->ww * m->mfact : 0;
70 + else
71 + mw = m->ww;
72 +
73 + for (i = my = 0, c = nexttiled(m->clients); c; c = nexttiled(c-…
74 + if (i < m->nmaster) {
75 + h = (m->wh - my) / (MIN(n, m->nmaster) - i);
76 + resize(c, m->wx, m->wy + my, mw - (2 * c->bw), …
77 + if (my + HEIGHT(c) < m->wh)
78 + my += HEIGHT(c);
79 + } else {
80 + oy = i - m->nmaster;
81 + ox = stairdirection ? n - i - 1 : (stairsamesiz…
82 + ow = stairsamesize ? n - m->nmaster - 1 : n - i…
83 + oh = stairsamesize ? ow : i - m->nmaster;
84 + resize(c,
85 + m->wx + mw + (ox * stairpx),
86 + m->wy + (oy * stairpx),
87 + m->ww - mw - (2 * c->bw) - (ow * stairpx…
88 + m->wh - (2 * c->bw) - (oh * stairpx),
89 + 0);
90 + }
91 + }
92 +}
93 +
94 void
95 tag(const Arg *arg)
96 {
97 --
98 2.36.0
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.