personal/dotfiles

configs/dwm.h in master
Repositories | Summary | Log | Files | README.md | LICENSE

dwm.h (7062B) download


  1/* See LICENSE file for copyright and license details. */
  2
  3#include <X11/XF86keysym.h>
  4
  5#include "theme.h"
  6
  7/* appearance */
  8static const unsigned int borderpx = 2; /* border pixel of windows */
  9static const unsigned int snap = 10;    /* snap pixel */
 10static const int horizpadbar = 10;      /* horizontal padding for statusbar */
 11static const int vertpadbar = 10;       /* vertical padding for statusbar */
 12static const int showbar = 1;           /* 0 means no bar */
 13static const int topbar = 1;            /* 0 means bottom bar */
 14static const unsigned int systraypinning =
 15    0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor
 16          X */
 17static const unsigned int systrayonleft =
 18    0; /* 0: systray in the right corner, >0: systray on left of status text */
 19static const unsigned int systrayspacing = 2; /* systray spacing */
 20static const int systraypinningfailfirst =
 21    1; /* 1: if pinning fails, display systray on the first monitor, False:
 22          display systray on the last monitor*/
 23static const int showsystray = 1; /* 0 means no systray */
 24static const char *fonts[] = {"Monaco:size=9"};
 25static const char *colors__[][3] = { // dark
 26    /*               fg         bg         border   */
 27    [SchemeNorm]       = { white,   gray2,   gray2  },
 28    [SchemeSel]        = { blue,     gray3,   blue  },
 29    [SchemeUrg]        = { orange,  gray3,   red    },
 30    [3]                = { gray3, orange, gray2 },
 31    [4]                = { gray3,   green,   gray2  }
 32  };
 33
 34
 35
 36static const char *colors[][3] = { 
 37    /*               fg         bg         border   */
 38    [SchemeNorm]       = { "#000000", "#eaffea", "#9eeeee" },  // fg = white, bg = gray2, border = gray2
 39    [SchemeSel]        = { "#eaffea", "#448844", "#55aaaa" },  // fg = blue, bg = gray3, border = blue
 40    [SchemeUrg]        = { "#eaffea", "#999999", "#ff0000" },  // fg = orange (light green), bg = gray3, border = red
 41    [3]                = { "#999999", "#eaffea", "#cccccc" },  // fg = gray3, bg = orange (light green), border = gray2
 42    [4]                = { "#999999", "#448844", "#cccccc" }   // fg = gray3, bg = green, border = gray2
 43};
 44
 45static const char dwmrc[] = ".dwmrc";
 46
 47/* tagging */
 48static const char *tags[] = {"1", "2", "3", "4", "5"};
 49
 50static const Rule rules[] = {
 51    /* xprop(1):
 52     *	WM_CLASS(STRING) = instance, class
 53     *	WM_NAME(STRING) = title
 54     */
 55    /* class      instance    title       tags mask     isfloating   monitor */
 56    {"Firefox", NULL, NULL, 1 << 5, 0, -1},
 57};
 58
 59/* layout(s) */
 60static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
 61static const int nmaster = 1;    /* number of clients in master area */
 62static const int resizehints =
 63    1; /* 1 means respect size hints in tiled resizals */
 64static const int lockfullscreen =
 65    1; /* 1 will force focus on the fullscreen window */
 66
 67static const Layout layouts[] = {
 68    /* symbol     arrange function */
 69    {"[]=", tile}, /* first entry is default */
 70    {"{ }", NULL}, /* no layout function means floating behavior */
 71    {"[o]", monocle},
 72};
 73
 74/* key definitions */
 75#define MODKEY Mod4Mask
 76#define TAGKEYS(KEY, TAG)                                                      \
 77  {MODKEY, KEY, view, {.ui = 1 << TAG}},                                       \
 78      {MODKEY | ControlMask, KEY, toggleview, {.ui = 1 << TAG}},               \
 79      {MODKEY | ShiftMask, KEY, tag, {.ui = 1 << TAG}}, {                      \
 80    MODKEY | ControlMask | ShiftMask, KEY, toggletag, { .ui = 1 << TAG }       \
 81  }
 82
 83/* helper for spawning shell commands in the pre dwm-5.0 fashion */
 84#define SHELL(cmd)                                                             \
 85  {                                                                            \
 86    .v = (const char *[]) { "/bin/sh", "-c", cmd, NULL }                       \
 87  }
 88#define COMMAND(...)                                                           \
 89  {                                                                            \
 90    .v = (const char *[]) { __VA_ARGS__, NULL }                                \
 91  }
 92#define BACKLIGHT(device, value)                                               \
 93  COMMAND("brightnessctl", "-q", "-d", device, "set", value)
 94
 95#define monitor_backlight "acpi_video0"
 96#define keyboard_backlight "smc::kbd_backlight"
 97
 98static const Key keys[] = {
 99    /* modifier                     key        function        argument */
100    {MODKEY, XK_Return, spawn, COMMAND("st")},
101    {MODKEY | ShiftMask, XK_w, spawn, COMMAND("surf")},
102    {MODKEY, XK_w, spawn, COMMAND("firefox")},
103    {MODKEY, XK_space, spawn, COMMAND("dmenu_run")},
104    {MODKEY, XK_m, spawn, SHELL("man -k . | dmenu -l 25 | cut -d' ' -f1-2 | sed -E 's/(\\S+) \\((\\S+)\\)/\\2 \\1/' | xargs st -f 'SF Mono' -e man -s")},
105    {0, XF86XK_MonBrightnessUp, spawn, BACKLIGHT(monitor_backlight, "+5%")},
106    {0, XF86XK_MonBrightnessDown, spawn, BACKLIGHT(monitor_backlight, "5%-")},
107    {0, XF86XK_KbdBrightnessUp, spawn, BACKLIGHT(keyboard_backlight, "+5%")},
108    {0, XF86XK_KbdBrightnessDown, spawn, BACKLIGHT(keyboard_backlight, "5%-")},
109    {MODKEY, XK_o, spawn, COMMAND("dfm")},
110    {MODKEY | ShiftMask, XK_o, spawn, COMMAND("dfm", "-c")},
111    {MODKEY, XK_b, togglebar, {0}},
112    {MODKEY, XK_j, focusstack, {.i = +1}},
113    {MODKEY, XK_k, focusstack, {.i = -1}},
114    {MODKEY, XK_i, incnmaster, {.i = +1}},
115    {MODKEY, XK_d, incnmaster, {.i = -1}},
116    {MODKEY, XK_Left, setmfact, {.f = -0.05}},
117    {MODKEY, XK_Right, setmfact, {.f = +0.05}},
118    {MODKEY | ShiftMask, XK_Return, zoom, {0}},
119    {MODKEY, XK_Tab, view, {0}},
120    {MODKEY, XK_q, killclient, {0}},
121    {MODKEY | ControlMask, XK_comma, cyclelayout, {.i = -1}},
122    {MODKEY | ControlMask, XK_period, cyclelayout, {.i = +1}},
123    {MODKEY | ControlMask, XK_space, setlayout, {0}},
124    {MODKEY | ShiftMask, XK_space, togglefloating, {0}},
125    {MODKEY, XK_0, view, {.ui = ~0}},
126    {MODKEY | ShiftMask, XK_0, tag, {.ui = ~0}},
127    {MODKEY, XK_comma, focusmon, {.i = -1}},
128    {MODKEY, XK_period, focusmon, {.i = +1}},
129    {MODKEY | ShiftMask, XK_comma, tagmon, {.i = -1}},
130    {MODKEY | ShiftMask, XK_period, tagmon, {.i = +1}},
131    TAGKEYS(XK_1, 0),
132    TAGKEYS(XK_2, 1),
133    TAGKEYS(XK_3, 2),
134    TAGKEYS(XK_4, 3),
135    TAGKEYS(XK_5, 4),
136    {MODKEY | ShiftMask, XK_q, quit, {0}},
137};
138
139/* button definitions */
140/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
141 * ClkClientWin, or ClkRootWin */
142static const Button buttons[] = {
143    /* click                event mask      button          function argument */
144    {ClkLtSymbol, 0, Button1, cyclelayout, {.i = +1}},
145    {ClkWinTitle, 0, Button2, zoom, {0}},
146    {ClkStatusText, 0, Button2, spawn, COMMAND("st")},
147    {ClkClientWin, MODKEY, Button1, movemouse, {0}},
148    {ClkClientWin, MODKEY, Button2, togglefloating, {0}},
149    {ClkClientWin, MODKEY, Button3, resizemouse, {0}},
150    {ClkTagBar, 0, Button1, view, {0}},
151    {ClkTagBar, 0, Button3, toggleview, {0}},
152    {ClkTagBar, MODKEY, Button1, tag, {0}},
153    {ClkTagBar, MODKEY, Button3, toggletag, {0}},
154};