1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
/* see LICENSE for copyright and license */
#ifndef CONFIG_H
#define CONFIG_H
/** modifiers **/
#define MOD1 Mod1Mask /* ALT key */
#define MOD4 Mod4Mask /* Super/Windows key */
#define CONTROL ControlMask /* Control key */
#define SHIFT ShiftMask /* Shift key */
/** generic settings **/
#define MASTER_SIZE 0.6
#define SHOW_PANEL True /* show panel by default on exec */
#define TOP_PANEL False /* False means panel is on bottom */
#define PANEL_HEIGHT 18 /* 0 for no space for panel, thus no panel */
#define DEFAULT_MODE TILE /* initial layout/mode: TILE MONOCLE BSTACK GRID FLOAT */
#define ATTACH_ASIDE True /* False means new window is master */
#define FOLLOW_WINDOW False /* follow the window when moved to a different desktop */
#define FOLLOW_MOUSE True /* focus the window the mouse just entered */
#define CLICK_TO_FOCUS True /* focus an unfocused window when clicked */
#define FOCUS_BUTTON Button3 /* mouse button to be used along with CLICK_TO_FOCUS */
#define BORDER_WIDTH 2 /* window border width */
#define FOCUS "#ff950e" /* focused window border color */
#define UNFOCUS "#444444" /* unfocused window border color */
#define MINWSZ 50 /* minimum window size in pixels */
#define DEFAULT_DESKTOP 0 /* the desktop to focus initially */
#define DESKTOPS 8 /* number of desktops - edit DESKTOPCHANGE keys to suit */
/**
* open applications to specified desktop with specified mode.
* if desktop is negative, then current is assumed
*/
static const AppRule rules[] = { \
/* class desktop follow float ignore*/
{ "stalonetray", -1, True, True, True },
};
/* helper for spawning shell commands */
#define SHCMD(cmd) {.com = (const char*[]){"/bin/sh", "-c", cmd, NULL}}
/**
* custom commands
* must always end with ', NULL };'
*/
static const char *termcmd[] = { "alacritty", NULL };
static const char *menucmd[] = { "run", NULL };
static const char *now_playing[] = { "now_playing", NULL };
static const char *albumbler[] = { "albumbler.py", NULL };
static const char* mpc_toggle[] = { "mpc", "toggle", NULL };
static const char* lock[] = { "lock", NULL };
#define XF86AudioLowerVolume 0x1008ff11
#define XF86AudioRaiseVolume 0x1008ff13
#define XF86AudioMute 0x1008ff12
static const char *vol_dn[] = { "pactl", "set-sink-volume", "0", "-5%", NULL };
static const char *vol_up[] = { "pactl", "set-sink-volume", "0", "+5%", NULL };
static const char *vol_mt[] = { "pactl", "set-sink-mute", "0", "toggle", NULL };
#define DESKTOPCHANGE(K,N) \
{ MOD4, K, change_desktop, {.i = N} }, \
{ MOD4|ShiftMask, K, client_to_desktop, {.i = N} },
/**
* keyboard shortcuts
*/
static Key keys[] = {
/* modifier key function argument */
// Commands
{ MOD4, XK_t, spawn, {.com = termcmd} },
{ MOD4, XK_d, spawn, {.com = menucmd} },
{ MOD4, XK_space, spawn, {.com = mpc_toggle } },
{ MOD4|SHIFT, XK_space, spawn, {.com = albumbler } },
{ MOD4|SHIFT|CONTROL, XK_space, spawn, {.com = now_playing } },
{ MOD4, XK_h, spawn, {.com = lock } },
{ MOD4|SHIFT|CONTROL, XK_q, quit, {.i = 0} }, /* quit with exit value 0 */
// Multimedia
{ 0, XF86AudioLowerVolume, spawn, {.com = vol_dn } },
{ 0, XF86AudioRaiseVolume, spawn, {.com = vol_up } },
{ 0, XF86AudioMute, spawn, {.com = vol_mt } },
// Windows
{ MOD4, XK_n, next_win, {NULL} },
{ MOD4, XK_o, prev_win, {NULL} },
{ MOD4|SHIFT, XK_n, move_down, {NULL} },
{ MOD4|SHIFT, XK_o, move_up, {NULL} },
{ MOD4|SHIFT, XK_k, killclient, {NULL} },
{ MOD4, XK_Return, swap_master, {NULL} },
{ MOD4, XK_BackSpace, focusurgent, {NULL} },
{ MOD4, XK_e, resize_master, {.i = +10} }, /* increase size in px */
{ MOD4, XK_i, resize_master, {.i = -10} }, /* decrease size in px */
// Desktops
{ MOD4, XK_Tab, last_desktop, {NULL} },
DESKTOPCHANGE( XK_l, 0)
DESKTOPCHANGE( XK_u, 1)
DESKTOPCHANGE( XK_y, 2)
DESKTOPCHANGE( XK_semicolon, 3)
DESKTOPCHANGE( XK_q, 4)
DESKTOPCHANGE( XK_w, 5)
DESKTOPCHANGE( XK_f, 6)
DESKTOPCHANGE( XK_p, 7)
// Layouts
{ MOD4, XK_a, switch_mode, {.i = TILE} },
{ MOD4, XK_r, switch_mode, {.i = MONOCLE} },
{ MOD4, XK_s, switch_mode, {.i = BSTACK} },
{ MOD4|SHIFT, XK_a, switch_mode, {.i = GRID} },
{ MOD4|SHIFT, XK_r, switch_mode, {.i = FLOAT} },
{ MOD4, XK_b, togglepanel, {NULL} },
};
/**
* mouse shortcuts
*/
static Button buttons[] = {
{ MOD4, Button1, mousemotion, {.i = MOVE} },
{ MOD4, Button3, mousemotion, {.i = RESIZE} },
};
#endif
/* vim: set expandtab ts=4 sts=4 sw=4 : */
|