diff options
-rw-r--r-- | client.c | 17 | ||||
-rw-r--r-- | dwm.h | 22 | ||||
-rw-r--r-- | event.c | 23 | ||||
-rw-r--r-- | tag.c | 26 |
4 files changed, 40 insertions, 48 deletions
diff --git a/client.c b/client.c index 4afa705..c20c517 100644 --- a/client.c +++ b/client.c @@ -476,7 +476,7 @@ unmanage(Client *c) void zoom(Arg *arg) { - Client *c; + Client *c, **l; if(!sel) return; @@ -486,6 +486,19 @@ zoom(Arg *arg) sel = c; } - pop(sel); + /* pop */ + for(l = &clients; *l && *l != sel; l = &(*l)->next); + if(sel->prev) + sel->prev->next = sel->next; + if(sel->next) + sel->next->prev = sel->prev; + *l = sel->next; + + sel->prev = NULL; + if(clients) + clients->prev = sel; + sel->next = clients; + clients = sel; + arrange(NULL); focus(sel); } diff --git a/dwm.h b/dwm.h index 1439f59..a6a04ca 100644 --- a/dwm.h +++ b/dwm.h @@ -7,21 +7,21 @@ /* CUSTOMIZE */ -#define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" -#define BGCOLOR "#0a2c2d" -#define FGCOLOR "#ddeeee" -#define BORDERCOLOR "#176164" -#define MODKEY Mod1Mask /* Mod4Mask */ +#define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" +#define BGCOLOR "#0a2c2d" +#define FGCOLOR "#ddeeee" +#define BORDERCOLOR "#176164" +#define MODKEY Mod1Mask /* Mod4Mask */ /* -#define BGCOLOR "#666699" -#define FGCOLOR "#eeeeee" -#define BORDERCOLOR "#9999CC" +#define BGCOLOR "#666699" +#define FGCOLOR "#eeeeee" +#define BORDERCOLOR "#9999CC" */ -#define MASTERW 52 /* percent */ +#define MASTERW 52 /* percent */ #define WM_PROTOCOL_DELWIN 1 /* tags */ -enum { Tscratch, Tdev, Twww, Twork, TLast }; +enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; /* END CUSTOMIZE */ @@ -105,7 +105,6 @@ extern void higher(Client *c); extern void killclient(Arg *arg); extern void lower(Client *c); extern void manage(Window w, XWindowAttributes *wa); -extern void pop(Client *c); extern void resize(Client *c, Bool sizehints, Corner sticky); extern void setsize(Client *c); extern void settitle(Client *c); @@ -136,7 +135,6 @@ extern void dofloat(Arg *arg); extern void dotile(Arg *arg); extern Client *getnext(Client *c, unsigned int t); extern Client *getprev(Client *c); -extern void heretag(Arg *arg); extern void replacetag(Arg *arg); extern void settags(Client *c); extern void togglemode(Arg *arg); diff --git a/event.c b/event.c index a0b3c0e..58df281 100644 --- a/event.c +++ b/event.c @@ -30,27 +30,26 @@ const char *xlock[] = { "xlock", NULL }; static Key key[] = { /* modifier key function arguments */ - { ControlMask, XK_0, appendtag, { .i = Tscratch } }, - { ControlMask, XK_1, appendtag, { .i = Tdev } }, - { ControlMask, XK_2, appendtag, { .i = Twww } }, - { ControlMask, XK_3, appendtag, { .i = Twork } }, - { MODKEY, XK_0, view, { .i = Tscratch } }, + { MODKEY, XK_0, view, { .i = Tfnord } }, { MODKEY, XK_1, view, { .i = Tdev } }, - { MODKEY, XK_2, view, { .i = Twww } }, + { MODKEY, XK_2, view, { .i = Tnet } }, { MODKEY, XK_3, view, { .i = Twork } }, + { MODKEY, XK_4, view, { .i = Tmisc} }, { MODKEY, XK_j, focusnext, { 0 } }, { MODKEY, XK_k, focusprev, { 0 } }, { MODKEY, XK_m, togglemax, { 0 } }, { MODKEY, XK_space, togglemode, { 0 } }, { MODKEY, XK_Return, zoom, { 0 } }, - { ControlMask|ShiftMask,XK_0, heretag, { .i = Tscratch } }, - { ControlMask|ShiftMask,XK_1, heretag, { .i = Tdev } }, - { ControlMask|ShiftMask,XK_2, heretag, { .i = Twww } }, - { ControlMask|ShiftMask,XK_3, heretag, { .i = Twork } }, - { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tscratch } }, + { MODKEY|ControlMask, XK_0, appendtag, { .i = Tfnord } }, + { MODKEY|ControlMask, XK_1, appendtag, { .i = Tdev } }, + { MODKEY|ControlMask, XK_2, appendtag, { .i = Tnet } }, + { MODKEY|ControlMask, XK_3, appendtag, { .i = Twork } }, + { MODKEY|ControlMask, XK_4, appendtag, { .i = Tmisc } }, + { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tfnord } }, { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } }, - { MODKEY|ShiftMask, XK_2, replacetag, { .i = Twww } }, + { MODKEY|ShiftMask, XK_2, replacetag, { .i = Tnet } }, { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } }, + { MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } }, { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, { MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } }, { MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } }, diff --git a/tag.c b/tag.c index 21eb9fa..f7ab6b9 100644 --- a/tag.c +++ b/tag.c @@ -21,15 +21,16 @@ typedef struct { /* CUSTOMIZE */ static Rule rule[] = { /* class:instance tags isfloat */ - { "Firefox.*", { [Twww] = "www" }, False }, + { "Firefox.*", { [Tnet] = "net" }, False }, { "Gimp.*", { 0 }, True}, }; char *tags[TLast] = { - [Tscratch] = "scratch", + [Tfnord] = "fnord", [Tdev] = "dev", - [Twww] = "www", + [Tnet] = "net", [Twork] = "work", + [Tmisc] = "misc", }; void (*arrange)(Arg *) = dotile; @@ -148,25 +149,6 @@ getprev(Client *c) } void -heretag(Arg *arg) -{ - int i; - Client *c; - - if(arg->i == tsel) - return; - - if(!(c = getnext(clients, arg->i))) - return; - - for(i = 0; i < TLast; i++) - c->tags[i] = NULL; - c->tags[tsel] = tags[tsel]; - pop(c); - focus(c); -} - -void replacetag(Arg *arg) { int i; |