From 2dd33ffec5e126445a2e9bf17f3113e1195ef0ec Mon Sep 17 00:00:00 2001 From: Tim Crawford Date: Fri, 2 Jun 2023 09:21:11 -0600 Subject: [PATCH] Add "Call Mute" combo key for darp9 The proprietary firmware for the darp9 adds the mic mute hotkey using the new "Call Mute" hotkey from Windows 11 22H2, which is mapped to `Super+Alt+K` [1]. Match the behavior in open firmware. [1]: https://support.microsoft.com/en-us/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec#WindowsVersion=Windows_11 Signed-off-by: Tim Crawford --- src/board/system76/common/kbscan.c | 12 ++++++++++++ src/common/include/common/keymap.h | 3 +++ src/keyboard/system76/15in_102/keymap/darp9.c | 8 +++++--- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/board/system76/common/kbscan.c b/src/board/system76/common/kbscan.c index 6bb46d3..05e7afc 100644 --- a/src/board/system76/common/kbscan.c +++ b/src/board/system76/common/kbscan.c @@ -255,6 +255,18 @@ bool kbscan_press(uint16_t key, bool pressed, uint8_t *layer) { } } break; + case COMBO_CALL_MUTE: + if (kbscan_enabled) { + if (pressed) { + kbc_scancode(K_LEFT_SUPER, true); + kbc_scancode(K_LEFT_ALT, true); + kbc_scancode(K_K, true); + kbc_scancode(K_LEFT_SUPER, false); + kbc_scancode(K_LEFT_ALT, false); + kbc_scancode(K_K, false); + } + } + break; } break; case (KT_SCI): diff --git a/src/common/include/common/keymap.h b/src/common/include/common/keymap.h index 9b3ac02..d57e7c7 100644 --- a/src/common/include/common/keymap.h +++ b/src/common/include/common/keymap.h @@ -57,6 +57,9 @@ uint16_t keymap_translate(uint16_t key); #define K_PRINT_SCREEN (KT_COMBO | COMBO_PRINT_SCREEN) #define COMBO_PAUSE 2 #define K_PAUSE (KT_COMBO | COMBO_PAUSE) +// Windows 11 22H2 "Call Mute" hotkey +#define COMBO_CALL_MUTE 3 +#define K_CALL_MUTE (KT_COMBO | COMBO_CALL_MUTE) // SCI #define KT_SCI (0x4000) diff --git a/src/keyboard/system76/15in_102/keymap/darp9.c b/src/keyboard/system76/15in_102/keymap/darp9.c index 4ad83c9..845494b 100644 --- a/src/keyboard/system76/15in_102/keymap/darp9.c +++ b/src/keyboard/system76/15in_102/keymap/darp9.c @@ -1,8 +1,10 @@ // SPDX-License-Identifier: GPL-3.0-only // Darter Pro 9 layout -// Nearly identical to the default layout, but replaces `K_KBD_COLOR` with -// `K_KBD_BKL` as the RGB keyboard option was removed. +// Nearly identical to the default layout. Replaces `K_KBD_COLOR` with +// `K_KBD_BKL` as the RGB keyboard option was removed. Replaces +// `K_DISPLAY_TOGGLE` with `K_CALL_MUTE` to match new keyboard legends and +// proprietary firmware behavior. #include @@ -17,7 +19,7 @@ LAYOUT( K_LEFT_CTRL, KT_FN, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_APP, K_RIGHT_CTRL, K_LEFT, K_DOWN, K_RIGHT, K_NUM_0, K_NUM_PERIOD ), LAYOUT( - K_ESC, K_TOUCHPAD, K_DISPLAY_TOGGLE, K_MUTE, K_F4, K_VOLUME_DOWN, K_VOLUME_UP, K_DISPLAY_MODE, K_BRIGHTNESS_DOWN, K_BRIGHTNESS_UP, K_CAMERA_TOGGLE, K_AIRPLANE_MODE, K_SUSPEND, K_PRINT_SCREEN, K_SCROLL_LOCK, K_DEL, K_HOME, K_END, K_PAUSE, K_PAUSE, + K_ESC, K_TOUCHPAD, K_CALL_MUTE, K_MUTE, K_F4, K_VOLUME_DOWN, K_VOLUME_UP, K_DISPLAY_MODE, K_BRIGHTNESS_DOWN, K_BRIGHTNESS_UP, K_CAMERA_TOGGLE, K_AIRPLANE_MODE, K_SUSPEND, K_PRINT_SCREEN, K_SCROLL_LOCK, K_DEL, K_HOME, K_END, K_PAUSE, K_PAUSE, K_PLAY_PAUSE, K_FAN_TOGGLE, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, K_BKSP, K_NUM_LOCK, K_KBD_BKL, K_KBD_TOGGLE, K_KBD_DOWN, K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_U, K_I, K_O, K_P, K_BRACE_OPEN, K_BRACE_CLOSE, K_BACKSLASH, K_NUM_7, K_NUM_8, K_NUM_9, K_KBD_UP, K_CAPS, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_ENTER, K_NUM_4, K_NUM_5, K_NUM_6,