Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-moveplace-20180524-c8e9479.diff - sites - public wiki contents of suckless.…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-moveplace-20180524-c8e9479.diff (4225B)
---
1 From ae0f69b86a4a4d1647a3bb049e05d31d9aa29d40 Mon Sep 17 00:00:00 2001
2 From: Christopher Drelich <[email protected]>
3 Date: Thu, 24 May 2018 21:12:22 -0400
4 Subject: [PATCH] Makes win floating, and moves it into one of 9 screen
5 positions.
6
7 ---
8 config.def.h | 9 +++++++++
9 dwm.1 | 5 +++++
10 dwm.c | 34 +++++++++++++++++++++++++++++++++-
11 3 files changed, 47 insertions(+), 1 deletion(-)
12
13 diff --git a/config.def.h b/config.def.h
14 index a9ac303..1087b9e 100644
15 --- a/config.def.h
16 +++ b/config.def.h
17 @@ -84,6 +84,15 @@ static Key keys[] = {
18 { MODKEY, XK_period, focusmon, {.i …
19 { MODKEY|ShiftMask, XK_comma, tagmon, {.i …
20 { MODKEY|ShiftMask, XK_period, tagmon, {.i …
21 + { MODKEY, XK_q, moveplace, {.ui…
22 + { MODKEY, XK_w, moveplace, {.ui…
23 + { MODKEY, XK_e, moveplace, {.ui…
24 + { MODKEY, XK_a, moveplace, {.ui…
25 + { MODKEY, XK_s, moveplace, {.ui…
26 + { MODKEY, XK_d, moveplace, {.ui…
27 + { MODKEY, XK_z, moveplace, {.ui…
28 + { MODKEY, XK_x, moveplace, {.ui…
29 + { MODKEY, XK_c, moveplace, {.ui…
30 TAGKEYS( XK_1, 0)
31 TAGKEYS( XK_2, 1)
32 TAGKEYS( XK_3, 2)
33 diff --git a/dwm.1 b/dwm.1
34 index 13b3729..8df7d9f 100644
35 --- a/dwm.1
36 +++ b/dwm.1
37 @@ -131,6 +131,11 @@ Apply all tags to focused window.
38 .B Mod1\-Control\-Shift\-[1..n]
39 Add/remove nth tag to/from focused window.
40 .TP
41 +.B Mod1\-[q,w,e,a,s,d,z,x,c]
42 +Makes the window floating, 1/3rd height and 1/3rd width of screen, and …
43 +position based on the key-pressed. The position on screen is equivalent…
44 +position of those keys relative to each other, with "s" being the cente…
45 +.TP
46 .B Mod1\-[1..n]
47 View all windows with nth tag.
48 .TP
49 diff --git a/dwm.c b/dwm.c
50 index bb95e26..480f59d 100644
51 --- a/dwm.c
52 +++ b/dwm.c
53 @@ -66,6 +66,7 @@ enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
54 enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* defaul…
55 enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
56 ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
57 +enum { WIN_NW, WIN_N, WIN_NE, WIN_W, WIN_C, WIN_E, WIN_SW, WIN_S, WIN_S…
58
59 typedef union {
60 int i;
61 @@ -92,7 +93,7 @@ struct Client {
62 int basew, baseh, incw, inch, maxw, maxh, minw, minh;
63 int bw, oldbw;
64 unsigned int tags;
65 - int isfixed, isfloating, isurgent, neverfocus, oldstate, isfull…
66 + int isfixed, isfloating, wasfloating, isurgent, neverfocus, old…
67 Client *next;
68 Client *snext;
69 Monitor *mon;
70 @@ -183,6 +184,7 @@ static void maprequest(XEvent *e);
71 static void monocle(Monitor *m);
72 static void motionnotify(XEvent *e);
73 static void movemouse(const Arg *arg);
74 +static void moveplace(const Arg *arg);
75 static Client *nexttiled(Client *c);
76 static void pop(Client *);
77 static void propertynotify(XEvent *e);
78 @@ -1192,6 +1194,36 @@ movemouse(const Arg *arg)
79 }
80 }
81
82 +void
83 +moveplace(const Arg *arg)
84 +{
85 + Client *c;
86 + int nh, nw, nx, ny;
87 + c = selmon->sel;
88 + if (!c || (arg->ui >= 9))
89 + return;
90 + if (selmon->lt[selmon->sellt]->arrange && !c->isfloating)
91 + togglefloating(NULL);
92 + nh = (selmon->wh / 3) - (c->bw * 2);
93 + nw = (selmon->ww / 3) - (c->bw * 2);
94 + nx = (arg->ui % 3) -1;
95 + ny = (arg->ui / 3) -1;
96 + if (nx < 0)
97 + nx = selmon->wx;
98 + else if(nx > 0)
99 + nx = selmon->wx + selmon->ww - nw - c->bw*2;
100 + else
101 + nx = selmon->wx + selmon->ww/2 - nw/2 - c->bw;
102 + if (ny <0)
103 + ny = selmon->wy;
104 + else if(ny > 0)
105 + ny = selmon->wy + selmon->wh - nh - c->bw*2;
106 + else
107 + ny = selmon->wy + selmon->wh/2 - nh/2 - c->bw;
108 + resize(c, nx, ny, nw, nh, True);
109 + XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, nw/2, nh/2);
110 +}
111 +
112 Client *
113 nexttiled(Client *c)
114 {
115 --
116 2.7.4
117
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.