i3lock-color

The world's most popular non-default computer lockscreen.
Index Commits Files Refs README LICENSE
commit f1903bdaf0c822aa6322698bdefc5b4ab4bed512
parent aeb9982ded73b55d317f0323a138bffea4cda3eb
Author: Kyle Westhaus <kwesthaus@users.noreply.github.com>
Date:   Fri, 31 Mar 2023 00:31:10 -0700

Support for XF86AudioMicMute (#273)

* Feature: Add XF86AudioMicMute to passed media keys
* Feature: Add shell command option for XF86AudioMicMute
Diffstat:
Mi3lock-bash | 1+
Mi3lock-zsh | 1+
Mi3lock.1 | 5++++-
Mi3lock.c | 12++++++++++++
4 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/i3lock-bash b/i3lock-bash
@@ -91,6 +91,7 @@ _i3lock() {
   "--cmd-audio-mute"
   "--cmd-volume-up"
   "--cmd-volume-down"
+  "--cmd-mic-mute"
   "--cmd-power-down"
   "--cmd-power-off"
   "--cmd-power-sleep"
diff --git a/i3lock-zsh b/i3lock-zsh
@@ -93,6 +93,7 @@ _i3lock() {
     "--cmd-volume-up[Command for XF86AudioRaiseVolume]"
     "--cmd-volume-down[Command for XF86AudioLowerVolume]"
     "--cmd-power-down[Command for XF86PowerDown] "
+    "--cmd-mic-mute[Command for XF86AudioMicMute]"
     "--cmd-power-off[Command for XF86PowerOff]"
     "--cmd-power-sleep[Command for XF86Sleep]"
     # Bar mode
diff --git a/i3lock.1 b/i3lock.1
@@ -383,7 +383,8 @@ passing them through:
 .RS
 .IP \[bu] 2
 media - XF86AudioPlay, XF86AudioPause, XF86AudioStop, XF86AudioPrev,
-        XF86AudioNext, XF86AudioMute, XF86AudioLowerVolume, XF86AudioRaiseVolume
+        XF86AudioNext, XF86AudioMute, XF86AudioLowerVolume, XF86AudioRaiseVolume,
+        XF86AudioMicMute
 .IP \[bu]
 screen - XF86MonBrightnessUp, XF86MonBrightnessDown
 .IP \[bu]
@@ -422,6 +423,8 @@ volume\-up - XF86AudioRaiseVolume
 .IP \[bu]
 volume\-down - XF86AudioLowerVolume
 .IP \[bu]
+mic\-mute - XF86AudioMicMute
+.IP \[bu]
 power\-down - XF86PowerDown
 .IP \[bu]
 power\-off - XF86PowerOff
diff --git a/i3lock.c b/i3lock.c
@@ -276,6 +276,7 @@ char* cmd_media_prev = NULL;
 char* cmd_audio_mute = NULL;
 char* cmd_volume_up = NULL;
 char* cmd_volume_down = NULL;
+char* cmd_mic_mute = NULL;
 
 char* cmd_power_down = NULL;
 char* cmd_power_off = NULL;
@@ -784,6 +785,12 @@ static void handle_key_press(xcb_key_press_event_t *event) {
                     return;
                 }
                 break;
+            case XKB_KEY_XF86AudioMicMute:
+                if (cmd_mic_mute) {
+                    system(cmd_mic_mute);
+                    return;
+                }
+                break;
             case XKB_KEY_XF86PowerDown:
                 if (cmd_power_down) {
                     system(cmd_power_down);
@@ -816,6 +823,7 @@ static void handle_key_press(xcb_key_press_event_t *event) {
             case XKB_KEY_XF86AudioMute:
             case XKB_KEY_XF86AudioLowerVolume:
             case XKB_KEY_XF86AudioRaiseVolume:
+            case XKB_KEY_XF86AudioMicMute:
                 xcb_send_event(conn, true, screen->root, XCB_EVENT_MASK_BUTTON_PRESS, (char *)event);
                 return;
         }
@@ -1674,6 +1682,7 @@ int main(int argc, char *argv[]) {
         {"cmd-audio-mute", required_argument, NULL, 640},
         {"cmd-volume-up", required_argument, NULL, 641},
         {"cmd-volume-down", required_argument, NULL, 642},
+        {"cmd-mic-mute", required_argument, NULL, 643},
 
         {"cmd-power-down", required_argument, NULL, 650},
         {"cmd-power-off", required_argument, NULL, 651},
@@ -2276,6 +2285,9 @@ int main(int argc, char *argv[]) {
             case 642:
                 cmd_volume_down = optarg;
                 break;
+            case 643:
+                cmd_mic_mute = optarg;
+                break;
 
             case 650:
                 cmd_power_down = optarg;