replaced togglelayout with setlayout
879241c0
5 file(s) · +29 −21
| 63 | 63 | { MODKEY|ControlMask|ShiftMask, XK_8, toggletag, { .i = 7 } }, \ |
|
| 64 | 64 | { MODKEY|ControlMask|ShiftMask, XK_9, toggletag, { .i = 8 } }, \ |
|
| 65 | 65 | { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ |
|
| 66 | - | { MODKEY, XK_space, togglelayout, { 0 } }, \ |
|
| 66 | + | { MODKEY, XK_space, setlayout, { .i = -1 } }, \ |
|
| 67 | 67 | { MODKEY|ShiftMask, XK_space, toggleversatile,{ 0 } }, \ |
|
| 68 | 68 | { MODKEY, XK_0, view, { .i = -1 } }, \ |
|
| 69 | 69 | { MODKEY, XK_1, view, { .i = 0 } }, \ |
| 58 | 58 | { MODKEY|ControlMask|ShiftMask, XK_8, toggletag, { .i = 7 } }, \ |
|
| 59 | 59 | { MODKEY|ControlMask|ShiftMask, XK_9, toggletag, { .i = 8 } }, \ |
|
| 60 | 60 | { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ |
|
| 61 | - | { MODKEY, XK_space, togglelayout, { 0 } }, \ |
|
| 62 | - | { MODKEY|ShiftMask, XK_space, toggleversatile { 0 } }, \ |
|
| 61 | + | { MODKEY, XK_space, setlayout, { .i = -1 } }, \ |
|
| 62 | + | { MODKEY|ShiftMask, XK_space, toggleversatile,{ 0 } }, \ |
|
| 63 | 63 | { MODKEY, XK_0, view, { .i = -1 } }, \ |
|
| 64 | 64 | { MODKEY, XK_1, view, { .i = 0 } }, \ |
|
| 65 | 65 | { MODKEY, XK_2, view, { .i = 1 } }, \ |
|
| 86 | 86 | * xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/ { printf("%s\n",$2) }' */ |
|
| 87 | 87 | #define RULES \ |
|
| 88 | 88 | static Rule rule[] = { \ |
|
| 89 | - | /* class:instance:title regex tags regex versatile */ \ |
|
| 89 | + | /* class:instance:title regex tags regex isversatile */ \ |
|
| 90 | 90 | { "Gimp", NULL, True }, \ |
|
| 91 | 91 | { "MPlayer", NULL, True }, \ |
|
| 92 | 92 | { "Acroread", NULL, True }, \ |
|
| 134 | 134 | extern Bool isvisible(Client *c); /* returns True if client is visible */ |
|
| 135 | 135 | extern void resizemaster(Arg *arg); /* resizes the master percent with arg's index value */ |
|
| 136 | 136 | extern void restack(void); /* restores z layers of all clients */ |
|
| 137 | + | extern void setlayout(Arg *arg); /* sets layout, -1 toggles */ |
|
| 137 | 138 | extern void settags(Client *c, Client *trans); /* sets tags of c */ |
|
| 138 | 139 | extern void tag(Arg *arg); /* tags c with arg's index */ |
|
| 139 | 140 | extern void toggleversatile(Arg *arg); /* toggles focusesd client between versatile/and non-versatile state */ |
|
| 140 | - | extern void togglelayout(Arg *arg); /* toggles layout */ |
|
| 141 | 141 | extern void toggletag(Arg *arg); /* toggles c tags with arg's index */ |
|
| 142 | 142 | extern void toggleview(Arg *arg); /* toggles the tag with arg's index (in)visible */ |
|
| 143 | 143 | extern void versatile(void); /* arranges all windows versatile */ |
| 140 | 140 | if(ev->x < x + blw) |
|
| 141 | 141 | switch(ev->button) { |
|
| 142 | 142 | case Button1: |
|
| 143 | - | togglelayout(NULL); |
|
| 143 | + | a.i = -1; |
|
| 144 | + | setlayout(&a); |
|
| 144 | 145 | break; |
|
| 145 | 146 | case Button4: |
|
| 146 | 147 | a.i = 1; |
| 191 | 191 | } |
|
| 192 | 192 | ||
| 193 | 193 | void |
|
| 194 | + | setlayout(Arg *arg) { |
|
| 195 | + | unsigned int i; |
|
| 196 | + | ||
| 197 | + | if(arg->i == -1) { |
|
| 198 | + | for(i = 0; i < nlayouts && lt != &layout[i]; i++); |
|
| 199 | + | if(i == nlayouts - 1) |
|
| 200 | + | lt = &layout[0]; |
|
| 201 | + | else |
|
| 202 | + | lt = &layout[++i]; |
|
| 203 | + | } |
|
| 204 | + | else { |
|
| 205 | + | if(arg->i < 0 || arg->i >= nlayouts) |
|
| 206 | + | return; |
|
| 207 | + | lt = &layout[arg->i]; |
|
| 208 | + | } |
|
| 209 | + | if(sel) |
|
| 210 | + | lt->arrange(); |
|
| 211 | + | else |
|
| 212 | + | drawstatus(); |
|
| 213 | + | } |
|
| 214 | + | ||
| 215 | + | void |
|
| 194 | 216 | settags(Client *c, Client *trans) { |
|
| 195 | 217 | char prop[512]; |
|
| 196 | 218 | unsigned int i, j; |
|
| 250 | 272 | if(i == ntags) |
|
| 251 | 273 | sel->tags[arg->i] = True; |
|
| 252 | 274 | lt->arrange(); |
|
| 253 | - | } |
|
| 254 | - | ||
| 255 | - | void |
|
| 256 | - | togglelayout(Arg *arg) { |
|
| 257 | - | unsigned int i; |
|
| 258 | - | ||
| 259 | - | for(i = 0; i < nlayouts && lt != &layout[i]; i++); |
|
| 260 | - | if(i == nlayouts - 1) |
|
| 261 | - | lt = &layout[0]; |
|
| 262 | - | else |
|
| 263 | - | lt = &layout[++i]; |
|
| 264 | - | if(sel) |
|
| 265 | - | lt->arrange(); |
|
| 266 | - | else |
|
| 267 | - | drawstatus(); |
|
| 268 | 275 | } |
|
| 269 | 276 | ||
| 270 | 277 | void |
|