Add --pass-volume-keys option to just pass volume keys

This commit is contained in:
cptpcrd 2020-06-08 09:27:09 -04:00
parent 720e2b4cfc
commit ab07eafbc3
2 changed files with 21 additions and 0 deletions

View File

@ -199,6 +199,11 @@ XF86MonBrightnessUp, XF86MonBrightnessDown.
Allow the following keys to be used while the screen is locked by passing them through:
XF86PowerDown, XF86PowerOff, XF86Sleep.
.TP
.B \-\-pass\-volume\-keys
Allow the following keys to be used while the screen is locked by passing them through:
XF86AudioMute, XF86AudioLowerVolume, XF86AudioRaiseVolume.
.TP
.B \-\-insidevercolor=rrggbbaa
Sets the interior circle color while the password is being verified.

View File

@ -236,6 +236,7 @@ bool skip_repeated_empty_password = false;
bool pass_media_keys = false;
bool pass_screen_keys = false;
bool pass_power_keys = false;
bool pass_volume_keys = false;
// for the rendering thread, so we can clean it up
pthread_t draw_thread;
@ -700,6 +701,17 @@ static void handle_key_press(xcb_key_press_event_t *event) {
}
}
// volume keys
if (pass_volume_keys) {
switch(ksym) {
case XKB_KEY_XF86AudioMute:
case XKB_KEY_XF86AudioLowerVolume:
case XKB_KEY_XF86AudioRaiseVolume:
xcb_send_event(conn, true, screen->root, XCB_EVENT_MASK_BUTTON_PRESS, (char *)event);
return;
}
}
// return/enter/etc
switch (ksym) {
case XKB_KEY_j:
@ -1467,6 +1479,7 @@ int main(int argc, char *argv[]) {
{"pass-media-keys", no_argument, NULL, 601},
{"pass-screen-keys", no_argument, NULL, 602},
{"pass-power-keys", no_argument, NULL, 603},
{"pass-volume-keys", no_argument, NULL, 604},
// bar indicator stuff
{"bar-indicator", no_argument, NULL, 700},
@ -1943,6 +1956,9 @@ int main(int argc, char *argv[]) {
case 603:
pass_power_keys = true;
break;
case 604:
pass_volume_keys = true;
break;
// Bar indicator
case 700: