{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
+#define MEDIAKEY(KEY,CMD) {0, KEY, spawn, {.v = (const char *[]){ "sh", "-c", CMD, NULL } } } /* TODO don't fire up unnecessary shells */
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
{ MODKEY|ShiftMask, XK_h, spawn, {.v = helpcmd } },
- /* XF86 Media Keys */
- { 0, XF86XK_MonBrightnessUp, spawn, {.v = (const char *[]){ "xbacklight", "-inc", "10", NULL } } },
- { 0, XF86XK_MonBrightnessDown, spawn, {.v = (const char *[]){ "xbacklight", "-dec", "10", NULL } } },
- { 0, XF86XK_AudioMute, spawn, {.v = (const char *[]){ "sh", "-c", "pactl set-sink-mute @DEFAULT_SINK@ toggle", NULL } } },
- { 0, XF86XK_AudioLowerVolume, spawn, {.v = (const char *[]){ "sh", "-c", "pactl set-sink-volume @DEFAULT_SINK@ -10%", NULL } } },
- { 0, XF86XK_AudioRaiseVolume, spawn, {.v = (const char *[]){ "sh", "-c", "pactl set-sink-volume @DEFAULT_SINK@ +5%", NULL } } },
- { 0, XF86XK_AudioMicMute, spawn, {.v = (const char *[]){ "sh", "-c", "pactl set-source-mute @DEFAULT_SOURCE@ toggle", NULL } } },
- { 0, XF86XK_WebCam, spawn, {.v = (const char *[]){ "sh", "-c", "mpv --untimed /dev/video0", NULL } } },
+ /* XF86 Keys */
+ MEDIAKEY( XF86XK_MonBrightnessUp, "xbacklight -inc 10"),
+ MEDIAKEY( XF86XK_MonBrightnessDown, "xbacklight -dec 10"),
+ MEDIAKEY( XF86XK_AudioMute, "pactl set-sink-mute @DEFAULT_SINK@ toggle"),
+ MEDIAKEY( XF86XK_AudioLowerVolume, "pactl set-sink-volume @DEFAULT_SINK@ -10%"),
+ MEDIAKEY( XF86XK_AudioRaiseVolume, "pactl set-sink-volume @DEFAULT_SINK@ +5%"),
+ MEDIAKEY( XF86XK_AudioMicMute, "pactl set-source-mute @DEFAULT_SOURCE@ toggle"),
+ MEDIAKEY( XF86XK_WebCam, "mpv --untimed /dev/video0"),
};