+view(Arg *arg)
+{
+ tsel = arg->i;
+ arrange(NULL);
+}
+
+void
+tag(Arg *arg)
+{
+ int i, n;
+ if(!sel)
+ return;
+
+ if(arg->i == tsel) {
+ for(n = i = 0; i < TLast; i++)
+ if(sel->tags[i])
+ n++;
+ if(n < 2)
+ return;
+ }
+
+ if(sel->tags[arg->i])
+ sel->tags[arg->i] = NULL; /* toggle tag */
+ else
+ sel->tags[arg->i] = tags[arg->i];
+ arrange(NULL);
+}
+
+static void
+ban_client(Client *c)
+{
+ XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
+ XMoveWindow(dpy, c->title, c->tx + 2 * sw, c->ty);
+}
+
+void
+floating(Arg *arg)
+{
+ Client *c;
+
+ arrange = floating;
+ for(c = clients; c; c = c->next) {
+ if(c->tags[tsel])
+ resize(c);
+ else
+ ban_client(c);
+ }
+ if(sel && !sel->tags[tsel]) {
+ if((sel = next(clients))) {
+ craise(sel);
+ focus(sel);
+ }
+ }
+ discard_events(EnterWindowMask);
+}
+
+void
+tiling(Arg *arg)