Introduction
Introduction Statistics Contact Development Disclaimer Help
multimon-2-added-n-view-wrappers-for-unified-multi-monitor.diff - sites - publi…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
multimon-2-added-n-view-wrappers-for-unified-multi-monitor.diff (6558B)
---
1 From 2521a74714bb7c4b8787f30584f1565cc582928b Mon Sep 17 00:00:00 2001
2 From: "Gary B. Genett" <[email protected]>
3 Date: Mon, 24 Mar 2014 13:57:47 -0700
4 Subject: added n*view wrappers, for unified multi-monitor
5 MIME-Version: 1.0
6 Content-Type: multipart/mixed; boundary="------------1.8.3.2"
7
8 This is a multi-part message in MIME format.
9 --------------1.8.3.2
10 Content-Type: text/plain; charset=UTF-8; format=fixed
11 Content-Transfer-Encoding: 8bit
12
13 ---
14 config.def.h | 5 +++++
15 dwm.c | 24 ++++++++++++++++++++++++
16 2 files changed, 29 insertions(+)
17
18
19 --------------1.8.3.2
20 Content-Type: text/x-patch; name="0002-added-n-view-wrappers-for-unified…
21 Content-Transfer-Encoding: 8bit
22 Content-Disposition: attachment; filename="0002-added-n-view-wrappers-fo…
23
24 diff --git a/config.def.h b/config.def.h
25 index af6bcfae52a8d1783158ae4f38f35b88025c04e1..d3b6a4b7bbf244a9d824d993…
26 --- a/config.def.h
27 +++ b/config.def.h
28 @@ -32,24 +32,27 @@ static const int nmaster = 1; /* number of c…
29 static const Bool resizehints = True; /* True means respect size hints …
30
31 static const Layout layouts[] = {
32 /* symbol arrange function */
33 { "[]=", tile }, /* first entry is default */
34 { "><>", NULL }, /* no layout function means floating b…
35 { "[M]", monocle },
36 };
37
38 /* key definitions */
39 +#define WINKEY Mod4Mask
40 #define MODKEY Mod1Mask
41 #define TAGKEYS(KEY,TAG) \
42 { MODKEY, KEY, view, {.ui …
43 { MODKEY|ControlMask, KEY, toggleview, {.ui …
44 + { MODKEY|WINKEY, KEY, nview, {.ui …
45 + { MODKEY|WINKEY|ControlMask, KEY, ntoggleview, {.ui …
46 { MODKEY|ShiftMask, KEY, tag, {.ui …
47 { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui …
48
49 /* helper for spawning shell commands in the pre dwm-5.0 fashion */
50 #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL }…
51
52 /* commands */
53 static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in…
54 static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", f…
55 static const char *termcmd[] = { "st", NULL };
56 @@ -99,14 +102,16 @@ static Button buttons[] = {
57 { ClkLtSymbol, 0, Button3, setlayo…
58 { ClkMonNum, 0, Button1, focusmo…
59 { ClkMonNum, 0, Button3, focusmo…
60 { ClkWinTitle, 0, Button2, zoom, …
61 { ClkStatusText, 0, Button2, spawn, …
62 { ClkClientWin, MODKEY, Button1, movemou…
63 { ClkClientWin, MODKEY, Button2, togglef…
64 { ClkClientWin, MODKEY, Button3, resizem…
65 { ClkTagBar, 0, Button1, view, …
66 { ClkTagBar, 0, Button3, togglev…
67 + { ClkTagBar, MODKEY|WINKEY, Button1, nview, …
68 + { ClkTagBar, MODKEY|WINKEY, Button3, ntoggle…
69 { ClkTagBar, MODKEY, Button1, tag, …
70 { ClkTagBar, MODKEY, Button3, togglet…
71 };
72
73 diff --git a/dwm.c b/dwm.c
74 index 209dedc1417a29fb44c3ba5b6fa62f1b75b6a09f..f6e9588d78a01e3263de54e9…
75 --- a/dwm.c
76 +++ b/dwm.c
77 @@ -204,34 +204,36 @@ static void setmfact(const Arg *arg);
78 static void setup(void);
79 static void showhide(Client *c);
80 static void sigchld(int unused);
81 static void spawn(const Arg *arg);
82 static void tag(const Arg *arg);
83 static void tagmon(const Arg *arg);
84 static void tile(Monitor *);
85 static void togglebar(const Arg *arg);
86 static void togglefloating(const Arg *arg);
87 static void toggletag(const Arg *arg);
88 +static void ntoggleview(const Arg *arg);
89 static void toggleview(const Arg *arg);
90 static void unfocus(Client *c, Bool setfocus);
91 static void unmanage(Client *c, Bool destroyed);
92 static void unmapnotify(XEvent *e);
93 static Bool updategeom(void);
94 static void updatebarpos(Monitor *m);
95 static void updatebars(void);
96 static void updateclientlist(void);
97 static void updatenumlockmask(void);
98 static void updatesizehints(Client *c);
99 static void updatestatus(void);
100 static void updatewindowtype(Client *c);
101 static void updatetitle(Client *c);
102 static void updatewmhints(Client *c);
103 +static void nview(const Arg *arg);
104 static void view(const Arg *arg);
105 static Client *wintoclient(Window w);
106 static Monitor *wintomon(Window w);
107 static int xerror(Display *dpy, XErrorEvent *ee);
108 static int xerrordummy(Display *dpy, XErrorEvent *ee);
109 static int xerrorstart(Display *dpy, XErrorEvent *ee);
110 static void zoom(const Arg *arg);
111
112 /* variables */
113 static const char broken[] = "broken";
114 @@ -1663,20 +1665,31 @@ toggletag(const Arg *arg) {
115 return;
116 newtags = selmon->sel->tags ^ (arg->ui & TAGMASK);
117 if(newtags) {
118 selmon->sel->tags = newtags;
119 focus(NULL);
120 arrange(selmon);
121 }
122 }
123
124 void
125 +ntoggleview(const Arg *arg) {
126 + const Arg n = {.i = +1};
127 + const int mon = selmon->num;
128 + do {
129 + focusmon(&n);
130 + toggleview(arg);
131 + }
132 + while (selmon->num != mon);
133 +}
134 +
135 +void
136 toggleview(const Arg *arg) {
137 unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg…
138
139 if(newtagset) {
140 selmon->tagset[selmon->seltags] = newtagset;
141 focus(NULL);
142 arrange(selmon);
143 }
144 }
145
146 @@ -1961,20 +1974,31 @@ updatewmhints(Client *c) {
147 c->isurgent = (wmh->flags & XUrgencyHint) ? Tru…
148 if(wmh->flags & InputHint)
149 c->neverfocus = !wmh->input;
150 else
151 c->neverfocus = False;
152 XFree(wmh);
153 }
154 }
155
156 void
157 +nview(const Arg *arg) {
158 + const Arg n = {.i = +1};
159 + const int mon = selmon->num;
160 + do {
161 + focusmon(&n);
162 + view(arg);
163 + }
164 + while (selmon->num != mon);
165 +}
166 +
167 +void
168 view(const Arg *arg) {
169 if((arg->ui & TAGMASK) == selmon->tagset[selmon->seltags])
170 return;
171 selmon->seltags ^= 1; /* toggle sel tagset */
172 if(arg->ui & TAGMASK)
173 selmon->tagset[selmon->seltags] = arg->ui & TAGMASK;
174 focus(NULL);
175 arrange(selmon);
176 }
177
178
179 --------------1.8.3.2--
180
181
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.