dwm

suckless's window manager with Luke's setup
Log | Files | Refs | README | LICENSE

config.h (16843B)


      1 /* See LICENSE file for copyright and license details. */
      2 
      3 /* appearance */
      4 static const unsigned int borderpx  = 3;        /* border pixel of windows */
      5 static const unsigned int snap      = 32;       /* snap pixel */
      6 static const unsigned int gappih    = 20;       /* horiz inner gap between windows */
      7 static const unsigned int gappiv    = 10;       /* vert inner gap between windows */
      8 static const unsigned int gappoh    = 10;       /* horiz outer gap between windows and screen edge */
      9 static const unsigned int gappov    = 30;       /* vert outer gap between windows and screen edge */
     10 static const int swallowfloating    = 0;        /* 1 means swallow floating windows by default */
     11 static const int smartgaps          = 0;        /* 1 means no outer gap when there is only one window */
     12 static const int showbar            = 1;        /* 0 means no bar */
     13 static const int topbar             = 1;        /* 0 means bottom bar */
     14 static const char *fonts[]          = { "monospace:size=10", "JoyPixels:pixelsize=10:antialias=true:autohint=true"  };
     15 static char dmenufont[]             = "monospace:size=10";
     16 static char normbgcolor[]           = "#222222";
     17 static char normbordercolor[]       = "#444444";
     18 static char normfgcolor[]           = "#bbbbbb";
     19 static char selfgcolor[]            = "#eeeeee";
     20 static char selbordercolor[]        = "#770000";
     21 static char selbgcolor[]            = "#005577";
     22 static char *colors[][3] = {
     23        /*               fg           bg           border   */
     24        [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
     25        [SchemeSel]  = { selfgcolor,  selbgcolor,  selbordercolor  },
     26 };
     27 
     28 typedef struct {
     29 	const char *name;
     30 	const void *cmd;
     31 } Sp;
     32 const char *spcmd1[] = {"st", "-n", "spterm", "-g", "120x34", NULL };
     33 const char *spcmd2[] = {"st", "-n", "spcalc", "-f", "monospace:size=16", "-g", "50x20", "-e", "bc", "-lq", NULL };
     34 static Sp scratchpads[] = {
     35 	/* name          cmd  */
     36 	{"spterm",      spcmd1},
     37 	{"spranger",    spcmd2},
     38 };
     39 
     40 /* tagging */
     41 static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
     42 
     43 static const Rule rules[] = {
     44 	/* xprop(1):
     45 	 *	WM_CLASS(STRING) = instance, class
     46 	 *	WM_NAME(STRING) = title
     47 	*/
     48 	/* class    instance      title       	 tags mask    isfloating   isterminal  noswallow  monitor */
     49 	{ "Gimp",     NULL,       NULL,       	    1 << 8,       0,           0,         0,        -1 },
     50 	{ "St",       NULL,       NULL,       	    0,            0,           1,         0,        -1 },
     51 	{ NULL,       NULL,       "Event Tester",   0,            0,           0,         1,        -1 },
     52 	{ NULL,      "spterm",    NULL,       	    SPTAG(0),     1,           1,         0,        -1 },
     53 	{ NULL,      "spcalc",    NULL,       	    SPTAG(1),     1,           1,         0,        -1 },
     54 };
     55 
     56 /* layout(s) */
     57 static const float mfact     = 0.55; /* factor of master area size [0.05..0.95] */
     58 static const int nmaster     = 1;    /* number of clients in master area */
     59 static const int resizehints = 1;    /* 1 means respect size hints in tiled resizals */
     60 #define FORCE_VSPLIT 1  /* nrowgrid layout: force two clients to always split vertically */
     61 #include "vanitygaps.c"
     62 static const Layout layouts[] = {
     63 	/* symbol     arrange function */
     64  	{ "[]=",	tile },			/* Default: Master on left, slaves on right */
     65 	{ "TTT",	bstack },		/* Master on top, slaves on bottom */
     66 
     67 	{ "[@]",	spiral },		/* Fibonacci spiral */
     68 	{ "[\\]",	dwindle },		/* Decreasing in size right and leftward */
     69 
     70 	{ "H[]",	deck },			/* Master on left, slaves in monocle-like mode on right */
     71  	{ "[M]",	monocle },		/* All windows on top of eachother */
     72 
     73 	{ "|M|",	centeredmaster },		/* Master in middle, slaves on sides */
     74 	{ ">M>",	centeredfloatingmaster },	/* Same but master floats */
     75 
     76 	{ "><>",	NULL },			/* no layout function means floating behavior */
     77 	{ NULL,		NULL },
     78 };
     79 
     80 /* key definitions */
     81 #define MODKEY Mod4Mask
     82 #define TAGKEYS(KEY,TAG) \
     83 	{ MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \
     84 	{ MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \
     85 	{ MODKEY|ShiftMask,             KEY,      tag,            {.ui = 1 << TAG} }, \
     86 	{ MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} },
     87 #define STACKKEYS(MOD,ACTION) \
     88 	{ MOD,	XK_j,	ACTION##stack,	{.i = INC(+1) } }, \
     89 	{ MOD,	XK_k,	ACTION##stack,	{.i = INC(-1) } }, \
     90 	{ MOD,  XK_v,   ACTION##stack,  {.i = 0 } }, \
     91 	/* { MOD, XK_grave, ACTION##stack, {.i = PREVSEL } }, \ */
     92 	/* { MOD, XK_a,     ACTION##stack, {.i = 1 } }, \ */
     93 	/* { MOD, XK_z,     ACTION##stack, {.i = 2 } }, \ */
     94 	/* { MOD, XK_x,     ACTION##stack, {.i = -1 } }, */
     95 
     96 /* helper for spawning shell commands in the pre dwm-5.0 fashion */
     97 #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
     98 
     99 /* commands */
    100 static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
    101 static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
    102 static const char *termcmd[]  = { "st", NULL };
    103 
    104 #include <X11/XF86keysym.h>
    105 #include "shiftview.c"
    106 static Key keys[] = {
    107 	/* modifier                     key        function        argument */
    108 	STACKKEYS(MODKEY,                          focus)
    109 	STACKKEYS(MODKEY|ShiftMask,                push)
    110 	/* { MODKEY|ShiftMask,		XK_Escape,	spawn,	SHCMD("") }, */
    111 	{ MODKEY,			XK_grave,	spawn,	SHCMD("dmenuunicode") },
    112 	/* { MODKEY|ShiftMask,		XK_grave,	togglescratch,	SHCMD("") }, */
    113 	TAGKEYS(			XK_1,		0)
    114 	TAGKEYS(			XK_2,		1)
    115 	TAGKEYS(			XK_3,		2)
    116 	TAGKEYS(			XK_4,		3)
    117 	TAGKEYS(			XK_5,		4)
    118 	TAGKEYS(			XK_6,		5)
    119 	TAGKEYS(			XK_7,		6)
    120 	TAGKEYS(			XK_8,		7)
    121 	TAGKEYS(			XK_9,		8)
    122 	{ MODKEY,			XK_0,		view,		{.ui = ~0 } },
    123 	{ MODKEY|ShiftMask,		XK_0,		tag,		{.ui = ~0 } },
    124 	{ MODKEY,			XK_minus,	spawn,		SHCMD("pamixer --allow-boost -d 5; kill -44 $(pidof dwmblocks)") },
    125 	{ MODKEY|ShiftMask,		XK_minus,	spawn,		SHCMD("pamixer --allow-boost -d 15; kill -44 $(pidof dwmblocks)") },
    126 	{ MODKEY,			XK_equal,	spawn,		SHCMD("pamixer --allow-boost -i 5; kill -44 $(pidof dwmblocks)") },
    127 	{ MODKEY|ShiftMask,		XK_equal,	spawn,		SHCMD("pamixer --allow-boost -i 15; kill -44 $(pidof dwmblocks)") },
    128 	{ MODKEY,			XK_BackSpace,	spawn,		SHCMD("sysact") },
    129 	{ MODKEY|ShiftMask,		XK_BackSpace,	spawn,		SHCMD("sysact") },
    130 
    131 	{ MODKEY,			XK_Tab,		view,		{0} },
    132 	/* { MODKEY|ShiftMask,		XK_Tab,		spawn,		SHCMD("") }, */
    133 	{ MODKEY,			XK_q,		killclient,	{0} },
    134 	{ MODKEY|ShiftMask,		XK_q,		spawn,		SHCMD("sysact") },
    135 	{ MODKEY,			XK_w,		spawn,		SHCMD("$BROWSER") },
    136 	{ MODKEY|ShiftMask,		XK_w,		spawn,		SHCMD("st -e sudo nmtui") },
    137 	{ MODKEY,			XK_e,		spawn,		SHCMD("st -e neomutt ; pkill -RTMIN+12 dwmblocks; rmdir ~/.abook") },
    138 	{ MODKEY|ShiftMask,		XK_e,		spawn,		SHCMD("st -e abook -C ~/.config/abook/abookrc --datafile ~/.config/abook/addressbook") },
    139 	{ MODKEY,			XK_r,		spawn,		SHCMD("st -e lf") },
    140 	{ MODKEY|ShiftMask,		XK_r,		spawn,		SHCMD("st -e htop") },
    141 	{ MODKEY,			XK_t,		setlayout,	{.v = &layouts[0]} }, /* tile */
    142 	{ MODKEY|ShiftMask,		XK_t,		setlayout,	{.v = &layouts[1]} }, /* bstack */
    143 	{ MODKEY,			XK_y,		setlayout,	{.v = &layouts[2]} }, /* spiral */
    144 	{ MODKEY|ShiftMask,		XK_y,		setlayout,	{.v = &layouts[3]} }, /* dwindle */
    145 	{ MODKEY,			XK_u,		setlayout,	{.v = &layouts[4]} }, /* deck */
    146 	{ MODKEY|ShiftMask,		XK_u,		setlayout,	{.v = &layouts[5]} }, /* monocle */
    147 	{ MODKEY,			XK_i,		setlayout,	{.v = &layouts[6]} }, /* centeredmaster */
    148 	{ MODKEY|ShiftMask,		XK_i,		setlayout,	{.v = &layouts[7]} }, /* centeredfloatingmaster */
    149 	{ MODKEY,			XK_o,		incnmaster,     {.i = +1 } },
    150 	{ MODKEY|ShiftMask,		XK_o,		incnmaster,     {.i = -1 } },
    151 	{ MODKEY,			XK_p,			spawn,		SHCMD("mpc toggle") },
    152 	{ MODKEY|ShiftMask,		XK_p,			spawn,		SHCMD("mpc pause ; pauseallmpv") },
    153 	{ MODKEY,			XK_bracketleft,		spawn,		SHCMD("mpc seek -10") },
    154 	{ MODKEY|ShiftMask,		XK_bracketleft,		spawn,		SHCMD("mpc seek -60") },
    155 	{ MODKEY,			XK_bracketright,	spawn,		SHCMD("mpc seek +10") },
    156 	{ MODKEY|ShiftMask,		XK_bracketright,	spawn,		SHCMD("mpc seek +60") },
    157 	{ MODKEY,			XK_backslash,		view,		{0} },
    158 	/* { MODKEY|ShiftMask,		XK_backslash,		spawn,		SHCMD("") }, */
    159 
    160 	{ MODKEY,			XK_a,		togglegaps,	{0} },
    161 	{ MODKEY|ShiftMask,		XK_a,		defaultgaps,	{0} },
    162 	{ MODKEY,			XK_s,		togglesticky,	{0} },
    163 	/* { MODKEY|ShiftMask,		XK_s,		spawn,		SHCMD("") }, */
    164 	{ MODKEY,			XK_d,		spawn,          {.v = dmenucmd } },
    165 	/* { MODKEY,			XK_d,		spawn,		SHCMD("") } }, */
    166 	{ MODKEY,			XK_f,		togglefullscr,	{0} },
    167 	{ MODKEY|ShiftMask,		XK_f,		setlayout,	{.v = &layouts[8]} },
    168 	{ MODKEY,			XK_g,		shiftview,	{ .i = -1 } },
    169 	{ MODKEY|ShiftMask,		XK_g,		shifttag,	{ .i = -1 } },
    170 	{ MODKEY,			XK_h,		setmfact,	{.f = -0.05} },
    171 	/* J and K are automatically bound above in STACKEYS */
    172 	{ MODKEY,			XK_l,		setmfact,      	{.f = +0.05} },
    173 	{ MODKEY,			XK_semicolon,	shiftview,	{ .i = 1 } },
    174 	{ MODKEY|ShiftMask,		XK_semicolon,	shifttag,	{ .i = 1 } },
    175 	{ MODKEY,			XK_apostrophe,	togglescratch,	{.ui = 1} },
    176 	/* { MODKEY|ShiftMask,		XK_apostrophe,	spawn,		SHCMD("") }, */
    177 	{ MODKEY,			XK_Return,	spawn,		{.v = termcmd } },
    178 	{ MODKEY|ShiftMask,		XK_Return,	togglescratch,	{.ui = 0} },
    179 
    180 	{ MODKEY,			XK_z,		incrgaps,	{.i = +3 } },
    181 	/* { MODKEY|ShiftMask,		XK_z,		spawn,		SHCMD("") }, */
    182 	{ MODKEY,			XK_x,		incrgaps,	{.i = -3 } },
    183 	/* { MODKEY|ShiftMask,		XK_x,		spawn,		SHCMD("") }, */
    184 	/* { MODKEY,			XK_c,		spawn,		SHCMD("") }, */
    185 	/* { MODKEY|ShiftMask,		XK_c,		spawn,		SHCMD("") }, */
    186 	/* V is automatically bound above in STACKKEYS */
    187 	{ MODKEY,			XK_b,		togglebar,	{0} },
    188 	/* { MODKEY|ShiftMask,		XK_b,		spawn,		SHCMD("") }, */
    189 	{ MODKEY,			XK_n,		spawn,		SHCMD("st -e nvim -c VimwikiIndex") },
    190 	{ MODKEY|ShiftMask,		XK_n,		spawn,		SHCMD("st -e newsboat; pkill -RTMIN+6 dwmblocks") },
    191 	{ MODKEY,			XK_m,		spawn,		SHCMD("st -e ncmpcpp") },
    192 	{ MODKEY|ShiftMask,		XK_m,		spawn,		SHCMD("pamixer -t; kill -44 $(pidof dwmblocks)") },
    193 	{ MODKEY,			XK_comma,	spawn,		SHCMD("mpc prev") },
    194 	{ MODKEY|ShiftMask,		XK_comma,	spawn,		SHCMD("mpc seek 0%") },
    195 	{ MODKEY,			XK_period,	spawn,		SHCMD("mpc next") },
    196 	{ MODKEY|ShiftMask,		XK_period,	spawn,		SHCMD("mpc repeat") },
    197 
    198 	{ MODKEY,			XK_Left,	focusmon,	{.i = -1 } },
    199 	{ MODKEY|ShiftMask,		XK_Left,	tagmon,		{.i = -1 } },
    200 	{ MODKEY,			XK_Right,	focusmon,	{.i = +1 } },
    201 	{ MODKEY|ShiftMask,		XK_Right,	tagmon,		{.i = +1 } },
    202 
    203 	{ MODKEY,			XK_Page_Up,	shiftview,	{ .i = -1 } },
    204 	{ MODKEY|ShiftMask,		XK_Page_Up,	shifttag,	{ .i = -1 } },
    205 	{ MODKEY,			XK_Page_Down,	shiftview,	{ .i = +1 } },
    206 	{ MODKEY|ShiftMask,		XK_Page_Down,	shifttag,	{ .i = +1 } },
    207 	{ MODKEY,			XK_Insert,	spawn,		SHCMD("notify-send \"📋 Clipboard contents:\" \"$(xclip -o -selection clipboard)\"") },
    208 
    209 	{ MODKEY,			XK_F1,		spawn,		SHCMD("groff -mom /usr/local/share/dwm/larbs.mom -Tpdf | zathura -") },
    210 	{ MODKEY,			XK_F2,		spawn,		SHCMD("tutorialvids") },
    211 	{ MODKEY,			XK_F3,		spawn,		SHCMD("displayselect") },
    212 	{ MODKEY,			XK_F4,		spawn,		SHCMD("st -e pulsemixer; kill -44 $(pidof dwmblocks)") },
    213 	{ MODKEY,			XK_F5,		xrdb,		{.v = NULL } },
    214 	{ MODKEY,			XK_F6,		spawn,		SHCMD("torwrap") },
    215 	{ MODKEY,			XK_F7,		spawn,		SHCMD("td-toggle") },
    216 	{ MODKEY,			XK_F8,		spawn,		SHCMD("mailsync") },
    217 	{ MODKEY,			XK_F9,		spawn,		SHCMD("dmenumount") },
    218 	{ MODKEY,			XK_F10,		spawn,		SHCMD("dmenuumount") },
    219 	{ MODKEY,			XK_F11,		spawn,		SHCMD("mpv --no-cache --no-osc --no-input-default-bindings --input-conf=/dev/null --title=webcam $(ls /dev/video[0,2,4,6,8] | tail -n 1)") },
    220 	{ MODKEY,			XK_F12,		xrdb,		{.v = NULL } },
    221 	{ MODKEY,			XK_space,	zoom,		{0} },
    222 	{ MODKEY|ShiftMask,		XK_space,	togglefloating,	{0} },
    223 
    224 	{ 0,				XK_Print,	spawn,		SHCMD("maim pic-full-$(date '+%y%m%d-%H%M-%S').png") },
    225 	{ ShiftMask,			XK_Print,	spawn,		SHCMD("maimpick") },
    226 	{ MODKEY,			XK_Print,	spawn,		SHCMD("dmenurecord") },
    227 	{ MODKEY|ShiftMask,		XK_Print,	spawn,		SHCMD("dmenurecord kill") },
    228 	{ MODKEY,			XK_Delete,	spawn,		SHCMD("dmenurecord kill") },
    229 	{ MODKEY,			XK_Scroll_Lock,	spawn,		SHCMD("killall screenkey || screenkey &") },
    230 
    231 	{ 0, XF86XK_AudioMute,		spawn,		SHCMD("pamixer -t; kill -44 $(pidof dwmblocks)") },
    232 	{ 0, XF86XK_AudioRaiseVolume,	spawn,		SHCMD("pamixer --allow-boost -i 3; kill -44 $(pidof dwmblocks)") },
    233 	{ 0, XF86XK_AudioLowerVolume,	spawn,		SHCMD("pamixer --allow-boost -d 3; kill -44 $(pidof dwmblocks)") },
    234 	{ 0, XF86XK_AudioPrev,		spawn,		SHCMD("mpc prev") },
    235 	{ 0, XF86XK_AudioNext,		spawn,		SHCMD("mpc next") },
    236 	{ 0, XF86XK_AudioPause,		spawn,		SHCMD("mpc pause") },
    237 	{ 0, XF86XK_AudioPlay,		spawn,		SHCMD("mpc play") },
    238 	{ 0, XF86XK_AudioStop,		spawn,		SHCMD("mpc stop") },
    239 	{ 0, XF86XK_AudioRewind,	spawn,		SHCMD("mpc seek -10") },
    240 	{ 0, XF86XK_AudioForward,	spawn,		SHCMD("mpc seek +10") },
    241 	{ 0, XF86XK_AudioMedia,		spawn,		SHCMD("st -e ncmpcpp") },
    242 	{ 0, XF86XK_PowerOff,		spawn,		SHCMD("sysact") },
    243 	{ 0, XF86XK_Calculator,		spawn,		SHCMD("st -e bc -l") },
    244 	{ 0, XF86XK_Sleep,		spawn,		SHCMD("sudo -A zzz") },
    245 	{ 0, XF86XK_WWW,		spawn,		SHCMD("$BROWSER") },
    246 	{ 0, XF86XK_DOS,		spawn,		SHCMD("st") },
    247 	{ 0, XF86XK_ScreenSaver,	spawn,		SHCMD("slock & xset dpms force off; mpc pause; pauseallmpv") },
    248 	{ 0, XF86XK_TaskPane,		spawn,		SHCMD("st -e htop") },
    249 	{ 0, XF86XK_Mail,		spawn,		SHCMD("st -e neomutt ; pkill -RTMIN+12 dwmblocks") },
    250 	{ 0, XF86XK_MyComputer,		spawn,		SHCMD("st -e lf /") },
    251 	/* { 0, XF86XK_Battery,		spawn,		SHCMD("") }, */
    252 	{ 0, XF86XK_Launch1,		spawn,		SHCMD("xset dpms force off") },
    253 	{ 0, XF86XK_TouchpadToggle,	spawn,		SHCMD("(synclient | grep 'TouchpadOff.*1' && synclient TouchpadOff=0) || synclient TouchpadOff=1") },
    254 	{ 0, XF86XK_TouchpadOff,	spawn,		SHCMD("synclient TouchpadOff=1") },
    255 	{ 0, XF86XK_TouchpadOn,		spawn,		SHCMD("synclient TouchpadOff=0") },
    256 	{ 0, XF86XK_MonBrightnessUp,	spawn,		SHCMD("xbacklight -inc 15") },
    257 	{ 0, XF86XK_MonBrightnessDown,	spawn,		SHCMD("xbacklight -dec 15") },
    258 
    259 	/* { MODKEY|Mod4Mask,              XK_h,      incrgaps,       {.i = +1 } }, */
    260 	/* { MODKEY|Mod4Mask,              XK_l,      incrgaps,       {.i = -1 } }, */
    261 	/* { MODKEY|Mod4Mask|ShiftMask,    XK_h,      incrogaps,      {.i = +1 } }, */
    262 	/* { MODKEY|Mod4Mask|ShiftMask,    XK_l,      incrogaps,      {.i = -1 } }, */
    263 	/* { MODKEY|Mod4Mask|ControlMask,  XK_h,      incrigaps,      {.i = +1 } }, */
    264 	/* { MODKEY|Mod4Mask|ControlMask,  XK_l,      incrigaps,      {.i = -1 } }, */
    265 	/* { MODKEY|Mod4Mask|ShiftMask,    XK_0,      defaultgaps,    {0} }, */
    266 	/* { MODKEY,                       XK_y,      incrihgaps,     {.i = +1 } }, */
    267 	/* { MODKEY,                       XK_o,      incrihgaps,     {.i = -1 } }, */
    268 	/* { MODKEY|ControlMask,           XK_y,      incrivgaps,     {.i = +1 } }, */
    269 	/* { MODKEY|ControlMask,           XK_o,      incrivgaps,     {.i = -1 } }, */
    270 	/* { MODKEY|Mod4Mask,              XK_y,      incrohgaps,     {.i = +1 } }, */
    271 	/* { MODKEY|Mod4Mask,              XK_o,      incrohgaps,     {.i = -1 } }, */
    272 	/* { MODKEY|ShiftMask,             XK_y,      incrovgaps,     {.i = +1 } }, */
    273 	/* { MODKEY|ShiftMask,             XK_o,      incrovgaps,     {.i = -1 } }, */
    274 
    275 };
    276 
    277 /* button definitions */
    278 /* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
    279 static Button buttons[] = {
    280 	/* click                event mask      button          function        argument */
    281 	{ ClkWinTitle,          0,              Button2,        zoom,           {0} },
    282 	{ ClkStatusText,        0,              Button1,        sigdwmblocks,   {.i = 1} },
    283 	{ ClkStatusText,        0,              Button2,        sigdwmblocks,   {.i = 2} },
    284 	{ ClkStatusText,        0,              Button3,        sigdwmblocks,   {.i = 3} },
    285 	{ ClkStatusText,        0,              Button4,        sigdwmblocks,   {.i = 4} },
    286 	{ ClkStatusText,        0,              Button5,        sigdwmblocks,   {.i = 5} },
    287 	{ ClkStatusText,        ShiftMask,      Button1,        sigdwmblocks,   {.i = 6} },
    288 	{ ClkStatusText,        ShiftMask,      Button3,        spawn,          SHCMD("st -e nvim ~/.local/src/dwmblocks/config.h") },
    289 	{ ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
    290 	{ ClkClientWin,         MODKEY,         Button2,        defaultgaps,	{0} },
    291 	{ ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
    292 	{ ClkClientWin,		MODKEY,		Button4,	incrgaps,	{.i = +1} },
    293 	{ ClkClientWin,		MODKEY,		Button5,	incrgaps,	{.i = -1} },
    294 	{ ClkTagBar,            0,              Button1,        view,           {0} },
    295 	{ ClkTagBar,            0,              Button3,        toggleview,     {0} },
    296 	{ ClkTagBar,            MODKEY,         Button1,        tag,            {0} },
    297 	{ ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
    298 	{ ClkTagBar,		0,		Button4,	shiftview,	{.i = -1} },
    299 	{ ClkTagBar,		0,		Button5,	shiftview,	{.i = 1} },
    300 	{ ClkRootWin,		0,		Button2,	togglebar,	{0} },
    301 };