Action buttons with SHIFT/CTRL modifiers
This commit is contained in:
parent
2860b6f48b
commit
3ea25b64d6
@ -108,13 +108,28 @@ LIBINPUT_CONFIG_TAP_MAP_LMR -- 1/2/3 finger tap maps to left/middle/right
|
||||
static const enum libinput_config_tap_button_map button_map = LIBINPUT_CONFIG_TAP_MAP_LRM;
|
||||
|
||||
/* If you want to use the windows key for MODKEY, use WLR_MODIFIER_LOGO */
|
||||
#define MODKEY WLR_MODIFIER_LOGO
|
||||
/* #define MODKEY WLR_MODIFIER_LOGO */
|
||||
#define MODKEY WLR_MODIFIER_ALT
|
||||
#define TAGKEYS(KEY,SKEY,TAG) \
|
||||
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
|
||||
{ MODKEY|WLR_MODIFIER_CTRL, KEY, toggleview, {.ui = 1 << TAG} }, \
|
||||
{ MODKEY|WLR_MODIFIER_SHIFT, SKEY, tag, {.ui = 1 << TAG} }, \
|
||||
{ MODKEY|WLR_MODIFIER_CTRL|WLR_MODIFIER_SHIFT,SKEY,toggletag, {.ui = 1 << TAG} }
|
||||
|
||||
#define AD_STR(a) #a
|
||||
#define AD_CONCAT(a, b) AD_STR(a ## b)
|
||||
#define ACTKEYS_DECL(FUNCP) \
|
||||
static const char *key_cmd_ ## FUNCP[] = { "dwl_act", #FUNCP, NULL }; \
|
||||
static const char *key_cmd_S_ ## FUNCP[] = { "dwl_act", AD_CONCAT(S_,FUNCP), NULL }; \
|
||||
static const char *key_cmd_C_ ## FUNCP[] = { "dwl_act", AD_CONCAT(C_,FUNCP), NULL }; \
|
||||
static const char *key_cmd_SC_ ## FUNCP[] = { "dwl_act", AD_CONCAT(SC_,FUNCP), NULL }
|
||||
|
||||
#define ACTKEYS_MAP(KEY,FUNCP) \
|
||||
{ 0, KEY, spawn, {.v = key_cmd_ ## FUNCP} }, \
|
||||
{ WLR_MODIFIER_CTRL, KEY, spawn, {.v = key_cmd_C_ ## FUNCP} }, \
|
||||
{ WLR_MODIFIER_SHIFT, KEY, spawn, {.v = key_cmd_S_ ## FUNCP} }, \
|
||||
{ WLR_MODIFIER_CTRL|WLR_MODIFIER_SHIFT, KEY, spawn, {.v = key_cmd_SC_ ## FUNCP} }
|
||||
|
||||
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
|
||||
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
|
||||
|
||||
@ -126,19 +141,26 @@ static const char *alttermcmd[] = { "dwl_alt_term", NULL };
|
||||
static const char *launchcmd[] = { "dwl_dmenu", NULL };
|
||||
static const char *dispcmd[] = { "wdisplays", NULL };
|
||||
static const char *lockcmd[] = { "swaylock", NULL };
|
||||
|
||||
/* Function key commands */
|
||||
static const char *key_cmd_vol_mute[] = { "dwl_act", "vol_mute", NULL };
|
||||
static const char *key_cmd_vol_lower[] = { "dwl_act", "vol_lower", NULL };
|
||||
static const char *key_cmd_vol_raise[] = { "dwl_act", "vol_raise", NULL };
|
||||
static const char *key_cmd_mic_mute[] = { "dwl_act", "mic_mute", NULL };
|
||||
static const char *key_cmd_bright_low[] = { "dwl_act", "bright_low", NULL };
|
||||
static const char *key_cmd_bright_high[] = { "dwl_act", "bright_high", NULL };
|
||||
static const char *key_cmd_disp[] = { "dwl_act", "disp", NULL };
|
||||
static const char *key_cmd_wlan[] = { "dwl_act", "wlan", NULL };
|
||||
static const char *key_cmd_tools[] = { "dwl_act", "tools", NULL };
|
||||
static const char *key_cmd_search[] = { "dwl_act", "search", NULL };
|
||||
static const char *key_cmd_launch[] = { "dwl_act", "launch", NULL };
|
||||
static const char *key_cmd_explore[] = { "dwl_act", "explore", NULL };
|
||||
ACTKEYS_DECL(vol_mute);
|
||||
ACTKEYS_DECL(vol_lower);
|
||||
ACTKEYS_DECL(vol_raise);
|
||||
ACTKEYS_DECL(mic_mute);
|
||||
ACTKEYS_DECL(bright_low);
|
||||
ACTKEYS_DECL(bright_high);
|
||||
ACTKEYS_DECL(disp);
|
||||
ACTKEYS_DECL(wlan);
|
||||
ACTKEYS_DECL(webcam);
|
||||
ACTKEYS_DECL(tools);
|
||||
ACTKEYS_DECL(search);
|
||||
ACTKEYS_DECL(launch);
|
||||
ACTKEYS_DECL(explore);
|
||||
ACTKEYS_DECL(print);
|
||||
ACTKEYS_DECL(media_toggle);
|
||||
ACTKEYS_DECL(media_stop);
|
||||
ACTKEYS_DECL(media_prev);
|
||||
ACTKEYS_DECL(media_next);
|
||||
|
||||
static const Key keys[] = {
|
||||
/* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
|
||||
@ -173,8 +195,33 @@ static const Key keys[] = {
|
||||
{ MODKEY, XKB_KEY_period, focusmon, {.i = WLR_DIRECTION_RIGHT} },
|
||||
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_less, tagmon, {.i = WLR_DIRECTION_LEFT} },
|
||||
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_greater, tagmon, {.i = WLR_DIRECTION_RIGHT} },
|
||||
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, toggle_touch_input_device,
|
||||
{0} },
|
||||
{ MODKEY|WLR_MODIFIER_CTRL|WLR_MODIFIER_SHIFT, XKB_KEY_Q, quit, {0} },
|
||||
{ MODKEY|WLR_MODIFIER_CTRL|WLR_MODIFIER_SHIFT, XKB_KEY_L, spawn, {.v = lockcmd} },
|
||||
{ WLR_MODIFIER_LOGO, XKB_KEY_l, spawn, {.v = lockcmd } },
|
||||
{ WLR_MODIFIER_LOGO, XKB_KEY_p, spawn, {.v = key_cmd_disp } },
|
||||
/* Ctrl-Alt-Backspace and Ctrl-Alt-Fx used to be handled by X server */
|
||||
{ WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_Terminate_Server, quit, {0} },
|
||||
/* Action buttons */
|
||||
ACTKEYS_MAP(XKB_KEY_XF86AudioMute, vol_mute),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86AudioLowerVolume, vol_lower),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86AudioRaiseVolume, vol_raise),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86AudioMicMute, mic_mute),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86MonBrightnessDown, bright_low),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86MonBrightnessUp, bright_high),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86Display, disp),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86WLAN, wlan),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86WebCam, webcam),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86Tools, tools),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86Search, search),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86LaunchA, launch),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86Explorer, explore),
|
||||
ACTKEYS_MAP(XKB_KEY_Print, print),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86AudioPlay, media_toggle),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86AudioStop, media_stop),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86AudioPrev, media_prev),
|
||||
ACTKEYS_MAP(XKB_KEY_XF86AudioNext, media_next),
|
||||
/* { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, toggle_touch_input_device,
|
||||
{0} },*/
|
||||
TAGKEYS( XKB_KEY_1, XKB_KEY_exclam, 0),
|
||||
TAGKEYS( XKB_KEY_2, XKB_KEY_at, 1),
|
||||
TAGKEYS( XKB_KEY_3, XKB_KEY_numbersign, 2),
|
||||
@ -184,22 +231,7 @@ static const Key keys[] = {
|
||||
TAGKEYS( XKB_KEY_7, XKB_KEY_ampersand, 6),
|
||||
TAGKEYS( XKB_KEY_8, XKB_KEY_asterisk, 7),
|
||||
TAGKEYS( XKB_KEY_9, XKB_KEY_parenleft, 8),
|
||||
{ MODKEY|WLR_MODIFIER_CTRL|WLR_MODIFIER_SHIFT, XKB_KEY_Q, quit, {0} },
|
||||
{ MODKEY|WLR_MODIFIER_CTRL|WLR_MODIFIER_SHIFT, XKB_KEY_L, spawn, {.v = lockcmd} },
|
||||
{ 0 , XKB_KEY_XF86AudioMute, spawn, {.v = key_cmd_vol_mute }},
|
||||
{ 0 , XKB_KEY_XF86AudioLowerVolume, spawn, {.v = key_cmd_vol_lower }},
|
||||
{ 0 , XKB_KEY_XF86AudioRaiseVolume, spawn, {.v = key_cmd_vol_raise }},
|
||||
{ 0 , XKB_KEY_XF86AudioMicMute, spawn, {.v = key_cmd_mic_mute }},
|
||||
{ 0 , XKB_KEY_XF86MonBrightnessDown, spawn, {.v = key_cmd_bright_low }},
|
||||
{ 0 , XKB_KEY_XF86MonBrightnessUp, spawn, {.v = key_cmd_bright_high }},
|
||||
{ 0 , XKB_KEY_XF86Display, spawn, {.v = key_cmd_disp }},
|
||||
{ 0 , XKB_KEY_XF86WLAN, spawn, {.v = key_cmd_wlan }},
|
||||
{ 0 , XKB_KEY_XF86Tools, spawn, {.v = key_cmd_tools }},
|
||||
{ 0 , XKB_KEY_XF86Search, spawn, {.v = key_cmd_search }},
|
||||
{ 0 , XKB_KEY_XF86LaunchA, spawn, {.v = key_cmd_launch }},
|
||||
{ 0 , XKB_KEY_XF86Explorer, spawn, {.v = key_cmd_explore }},
|
||||
/* Ctrl-Alt-Backspace and Ctrl-Alt-Fx used to be handled by X server */
|
||||
{ WLR_MODIFIER_CTRL|WLR_MODIFIER_ALT,XKB_KEY_Terminate_Server, quit, {0} },
|
||||
|
||||
/* Ctrl-Alt-Fx is used to switch to another VT, if you don't know what a VT is
|
||||
* do not remove them.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user