sanitization of several clunky stuff, removed heretag (rarely of use), simplified pop(), changed shortcuts to always contain MODKEY
cd8d8e12
4 file(s) · +40 −48
| 476 | 476 | void |
|
| 477 | 477 | zoom(Arg *arg) |
|
| 478 | 478 | { |
|
| 479 | - | Client *c; |
|
| 479 | + | Client *c, **l; |
|
| 480 | 480 | ||
| 481 | 481 | if(!sel) |
|
| 482 | 482 | return; |
|
| 486 | 486 | sel = c; |
|
| 487 | 487 | } |
|
| 488 | 488 | ||
| 489 | - | pop(sel); |
|
| 489 | + | /* pop */ |
|
| 490 | + | for(l = &clients; *l && *l != sel; l = &(*l)->next); |
|
| 491 | + | if(sel->prev) |
|
| 492 | + | sel->prev->next = sel->next; |
|
| 493 | + | if(sel->next) |
|
| 494 | + | sel->next->prev = sel->prev; |
|
| 495 | + | *l = sel->next; |
|
| 496 | + | ||
| 497 | + | sel->prev = NULL; |
|
| 498 | + | if(clients) |
|
| 499 | + | clients->prev = sel; |
|
| 500 | + | sel->next = clients; |
|
| 501 | + | clients = sel; |
|
| 502 | + | arrange(NULL); |
|
| 490 | 503 | focus(sel); |
|
| 491 | 504 | } |
|
| 7 | 7 | ||
| 8 | 8 | /* CUSTOMIZE */ |
|
| 9 | 9 | ||
| 10 | - | #define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" |
|
| 11 | - | #define BGCOLOR "#0a2c2d" |
|
| 12 | - | #define FGCOLOR "#ddeeee" |
|
| 13 | - | #define BORDERCOLOR "#176164" |
|
| 14 | - | #define MODKEY Mod1Mask /* Mod4Mask */ |
|
| 10 | + | #define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" |
|
| 11 | + | #define BGCOLOR "#0a2c2d" |
|
| 12 | + | #define FGCOLOR "#ddeeee" |
|
| 13 | + | #define BORDERCOLOR "#176164" |
|
| 14 | + | #define MODKEY Mod1Mask /* Mod4Mask */ |
|
| 15 | 15 | /* |
|
| 16 | - | #define BGCOLOR "#666699" |
|
| 17 | - | #define FGCOLOR "#eeeeee" |
|
| 18 | - | #define BORDERCOLOR "#9999CC" |
|
| 16 | + | #define BGCOLOR "#666699" |
|
| 17 | + | #define FGCOLOR "#eeeeee" |
|
| 18 | + | #define BORDERCOLOR "#9999CC" |
|
| 19 | 19 | */ |
|
| 20 | - | #define MASTERW 52 /* percent */ |
|
| 20 | + | #define MASTERW 52 /* percent */ |
|
| 21 | 21 | #define WM_PROTOCOL_DELWIN 1 |
|
| 22 | 22 | ||
| 23 | 23 | /* tags */ |
|
| 24 | - | enum { Tscratch, Tdev, Twww, Twork, TLast }; |
|
| 24 | + | enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; |
|
| 25 | 25 | ||
| 26 | 26 | /* END CUSTOMIZE */ |
|
| 27 | 27 | ||
| 105 | 105 | extern void killclient(Arg *arg); |
|
| 106 | 106 | extern void lower(Client *c); |
|
| 107 | 107 | extern void manage(Window w, XWindowAttributes *wa); |
|
| 108 | - | extern void pop(Client *c); |
|
| 109 | 108 | extern void resize(Client *c, Bool sizehints, Corner sticky); |
|
| 110 | 109 | extern void setsize(Client *c); |
|
| 111 | 110 | extern void settitle(Client *c); |
|
| 136 | 135 | extern void dotile(Arg *arg); |
|
| 137 | 136 | extern Client *getnext(Client *c, unsigned int t); |
|
| 138 | 137 | extern Client *getprev(Client *c); |
|
| 139 | - | extern void heretag(Arg *arg); |
|
| 140 | 138 | extern void replacetag(Arg *arg); |
|
| 141 | 139 | extern void settags(Client *c); |
|
| 142 | 140 | extern void togglemode(Arg *arg); |
|
| 30 | 30 | ||
| 31 | 31 | static Key key[] = { |
|
| 32 | 32 | /* modifier key function arguments */ |
|
| 33 | - | { ControlMask, XK_0, appendtag, { .i = Tscratch } }, |
|
| 34 | - | { ControlMask, XK_1, appendtag, { .i = Tdev } }, |
|
| 35 | - | { ControlMask, XK_2, appendtag, { .i = Twww } }, |
|
| 36 | - | { ControlMask, XK_3, appendtag, { .i = Twork } }, |
|
| 37 | - | { MODKEY, XK_0, view, { .i = Tscratch } }, |
|
| 33 | + | { MODKEY, XK_0, view, { .i = Tfnord } }, |
|
| 38 | 34 | { MODKEY, XK_1, view, { .i = Tdev } }, |
|
| 39 | - | { MODKEY, XK_2, view, { .i = Twww } }, |
|
| 35 | + | { MODKEY, XK_2, view, { .i = Tnet } }, |
|
| 40 | 36 | { MODKEY, XK_3, view, { .i = Twork } }, |
|
| 37 | + | { MODKEY, XK_4, view, { .i = Tmisc} }, |
|
| 41 | 38 | { MODKEY, XK_j, focusnext, { 0 } }, |
|
| 42 | 39 | { MODKEY, XK_k, focusprev, { 0 } }, |
|
| 43 | 40 | { MODKEY, XK_m, togglemax, { 0 } }, |
|
| 44 | 41 | { MODKEY, XK_space, togglemode, { 0 } }, |
|
| 45 | 42 | { MODKEY, XK_Return, zoom, { 0 } }, |
|
| 46 | - | { ControlMask|ShiftMask,XK_0, heretag, { .i = Tscratch } }, |
|
| 47 | - | { ControlMask|ShiftMask,XK_1, heretag, { .i = Tdev } }, |
|
| 48 | - | { ControlMask|ShiftMask,XK_2, heretag, { .i = Twww } }, |
|
| 49 | - | { ControlMask|ShiftMask,XK_3, heretag, { .i = Twork } }, |
|
| 50 | - | { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tscratch } }, |
|
| 43 | + | { MODKEY|ControlMask, XK_0, appendtag, { .i = Tfnord } }, |
|
| 44 | + | { MODKEY|ControlMask, XK_1, appendtag, { .i = Tdev } }, |
|
| 45 | + | { MODKEY|ControlMask, XK_2, appendtag, { .i = Tnet } }, |
|
| 46 | + | { MODKEY|ControlMask, XK_3, appendtag, { .i = Twork } }, |
|
| 47 | + | { MODKEY|ControlMask, XK_4, appendtag, { .i = Tmisc } }, |
|
| 48 | + | { MODKEY|ShiftMask, XK_0, replacetag, { .i = Tfnord } }, |
|
| 51 | 49 | { MODKEY|ShiftMask, XK_1, replacetag, { .i = Tdev } }, |
|
| 52 | - | { MODKEY|ShiftMask, XK_2, replacetag, { .i = Twww } }, |
|
| 50 | + | { MODKEY|ShiftMask, XK_2, replacetag, { .i = Tnet } }, |
|
| 53 | 51 | { MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } }, |
|
| 52 | + | { MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } }, |
|
| 54 | 53 | { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, |
|
| 55 | 54 | { MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } }, |
|
| 56 | 55 | { MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } }, |
| 21 | 21 | /* CUSTOMIZE */ |
|
| 22 | 22 | static Rule rule[] = { |
|
| 23 | 23 | /* class:instance tags isfloat */ |
|
| 24 | - | { "Firefox.*", { [Twww] = "www" }, False }, |
|
| 24 | + | { "Firefox.*", { [Tnet] = "net" }, False }, |
|
| 25 | 25 | { "Gimp.*", { 0 }, True}, |
|
| 26 | 26 | }; |
|
| 27 | 27 | ||
| 28 | 28 | char *tags[TLast] = { |
|
| 29 | - | [Tscratch] = "scratch", |
|
| 29 | + | [Tfnord] = "fnord", |
|
| 30 | 30 | [Tdev] = "dev", |
|
| 31 | - | [Twww] = "www", |
|
| 31 | + | [Tnet] = "net", |
|
| 32 | 32 | [Twork] = "work", |
|
| 33 | + | [Tmisc] = "misc", |
|
| 33 | 34 | }; |
|
| 34 | 35 | ||
| 35 | 36 | void (*arrange)(Arg *) = dotile; |
|
| 145 | 146 | { |
|
| 146 | 147 | for(; c && !c->tags[tsel]; c = c->prev); |
|
| 147 | 148 | return c; |
|
| 148 | - | } |
|
| 149 | - | ||
| 150 | - | void |
|
| 151 | - | heretag(Arg *arg) |
|
| 152 | - | { |
|
| 153 | - | int i; |
|
| 154 | - | Client *c; |
|
| 155 | - | ||
| 156 | - | if(arg->i == tsel) |
|
| 157 | - | return; |
|
| 158 | - | ||
| 159 | - | if(!(c = getnext(clients, arg->i))) |
|
| 160 | - | return; |
|
| 161 | - | ||
| 162 | - | for(i = 0; i < TLast; i++) |
|
| 163 | - | c->tags[i] = NULL; |
|
| 164 | - | c->tags[tsel] = tags[tsel]; |
|
| 165 | - | pop(c); |
|
| 166 | - | focus(c); |
|
| 167 | 149 | } |
|
| 168 | 150 | ||
| 169 | 151 | void |
|