summaryrefslogtreecommitdiff
path: root/dwm/patches/dwm-movecenter-6.5.diff
blob: b24977a342b67de1350089275a3fe0282063536d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
diff --git a/config.def.h b/config.def.h
index 9efa774..89a958a 100644
--- a/config.def.h
+++ b/config.def.h
@@ -85,6 +85,7 @@ static const Key keys[] = {
 	{ MODKEY,                       XK_period, focusmon,       {.i = +1 } },
 	{ MODKEY|ShiftMask,             XK_comma,  tagmon,         {.i = -1 } },
 	{ MODKEY|ShiftMask,             XK_period, tagmon,         {.i = +1 } },
+	{ MODKEY,                       XK_x,      movecenter,     {0} },
 	TAGKEYS(                        XK_1,                      0)
 	TAGKEYS(                        XK_2,                      1)
 	TAGKEYS(                        XK_3,                      2)
diff --git a/dwm.c b/dwm.c
index f1d86b2..ad534ad 100644
--- a/dwm.c
+++ b/dwm.c
@@ -184,6 +184,7 @@ static void maprequest(XEvent *e);
 static void monocle(Monitor *m);
 static void motionnotify(XEvent *e);
 static void movemouse(const Arg *arg);
+static void movecenter(const Arg *arg);
 static Client *nexttiled(Client *c);
 static void pop(Client *c);
 static void propertynotify(XEvent *e);
@@ -1202,6 +1203,16 @@ movemouse(const Arg *arg)
 	}
 }
 
+void
+movecenter(const Arg *arg)
+{
+	if (selmon->sel) {
+		selmon->sel->x = selmon->sel->mon->mx + (selmon->sel->mon->mw - WIDTH(selmon->sel)) / 2;
+		selmon->sel->y = selmon->sel->mon->my + (selmon->sel->mon->mh - HEIGHT(selmon->sel)) / 2;
+		arrange(selmon);
+	}
+}
+
 Client *
 nexttiled(Client *c)
 {