@@ -69,6 +69,15 @@ static const Layout layouts[] = {
69
69
{ MODKEY|ControlMask|Mod1Mask, KEY, toggletag, {.ui = 1 << TAG} }, \
70
70
{ MODKEY|ControlMask|ShiftMask, KEY, spawn, { .v = (const char*[]){ "display-toggle", (const char[]){ TAG + '0', '\0' }, NULL } } },
71
71
72
+ #define MAP (MOD , KEY_PAIR , FUNC , ARG ) \
73
+ { MOD, KEY_PAIR[0], FUNC, ARG }, \
74
+ { MOD, KEY_PAIR[1], FUNC, ARG }
75
+
76
+ static const KeySym left [] = { XK_Left , XK_h };
77
+ static const KeySym right [] = { XK_Right , XK_l };
78
+ static const KeySym down [] = { XK_Down , XK_j };
79
+ static const KeySym up [] = { XK_Up , XK_k };
80
+
72
81
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
73
82
#define SHCMD (cmd ) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
74
83
@@ -82,91 +91,87 @@ static const char *termcmd[] = { TERMINAL, NULL };
82
91
#include <X11/XF86keysym.h>
83
92
84
93
static Key keys [] = {
85
- /* modifier key function argument */
86
- { MODKEY , XK_d , spawn , {.v = dmenucmd } },
87
- { MODKEY , XK_Return , spawn , {.v = termcmd } },
88
- { MODKEY , XK_f , spawn , SHCMD ("_START_LFCD=1 " TERMINAL ) },
89
- { MODKEY , XK_n , spawn , SHCMD ("$BROWSER" ) },
90
- { MODKEY |ControlMask , XK_n , spawn , SHCMD ("$BROWSER --incognito" ) },
91
- { MODKEY |ShiftMask , XK_n , spawn , SHCMD ("$BROWSER --tor" ) },
92
- { MODKEY |Mod1Mask , XK_n , spawn , SHCMD ("bookmarks" ) },
93
- { MODKEY , XK_m , spawn , SHCMD ("code" ) },
94
- { MODKEY , XK_comma , spawn , SHCMD ("alacritty --class git -e lazygit" ) },
95
- { MODKEY , XK_period , spawn , SHCMD ("insomnia" ) },
96
- { MODKEY , XK_slash , spawn , SHCMD ("roku" ) },
97
- { MODKEY , XK_F8 , spawn , SHCMD ("comms" ) },
98
- { MODKEY |ShiftMask , XK_F8 , spawn , SHCMD ("comms -q" ) },
99
- { MODKEY , XK_F12 , spawn , SHCMD ("dmenucalc" ) },
100
- { MODKEY , XK_b , togglebar , {0 } },
101
- { MODKEY , XK_space , zoom , {0 } },
102
- { MODKEY , XK_Tab , focusmon , {.i = +1 } },
103
- { MODKEY , XK_j , focusstack , {.i = +1 } },
104
- { MODKEY , XK_k , focusstack , {.i = -1 } },
105
- { MODKEY |Mod1Mask , XK_j , tagmon , {.i = +1 } },
106
- { MODKEY |Mod1Mask , XK_k , tagmon , {.i = -1 } },
107
- { MODKEY |ControlMask , XK_j , focusmon , {.i = +1 } },
108
- { MODKEY |ControlMask , XK_k , focusmon , {.i = -1 } },
109
- { MODKEY , XK_h , pushup , {0 } },
110
- { MODKEY , XK_l , pushdown , {0 } },
111
- { MODKEY , XK_Left , focusstack , {.i = -1 } },
112
- { MODKEY , XK_Right , focusstack , {.i = +1 } },
113
- { MODKEY , XK_Up , pushup , {0 } },
114
- { MODKEY , XK_Down , pushdown , {0 } },
115
- { MODKEY |Mod1Mask , XK_Tab , tagmon , {.i = -1 } },
116
- { MODKEY |Mod1Mask , XK_Page_Up , incnmaster , {.i = +1 } },
117
- { MODKEY |Mod1Mask , XK_Page_Down , incnmaster , {.i = -1 } },
118
- { MODKEY |ControlMask , XK_End , setcfact , {.f = 0.00 } },
119
- { MODKEY |ControlMask , XK_Up , setcfact , {.f = +0.25 } },
120
- { MODKEY |ControlMask , XK_Down , setcfact , {.f = -0.25 } },
121
- { MODKEY |ControlMask , XK_Left , setmfact , {.f = -0.03 } },
122
- { MODKEY |ControlMask , XK_Right , setmfact , {.f = +0.03 } },
123
- { MODKEY , XK_z , killclient , {0 } },
124
- { MODKEY |Mod1Mask , XK_t , setlayout , {.v = & layouts [0 ]} },
125
- { MODKEY |Mod1Mask , XK_f , setlayout , {.v = & layouts [1 ]} },
126
- { MODKEY |Mod1Mask , XK_m , setlayout , {.v = & layouts [2 ]} },
127
- { MODKEY |Mod1Mask , XK_u , setlayout , {.v = & layouts [3 ]} },
128
- { MODKEY |Mod1Mask , XK_space , togglefloating , {0 } },
129
- { MODKEY , XK_0 , view , {.ui = ~0 } },
130
- { MODKEY |ShiftMask , XK_0 , tag , {.ui = ~0 } },
131
- { MODKEY |ControlMask , XK_p , spawn , SHCMD ("display-switch" ) },
132
- { MODKEY |ShiftMask , XK_p , spawn , SHCMD ("display-select" ) },
133
- { 0 , XK_Print , spawn , SHCMD ("maimpick -a" ) },
134
- { ShiftMask , XK_Print , spawn , SHCMD ("maimpick" ) },
135
- { MODKEY , XK_equal , spawn , SHCMD ("pamixer --allow-boost -i 5; kill -39 $(pidof dwmblocks)" ) },
136
- { MODKEY , XK_minus , spawn , SHCMD ("pamixer --allow-boost -d 5; kill -39 $(pidof dwmblocks)" ) },
137
- { MODKEY , XK_F9 , spawn , SHCMD ("dmenumount" ) },
138
- { MODKEY , XK_F10 , spawn , SHCMD ("dmenuumount" ) },
139
- { MODKEY |ShiftMask , XK_l , spawn , SHCMD ("slock || kill -9 -1" ) },
140
- { MODKEY , XK_Pause , spawn , SHCMD ("dunstctl set-paused toggle" ) },
141
- { ShiftMask , XK_Pause , spawn , SHCMD ("dunstctl history-pop" ) },
142
- { ControlMask , XK_Pause , spawn , SHCMD ("dunst-config" ) },
143
- { MODKEY |ShiftMask , XK_q , spawn , SHCMD ("sysact" ) },
144
- TAGKEYS ( XK_1 , 0 )
145
- TAGKEYS ( XK_2 , 1 )
146
- TAGKEYS ( XK_3 , 2 )
147
- TAGKEYS ( XK_4 , 3 )
148
- TAGKEYS ( XK_5 , 4 )
149
- TAGKEYS ( XK_6 , 5 )
150
- TAGKEYS ( XK_7 , 6 )
151
- TAGKEYS ( XK_8 , 7 )
152
- TAGKEYS ( XK_9 , 8 )
153
- TAGKEYS ( XK_q , 0 )
154
- TAGKEYS ( XK_w , 1 )
155
- TAGKEYS ( XK_e , 2 )
156
- TAGKEYS ( XK_r , 3 )
157
- TAGKEYS ( XK_t , 4 )
158
- TAGKEYS ( XK_y , 5 )
159
- TAGKEYS ( XK_u , 6 )
160
- TAGKEYS ( XK_i , 7 )
161
- TAGKEYS ( XK_o , 8 )
162
- { 0 , XF86XK_AudioPlay , spawn , SHCMD ("media-control Play" ) },
163
- { 0 , XF86XK_AudioPause , spawn , SHCMD ("media-control Pause" ) },
164
- { 0 , XF86XK_AudioStop , spawn , SHCMD ("media-control Pause" ) },
165
- { 0 , XF86XK_AudioNext , spawn , SHCMD ("media-control Next" ) },
166
- { 0 , XF86XK_AudioPrev , spawn , SHCMD ("media-control Previous" ) },
167
- { 0 , XF86XK_AudioMute , spawn , SHCMD ("BLOCK_BUTTON=3 volume" ) },
168
- { 0 , XF86XK_AudioRaiseVolume , spawn , SHCMD ("BLOCK_BUTTON=4 volume" ) },
169
- { 0 , XF86XK_AudioLowerVolume , spawn , SHCMD ("BLOCK_BUTTON=5 volume" ) },
94
+ /* modifier key function argument */
95
+ { MODKEY , XK_d , spawn , {.v = dmenucmd } },
96
+ { MODKEY , XK_Return , spawn , {.v = termcmd } },
97
+ { MODKEY , XK_f , spawn , SHCMD ("_START_LFCD=1 " TERMINAL ) },
98
+ { MODKEY , XK_n , spawn , SHCMD ("$BROWSER" ) },
99
+ { MODKEY |ControlMask , XK_n , spawn , SHCMD ("$BROWSER --incognito" ) },
100
+ { MODKEY |ShiftMask , XK_n , spawn , SHCMD ("$BROWSER --tor" ) },
101
+ { MODKEY |Mod1Mask , XK_n , spawn , SHCMD ("bookmarks" ) },
102
+ { MODKEY , XK_m , spawn , SHCMD ("code" ) },
103
+ { MODKEY , XK_comma , spawn , SHCMD ("alacritty --class git -e lazygit" ) },
104
+ { MODKEY , XK_period , spawn , SHCMD ("insomnia" ) },
105
+ { MODKEY , XK_slash , spawn , SHCMD ("roku" ) },
106
+ { MODKEY , XK_F8 , spawn , SHCMD ("comms" ) },
107
+ { MODKEY |ShiftMask , XK_F8 , spawn , SHCMD ("comms -q" ) },
108
+ { MODKEY , XK_F12 , spawn , SHCMD ("dmenucalc" ) },
109
+ MAP (MODKEY , left , focusstack , {.i = -1 }),
110
+ MAP (MODKEY , right , focusstack , {.i = +1 }),
111
+ MAP (MODKEY , up , pushup , {0 }),
112
+ MAP (MODKEY , down , pushdown , {0 }),
113
+ MAP (MODKEY |Mod1Mask , left , focusmon , {.i = +1 }),
114
+ MAP (MODKEY |Mod1Mask , right , focusmon , {.i = -1 }),
115
+ MAP (MODKEY |Mod1Mask , up , tagmon , {.i = -1 }),
116
+ MAP (MODKEY |Mod1Mask , down , tagmon , {.i = +1 }),
117
+ MAP (MODKEY |ControlMask , left , setmfact , {.f = -0.03 }),
118
+ MAP (MODKEY |ControlMask , right , setmfact , {.f = +0.03 }),
119
+ MAP (MODKEY |ControlMask , up , setcfact , {.f = +0.25 }),
120
+ MAP (MODKEY |ControlMask , down , setcfact , {.f = -0.25 }),
121
+ { MODKEY , XK_b , togglebar , {0 } },
122
+ { MODKEY , XK_space , zoom , {0 } },
123
+ { MODKEY , XK_Tab , focusmon , {.i = +1 } },
124
+ { MODKEY |Mod1Mask , XK_Tab , tagmon , {.i = -1 } },
125
+ { MODKEY |Mod1Mask , XK_Page_Up , incnmaster , {.i = +1 } },
126
+ { MODKEY |Mod1Mask , XK_Page_Down , incnmaster , {.i = -1 } },
127
+ { MODKEY |ControlMask , XK_End , setcfact , {.f = 0.00 } },
128
+ { MODKEY , XK_z , killclient , {0 } },
129
+ { MODKEY |Mod1Mask , XK_t , setlayout , {.v = & layouts [0 ]} },
130
+ { MODKEY |Mod1Mask , XK_f , setlayout , {.v = & layouts [1 ]} },
131
+ { MODKEY |Mod1Mask , XK_m , setlayout , {.v = & layouts [2 ]} },
132
+ { MODKEY |Mod1Mask , XK_u , setlayout , {.v = & layouts [3 ]} },
133
+ { MODKEY |Mod1Mask , XK_space , togglefloating , {0 } },
134
+ { MODKEY , XK_0 , view , {.ui = ~0 } },
135
+ { MODKEY |ShiftMask , XK_0 , tag , {.ui = ~0 } },
136
+ { MODKEY |ControlMask , XK_p , spawn , SHCMD ("display-switch" ) },
137
+ { MODKEY |ShiftMask , XK_p , spawn , SHCMD ("display-select" ) },
138
+ { 0 , XK_Print , spawn , SHCMD ("maimpick -a" ) },
139
+ { ShiftMask , XK_Print , spawn , SHCMD ("maimpick" ) },
140
+ { MODKEY , XK_equal , spawn , SHCMD ("pamixer --allow-boost -i 5; kill -39 $(pidof dwmblocks)" ) },
141
+ { MODKEY , XK_minus , spawn , SHCMD ("pamixer --allow-boost -d 5; kill -39 $(pidof dwmblocks)" ) },
142
+ { MODKEY , XK_F9 , spawn , SHCMD ("dmenumount" ) },
143
+ { MODKEY , XK_F10 , spawn , SHCMD ("dmenuumount" ) },
144
+ { MODKEY |ShiftMask , XK_l , spawn , SHCMD ("slock || kill -9 -1" ) },
145
+ { MODKEY , XK_Pause , spawn , SHCMD ("dunstctl set-paused toggle" ) },
146
+ { ShiftMask , XK_Pause , spawn , SHCMD ("dunstctl history-pop" ) },
147
+ { ControlMask , XK_Pause , spawn , SHCMD ("dunst-config" ) },
148
+ { MODKEY |ShiftMask , XK_q , spawn , SHCMD ("sysact" ) },
149
+ TAGKEYS ( XK_1 , 0 )
150
+ TAGKEYS ( XK_2 , 1 )
151
+ TAGKEYS ( XK_3 , 2 )
152
+ TAGKEYS ( XK_4 , 3 )
153
+ TAGKEYS ( XK_5 , 4 )
154
+ TAGKEYS ( XK_6 , 5 )
155
+ TAGKEYS ( XK_7 , 6 )
156
+ TAGKEYS ( XK_8 , 7 )
157
+ TAGKEYS ( XK_9 , 8 )
158
+ TAGKEYS ( XK_q , 0 )
159
+ TAGKEYS ( XK_w , 1 )
160
+ TAGKEYS ( XK_e , 2 )
161
+ TAGKEYS ( XK_r , 3 )
162
+ TAGKEYS ( XK_t , 4 )
163
+ TAGKEYS ( XK_y , 5 )
164
+ TAGKEYS ( XK_u , 6 )
165
+ TAGKEYS ( XK_i , 7 )
166
+ TAGKEYS ( XK_o , 8 )
167
+ { 0 , XF86XK_AudioPlay , spawn , SHCMD ("media-control Play" ) },
168
+ { 0 , XF86XK_AudioPause , spawn , SHCMD ("media-control Pause" ) },
169
+ { 0 , XF86XK_AudioStop , spawn , SHCMD ("media-control Pause" ) },
170
+ { 0 , XF86XK_AudioNext , spawn , SHCMD ("media-control Next" ) },
171
+ { 0 , XF86XK_AudioPrev , spawn , SHCMD ("media-control Previous" ) },
172
+ { 0 , XF86XK_AudioMute , spawn , SHCMD ("BLOCK_BUTTON=3 volume" ) },
173
+ { 0 , XF86XK_AudioRaiseVolume , spawn , SHCMD ("BLOCK_BUTTON=4 volume" ) },
174
+ { 0 , XF86XK_AudioLowerVolume , spawn , SHCMD ("BLOCK_BUTTON=5 volume" ) },
170
175
};
171
176
172
177
/* button definitions */
0 commit comments