Xinqi Bao's Git
   1 /* See LICENSE file for copyright and license details. */ 
   4 #define FONT            "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*" 
   5 #define NORMBORDERCOLOR "#cccccc" 
   6 #define NORMBGCOLOR     "#cccccc" 
   7 #define NORMFGCOLOR     "#000000" 
   8 #define SELBORDERCOLOR  "#0066ff" 
   9 #define SELBGCOLOR      "#0066ff" 
  10 #define SELFGCOLOR      "#ffffff" 
  11 static uint borderpx    
= 1;        /* border pixel of windows */ 
  12 static uint snap        
= 32;       /* snap pixel */ 
  13 static Bool showbar     
= True
;     /* False means no bar */ 
  14 static Bool topbar      
= True
;     /* False means bottom bar */ 
  17 static uint xidx        
= 0;        /* Xinerama screen index to use */ 
  21 static const char tags
[][MAXTAGLEN
] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; 
  23 static Rule rules
[] = { 
  24         /* class      instance    title       tags ref      isfloating */ 
  25         { "Gimp",     NULL
,       NULL
,       0,            True 
}, 
  26         { "Firefox",  NULL
,       NULL
,       1 << 8,       True 
}, 
  30 static float mfact           
= 0.55; 
  31 static Bool resizehints       
= False
;     /* False means respect size hints in tiled resizals */ 
  33 static Layout layouts
[] = { 
  34         /* symbol     arrange function */ 
  35         { "[]=",      tile 
}, /* first entry is default */ 
  36         { "><>",      NULL 
}, /* no layout function means floating behavior */ 
  40 #define MODKEY Mod1Mask 
  41 #define TAGKEYS(KEY,TAG) \ 
  42         { MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \ 
  43         { MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \ 
  44         { MODKEY|ShiftMask,             KEY,      tag,            {.ui = 1 << TAG} }, \ 
  45         { MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} }, 
  47 /* helper for spawning shell commands in the pre dwm-5.0 fashion */ 
  48 #define SHCMD(cmd) { .v = (char*[]){ "/bin/sh", "-c", cmd, NULL } } 
  51         /* modifier                     key        function        argument */ 
  52         { MODKEY
,                       XK_p
,      spawn
,          {.v 
= (char *[]){"dmenu_run", "-fn", FONT
, "-nb", NORMBGCOLOR
, "-nf", NORMFGCOLOR
, "-sb", SELBGCOLOR
, "-sf", SELFGCOLOR
, NULL
}} }, 
  53         { MODKEY
|ShiftMask
,             XK_Return
, spawn
,          {.v 
= (char *[]){"uxterm", NULL
}} }, 
  54         { MODKEY
,                       XK_b
,      togglebar
,      {0} }, 
  55         { MODKEY
,                       XK_j
,      focusstack
,     {.i 
= +1 } }, 
  56         { MODKEY
,                       XK_k
,      focusstack
,     {.i 
= -1 } }, 
  57         { MODKEY
,                       XK_h
,      setmfact
,       {.f 
= -0.05} }, 
  58         { MODKEY
,                       XK_l
,      setmfact
,       {.f 
= +0.05} }, 
  59         { MODKEY
,                       XK_m
,      togglemax
,      {0} }, 
  60         { MODKEY
,                       XK_Return
, zoom
,           {0} }, 
  61         { MODKEY
,                       XK_Tab
,    view
,           {0} }, 
  62         { MODKEY
|ShiftMask
,             XK_c
,      killclient
,     {0} }, 
  63         { MODKEY
,                       XK_space
,  togglelayout
,   {0} }, 
  64         { MODKEY
|ShiftMask
,             XK_space
,  togglefloating
, {0} }, 
  65         { MODKEY
,                       XK_0
,      view
,           {.ui 
= ~0 } }, 
  66         { MODKEY
|ShiftMask
,             XK_0
,      tag
,            {.ui 
= ~0 } }, 
  76         { MODKEY
|ShiftMask
,             XK_q
,      quit
,           {0} }, 
  79 /* button definitions */ 
  80 #define TAGBUTTONS(TAG) \ 
  81         { TAG,                  0,              Button1,        view,           {.ui = 1 << TAG} }, \ 
  82         { TAG,                  0,              Button3,        toggleview,     {.ui = 1 << TAG} }, \ 
  83         { TAG,                  MODKEY,         Button1,        tag,            {.ui = 1 << TAG} }, \ 
  84         { TAG,                  MODKEY,         Button3,        toggletag,      {.ui = 1 << TAG} }, 
  86 /* click can be a tag number (starting at 0), 
  87  * ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ 
  88 static Button buttons
[] = { 
  89         /* click                event mask      button          function        argument */ 
  90         { ClkLtSymbol
,          0,              Button1
,        togglelayout
,   {0} }, 
  91         { ClkLtSymbol
,          0,              Button3
,        togglemax
,      {0} }, 
  92         { ClkWinTitle
,          0,              Button1
,        movemouse
,      {0} }, 
  93         { ClkWinTitle
,          0,              Button2
,        zoom
,           {0} }, 
  94         { ClkWinTitle
,          0,              Button3
,        resizemouse
,    {0} }, 
  95         { ClkWinTitle
,          0,              Button4
,        focusstack
,     {.i 
= +1 } }, 
  96         { ClkWinTitle
,          0,              Button5
,        focusstack
,     {.i 
= -1 } }, 
  97         { ClkClientWin
,         MODKEY
,         Button1
,        movemouse
,      {0} }, 
  98         { ClkClientWin
,         MODKEY
,         Button2
,        togglefloating
, {0} }, 
  99         { ClkClientWin
,         MODKEY
,         Button3
,        resizemouse
,    {0} }, 
 100         { ClkRootWin
,           Button1Mask
,    Button3
,        spawn
,          {.v 
= (char *[]){"uxterm", NULL
}} },