How to map fn+F8 to F20 key so that mic muting works (hp envy x360)?

Fn+F8

-event15  KEYBOARD_KEY     +35.158s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +35.158s	KEY_UNKNOWN (240) released
-event3   KEYBOARD_KEY     +35.584s	KEY_F20 (190) pressed
 event3   KEYBOARD_KEY     +35.592s	KEY_F20 (190) released
-event15  KEYBOARD_KEY     +35.818s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +35.818s	KEY_UNKNOWN (240) released

F8:

^[[19~ event3   KEYBOARD_KEY     +36.972s	KEY_F8 (66) released
 event3   KEYBOARD_KEY     +37.165s	KEY_F8 (66) pressed
^[[19~ event3   KEYBOARD_KEY     +37.256s	KEY_F8 (66) released
 event3   KEYBOARD_KEY     +38.784s	KEY_F8 (66) pressed
^[[19~ event3   KEYBOARD_KEY     +38.861s	KEY_F8 (66) released
 event3   KEYBOARD_KEY     +41.230s	KEY_LEFTCTRL (29) pressed
 event3   KEYBOARD_KEY     +41.438s	KEY_C (46) pressed
^C

Note that I have to press fn to use normal F8. Because its “on” all the time on my laptop.

What if you add KEYBOARD_KEY_e002=f20 to your keyboard using hwdb? Does that make a difference?

How do I do that?
@pobrn

Can you post the output of cat /sys/class/input/input3/modalias?

cat /sys/class/input/input3/modalias                           1 ✘ 
───────┬────────────────────────────────────────────────────────────────────────
       │ File: /sys/class/input/input3/modalias
───────┼────────────────────────────────────────────────────────────────────────
   1   │ input:b0011v0001p0001eAB41-e0,1,4,11,14,k71,72,73,74,75,76,77,79,7A,7B,
       │ 7C,7D,7E,7F,80,8A,8C,8E,8F,98,9B,9C,9D,9E,9F,A3,A4,A5,A6,AC,AD,B7,B8,B9
       │ ,BE,D4,D9,E0,E1,E2,E3,EC,EE,F0,185,1D1,ram4,l0,1,2,sfw
───────┴────────────────────────────────────────────────────────────────────────

I have an alias for cat=bat so just ignore the rendering

You can create /etc/udev/hwdb.d/90-internal-keyboard.hwdb:

evdev:input:b0011v0001p0001eAB41*
 KEYBOARD_KEY_e002=f20

then run sudo systemd-hwdb update, and then you can reboot.

That also changed nothing :confused:

Run sudo libinput debug-events --show-keycodes again, and see what it prints when you try to trigger the mic mute.

1 Like

Again that its unknown :confused: :

 event15  KEYBOARD_KEY     +0.231s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +0.231s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +1.098s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +1.098s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +1.770s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +1.770s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +2.368s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +2.368s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +3.018s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +3.018s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +3.728s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +3.728s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +4.464s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +4.464s	KEY_UNKNOWN (240) released
-event3   KEYBOARD_KEY     +7.563s	KEY_LEFTCTRL (29) pressed
 event3   KEYBOARD_KEY     +7.667s	KEY_C (46) pressed
^C

I think I misunderstood something.

From this I gathered that pressing only “F8” on the keyboard results in a “normal” F8 key press.

And from this I gathered that you press Fn+F8 if you want to trigger the microphone mute, and that’s when you get the KEY_UNKNOWNs.

Can you clarify?

So my laptop has F keys, and keys that are on Fs but also have specials tasks, just like on any other laptop. They change the brightness, volume etc. BUT when I JUST press an F key on my laptop its going to use its abnormal function like changing the brightness. I HAVE TO press the fn button to in a way disable the fn behaviour itself so that for example when Im trying to change a name of a file. I have to press fn+F2 on my keyboard for it to act like a normal F2 key, if I were to simply push the F2 labeled button, it would change my screens brightness. Does that make sense?

Here is me pressing simply F8 labeled button, which should trigger mic muting:

 event15  KEYBOARD_KEY     +1.711s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +1.711s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +2.118s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +2.118s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +2.398s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +2.398s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +2.625s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +2.625s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +2.851s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +2.851s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +3.078s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +3.078s	KEY_UNKNOWN (240) released
 event15  KEYBOARD_KEY     +3.305s	KEY_UNKNOWN (240) pressed
 event15  KEYBOARD_KEY     +3.305s	KEY_UNKNOWN (240) released
-event3   KEYBOARD_KEY     +4.524s	KEY_LEFTCTRL (29) pressed
 event3   KEYBOARD_KEY     +5.465s	KEY_C (46) pressed
^C

This is when I do fn+F8 which would make it function as a normal F8 button on a normal keyboard:

^[[19~ event3   KEYBOARD_KEY     +8.482s	KEY_F8 (66) released
 event3   KEYBOARD_KEY     +8.498s	KEY_F8 (66) pressed
^[[19~ event3   KEYBOARD_KEY     +8.688s	KEY_F8 (66) released
 event3   KEYBOARD_KEY     +8.715s	KEY_F8 (66) pressed
^[[19~ event3   KEYBOARD_KEY     +8.809s	KEY_F8 (66) released
 event3   KEYBOARD_KEY     +8.830s	KEY_F8 (66) pressed
^[[19~ event3   KEYBOARD_KEY     +8.913s	KEY_F8 (66) released
 event3   KEYBOARD_KEY     +8.923s	KEY_F8 (66) pressed
^[[19~ event3   KEYBOARD_KEY     +9.006s	KEY_F8 (66) released
 event3   KEYBOARD_KEY     +9.021s	KEY_F8 (66) pressed
^[[19~ event3   KEYBOARD_KEY     +9.104s	KEY_F8 (66) released
 event3   KEYBOARD_KEY     +9.733s	KEY_LEFTCTRL (29) pressed
 event3   KEYBOARD_KEY     +10.137s	KEY_C (46) pressed
^C

Is that clear now?

It’s clear now, thanks. What’s the output of udevadm hwdb -t evdev:$(cat /sys/class/input/input3/modalias)?

I should thank you for helping me :smiley:

udevadm hwdb -t evdev:$(cat /sys/class/input/input3/modalias)
KEYBOARD_KEY_e002=f20

Install the evtest package, then run sudo evtest /dev/input/event3 and just press the F8 key, what does it print?

Here, I just pressed the F8 key which should toggle mic mute:

    ~  sudo evtest /dev/input/event3                            ✔  18s  
Input driver version is 1.0.1
Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab41
Input device name: "AT Translated Set 2 keyboard"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 1 (KEY_ESC)
    Event code 2 (KEY_1)
    Event code 3 (KEY_2)
    Event code 4 (KEY_3)
    Event code 5 (KEY_4)
    Event code 6 (KEY_5)
    Event code 7 (KEY_6)
    Event code 8 (KEY_7)
    Event code 9 (KEY_8)
    Event code 10 (KEY_9)
    Event code 11 (KEY_0)
    Event code 12 (KEY_MINUS)
    Event code 13 (KEY_EQUAL)
    Event code 14 (KEY_BACKSPACE)
    Event code 15 (KEY_TAB)
    Event code 16 (KEY_Q)
    Event code 17 (KEY_W)
    Event code 18 (KEY_E)
    Event code 19 (KEY_R)
    Event code 20 (KEY_T)
    Event code 21 (KEY_Y)
    Event code 22 (KEY_U)
    Event code 23 (KEY_I)
    Event code 24 (KEY_O)
    Event code 25 (KEY_P)
    Event code 26 (KEY_LEFTBRACE)
    Event code 27 (KEY_RIGHTBRACE)
    Event code 28 (KEY_ENTER)
    Event code 29 (KEY_LEFTCTRL)
    Event code 30 (KEY_A)
    Event code 31 (KEY_S)
    Event code 32 (KEY_D)
    Event code 33 (KEY_F)
    Event code 34 (KEY_G)
    Event code 35 (KEY_H)
    Event code 36 (KEY_J)
    Event code 37 (KEY_K)
    Event code 38 (KEY_L)
    Event code 39 (KEY_SEMICOLON)
    Event code 40 (KEY_APOSTROPHE)
    Event code 41 (KEY_GRAVE)
    Event code 42 (KEY_LEFTSHIFT)
    Event code 43 (KEY_BACKSLASH)
    Event code 44 (KEY_Z)
    Event code 45 (KEY_X)
    Event code 46 (KEY_C)
    Event code 47 (KEY_V)
    Event code 48 (KEY_B)
    Event code 49 (KEY_N)
    Event code 50 (KEY_M)
    Event code 51 (KEY_COMMA)
    Event code 52 (KEY_DOT)
    Event code 53 (KEY_SLASH)
    Event code 54 (KEY_RIGHTSHIFT)
    Event code 55 (KEY_KPASTERISK)
    Event code 56 (KEY_LEFTALT)
    Event code 57 (KEY_SPACE)
    Event code 58 (KEY_CAPSLOCK)
    Event code 59 (KEY_F1)
    Event code 60 (KEY_F2)
    Event code 61 (KEY_F3)
    Event code 62 (KEY_F4)
    Event code 63 (KEY_F5)
    Event code 64 (KEY_F6)
    Event code 65 (KEY_F7)
    Event code 66 (KEY_F8)
    Event code 67 (KEY_F9)
    Event code 68 (KEY_F10)
    Event code 69 (KEY_NUMLOCK)
    Event code 70 (KEY_SCROLLLOCK)
    Event code 71 (KEY_KP7)
    Event code 72 (KEY_KP8)
    Event code 73 (KEY_KP9)
    Event code 74 (KEY_KPMINUS)
    Event code 75 (KEY_KP4)
    Event code 76 (KEY_KP5)
    Event code 77 (KEY_KP6)
    Event code 78 (KEY_KPPLUS)
    Event code 79 (KEY_KP1)
    Event code 80 (KEY_KP2)
    Event code 81 (KEY_KP3)
    Event code 82 (KEY_KP0)
    Event code 83 (KEY_KPDOT)
    Event code 85 (KEY_ZENKAKUHANKAKU)
    Event code 86 (KEY_102ND)
    Event code 87 (KEY_F11)
    Event code 88 (KEY_F12)
    Event code 89 (KEY_RO)
    Event code 90 (KEY_KATAKANA)
    Event code 91 (KEY_HIRAGANA)
    Event code 92 (KEY_HENKAN)
    Event code 93 (KEY_KATAKANAHIRAGANA)
    Event code 94 (KEY_MUHENKAN)
    Event code 95 (KEY_KPJPCOMMA)
    Event code 96 (KEY_KPENTER)
    Event code 97 (KEY_RIGHTCTRL)
    Event code 98 (KEY_KPSLASH)
    Event code 99 (KEY_SYSRQ)
    Event code 100 (KEY_RIGHTALT)
    Event code 102 (KEY_HOME)
    Event code 103 (KEY_UP)
    Event code 104 (KEY_PAGEUP)
    Event code 105 (KEY_LEFT)
    Event code 106 (KEY_RIGHT)
    Event code 107 (KEY_END)
    Event code 108 (KEY_DOWN)
    Event code 109 (KEY_PAGEDOWN)
    Event code 110 (KEY_INSERT)
    Event code 111 (KEY_DELETE)
    Event code 112 (KEY_MACRO)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 116 (KEY_POWER)
    Event code 117 (KEY_KPEQUAL)
    Event code 118 (KEY_KPPLUSMINUS)
    Event code 119 (KEY_PAUSE)
    Event code 121 (KEY_KPCOMMA)
    Event code 122 (KEY_HANGUEL)
    Event code 123 (KEY_HANJA)
    Event code 124 (KEY_YEN)
    Event code 125 (KEY_LEFTMETA)
    Event code 126 (KEY_RIGHTMETA)
    Event code 127 (KEY_COMPOSE)
    Event code 128 (KEY_STOP)
    Event code 140 (KEY_CALC)
    Event code 142 (KEY_SLEEP)
    Event code 143 (KEY_WAKEUP)
    Event code 155 (KEY_MAIL)
    Event code 156 (KEY_BOOKMARKS)
    Event code 157 (KEY_COMPUTER)
    Event code 158 (KEY_BACK)
    Event code 159 (KEY_FORWARD)
    Event code 163 (KEY_NEXTSONG)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 165 (KEY_PREVIOUSSONG)
    Event code 166 (KEY_STOPCD)
    Event code 172 (KEY_HOMEPAGE)
    Event code 173 (KEY_REFRESH)
    Event code 183 (KEY_F13)
    Event code 184 (KEY_F14)
    Event code 185 (KEY_F15)
    Event code 217 (KEY_SEARCH)
    Event code 226 (KEY_MEDIA)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
  Event type 17 (EV_LED)
    Event code 0 (LED_NUML) state 0
    Event code 1 (LED_CAPSL) state 0
    Event code 2 (LED_SCROLLL) state 0
Key repeat handling:
  Repeat type 20 (EV_REP)
    Repeat code 0 (REP_DELAY)
      Value    250
    Repeat code 1 (REP_PERIOD)
      Value     33
Properties:
Testing ... (interrupt to exit)
Event: time 1611006879.532200, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1c
Event: time 1611006879.532200, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time 1611006879.532200, -------------- SYN_REPORT ------------
Event: time 1611006882.396465, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1611006882.396465, -------------- SYN_REPORT ------------
Event: time 1611006882.403025, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1611006882.403025, -------------- SYN_REPORT ------------
Event: time 1611006882.405807, type 4 (EV_MSC), code 4 (MSC_SCAN), value 58
Event: time 1611006882.405807, -------------- SYN_REPORT ------------
Event: time 1611006882.590435, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1611006882.590435, -------------- SYN_REPORT ------------
Event: time 1611006882.596763, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1611006882.596763, -------------- SYN_REPORT ------------
Event: time 1611006882.601030, type 4 (EV_MSC), code 4 (MSC_SCAN), value 58
Event: time 1611006882.601030, -------------- SYN_REPORT ------------
Event: time 1611006882.781233, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1611006882.781233, -------------- SYN_REPORT ------------
Event: time 1611006882.789796, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1611006882.789796, -------------- SYN_REPORT ------------
Event: time 1611006882.792977, type 4 (EV_MSC), code 4 (MSC_SCAN), value 58
Event: time 1611006882.792977, -------------- SYN_REPORT ------------
Event: time 1611006882.973759, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1611006882.973759, -------------- SYN_REPORT ------------
Event: time 1611006882.980896, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1611006882.980896, -------------- SYN_REPORT ------------
Event: time 1611006882.984224, type 4 (EV_MSC), code 4 (MSC_SCAN), value 58
Event: time 1611006882.984224, -------------- SYN_REPORT ------------
Event: time 1611006884.147059, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1611006884.147059, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1611006884.147059, -------------- SYN_REPORT ------------
Event: time 1611006884.211283, type 4 (EV_MSC), code 4 (MSC_SCAN), value 2e
Event: time 1611006884.211283, type 1 (EV_KEY), code 46 (KEY_C), value 1
Event: time 1611006884.211283, -------------- SYN_REPORT ------------
^C% 

I guess what we could try is changing KEYBOARD_KEY_e002=f20 to KEYBOARD_KEY_82=f20, then run sudo systemd-hwdb update, then reboot for good measure.

1 Like

IT WORKED!!! Altho the little LED thats on the key does not light up. I cant see my mic being muted/unmuted not! Thank you! Do you think there may be a way to also make that LED work? A similar button that toggle my camera works and the LED also works

The LED probably needs HP specific calls into the firmware. I cannot really help you with that. Most display environments can show the microphone state, which is not as good as an LED, but still something, I guess.

1 Like

Thats okay. Thank you very very much for help!!! :smiley:

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.