+#include "dwm.h"
+
+static void (*arrange)(Arg *) = floating;
+
+static void
+center(Client *c)
+{
+ XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2);
+}
+
+static Client *
+next(Client *c)
+{
+ for(; c && !c->tags[tsel]; c = c->next);
+ return c;
+}
+
+void
+zoom(Arg *arg)
+{
+ Client **l;
+
+ if(!sel)
+ return;
+
+ for(l = &clients; *l && *l != sel; l = &(*l)->next);
+ *l = sel->next;
+
+ sel->next = clients; /* pop */
+ clients = sel;
+ arrange(NULL);
+ center(sel);
+ focus(sel);
+}
+
+void
+max(Arg *arg)
+{
+ if(!sel)
+ return;
+ sel->x = sx;
+ sel->y = sy;
+ sel->w = sw - 2 * sel->border;
+ sel->h = sh - 2 * sel->border;
+ craise(sel);
+ resize(sel);
+ discard_events(EnterWindowMask);
+}
+
+void
+view(Arg *arg)
+{
+ tsel = arg->i;
+ arrange(NULL);
+}