Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-rmaster-6.1.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-rmaster-6.1.diff (3925B)
---
1 From 3aca05f642469799086acbc243e173cfda527683 Mon Sep 17 00:00:00 2001
2 From: aleks <[email protected]>
3 Date: Thu, 23 May 2019 22:39:13 +0200
4 Subject: [PATCH] Enable swapping master- and stack-area
5
6 Enables swapping the master- and stack area such that the master-client
7 appears on the right and the stack-clients appear on the left.
8
9 A variable and a toggle-function are introduced to achieve this
10 behaviour which are set in the config.h:
11
12 * The rmaster-variable can be set to 1 to make the right area the
13 default master-area
14 * The togglemaster-function can be used to swap the master- and
15 stack-areas dynamically.
16 ---
17 config.def.h | 2 ++
18 dwm.c | 23 ++++++++++++++++++++---
19 2 files changed, 22 insertions(+), 3 deletions(-)
20
21 diff --git a/config.def.h b/config.def.h
22 index 7054c06..5a69035 100644
23 --- a/config.def.h
24 +++ b/config.def.h
25 @@ -13,6 +13,7 @@ static const char selbgcolor[] = "#005577";
26 static const char selfgcolor[] = "#eeeeee";
27 static const unsigned int borderpx = 1; /* border pixel of wind…
28 static const unsigned int snap = 32; /* snap pixel */
29 +static const int rmaster = 1; /* 1 means master-area …
30 static const int showbar = 1; /* 0 means no bar */
31 static const int topbar = 1; /* 0 means bottom bar */
32
33 @@ -76,6 +77,7 @@ static Key keys[] = {
34 { MODKEY, XK_m, setlayout, {.v …
35 { MODKEY, XK_space, setlayout, {0} …
36 { MODKEY|ShiftMask, XK_space, togglefloating, {0} …
37 + { MODKEY, XK_r, togglermaster, {0} …
38 { MODKEY, XK_0, view, {.ui…
39 { MODKEY|ShiftMask, XK_0, tag, {.ui…
40 { MODKEY, XK_comma, focusmon, {.i …
41 diff --git a/dwm.c b/dwm.c
42 index 0362114..e11bd8b 100644
43 --- a/dwm.c
44 +++ b/dwm.c
45 @@ -122,6 +122,7 @@ struct Monitor {
46 unsigned int seltags;
47 unsigned int sellt;
48 unsigned int tagset[2];
49 + int rmaster;
50 int showbar;
51 int topbar;
52 Client *clients;
53 @@ -211,6 +212,7 @@ static void tagmon(const Arg *arg);
54 static void tile(Monitor *);
55 static void togglebar(const Arg *arg);
56 static void togglefloating(const Arg *arg);
57 +static void togglermaster(const Arg *arg);
58 static void toggletag(const Arg *arg);
59 static void toggleview(const Arg *arg);
60 static void unfocus(Client *c, int setfocus);
61 @@ -645,6 +647,7 @@ createmon(void)
62 m->tagset[0] = m->tagset[1] = 1;
63 m->mfact = mfact;
64 m->nmaster = nmaster;
65 + m->rmaster = rmaster;
66 m->showbar = showbar;
67 m->topbar = topbar;
68 m->lt[0] = &layouts[0];
69 @@ -1674,17 +1677,21 @@ tile(Monitor *m)
70 return;
71
72 if (n > m->nmaster)
73 - mw = m->nmaster ? m->ww * m->mfact : 0;
74 + mw = m->nmaster
75 + ? m->ww * (m->rmaster ? 1.0 - m->mfact : m->mfa…
76 + : 0;
77 else
78 mw = m->ww;
79 for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttil…
80 if (i < m->nmaster) {
81 h = (m->wh - my) / (MIN(n, m->nmaster) - i);
82 - resize(c, m->wx, m->wy + my, mw - (2*c->bw), h …
83 + resize(c, m->rmaster ? m->wx + m->ww - mw : m->…
84 + m->wy + my, mw - (2*c->bw), h - (2*c->bw…
85 my += HEIGHT(c);
86 } else {
87 h = (m->wh - ty) / (n - i);
88 - resize(c, m->wx + mw, m->wy + ty, m->ww - mw - …
89 + resize(c, m->rmaster ? m->wx : m->wx + mw, m->w…
90 + m->ww - mw - (2*c->bw), h - (2*c->bw), 0…
91 ty += HEIGHT(c);
92 }
93 }
94 @@ -1712,6 +1719,16 @@ togglefloating(const Arg *arg)
95 arrange(selmon);
96 }
97
98 +void
99 +togglermaster(const Arg *arg)
100 +{
101 + selmon->rmaster = !selmon->rmaster;
102 + /* now mfact represents the left factor */
103 + selmon->mfact = 1.0 - selmon->mfact;
104 + if (selmon->lt[selmon->sellt]->arrange)
105 + arrange(selmon);
106 +}
107 +
108 void
109 toggletag(const Arg *arg)
110 {
111 --
112 2.21.0
113
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.