SUMMARY I use keyboard which is able to produce key codes for extra function keys and F24 in particular. And it isn't possible to set shortcut using this key. STEPS TO REPRODUCE 1. Go to "Shortcuts" 2. Open any action to set shortcut 3. Send key combination which contains F24 OBSERVED RESULT Key tester ignores F24 key and shows just modifier (if any). EXPECTED RESULT Correctly enter key combination with F24 key. SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.18.5 KDE Frameworks Version: 5.70.0 Qt Version: 5.14.2 Kernel Version: 5.4.43-1-lts OS Type: 64-bit
Can confirm, this issue still exists in plasma 6
Can confirm on wayland, master
Actually could you provide the output of `xmodmap -pke`? KDE cannot handle keys not defined in the keyboard mapping, and I think that is causing the issue.
I don't see F24 here, however I don't see F13-F23 either but I can map those to shortcuts anyway. Those keycodes could be defined as XF86Whatever but I am not sure about that. $ xmodmap -pke keycode 8 = keycode 9 = Escape NoSymbol Escape keycode 10 = 1 exclam 1 exclam keycode 11 = 2 at 2 quotedbl keycode 12 = 3 numbersign 3 numerosign keycode 13 = 4 dollar 4 semicolon keycode 14 = 5 percent 5 percent keycode 15 = 6 asciicircum 6 colon keycode 16 = 7 ampersand 7 question keycode 17 = 8 asterisk 8 asterisk U20BD keycode 18 = 9 parenleft 9 parenleft keycode 19 = 0 parenright 0 parenright keycode 20 = minus underscore minus underscore keycode 21 = equal plus equal plus keycode 22 = BackSpace BackSpace BackSpace BackSpace NoSymbol NoSymbol Terminate_Server NoSymbol NoSymbol Terminate_Server keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab keycode 24 = q Q Cyrillic_shorti Cyrillic_SHORTI keycode 25 = w W Cyrillic_tse Cyrillic_TSE keycode 26 = e E Cyrillic_u Cyrillic_U keycode 27 = r R Cyrillic_ka Cyrillic_KA keycode 28 = t T Cyrillic_ie Cyrillic_IE keycode 29 = y Y Cyrillic_en Cyrillic_EN keycode 30 = u U Cyrillic_ghe Cyrillic_GHE keycode 31 = i I Cyrillic_sha Cyrillic_SHA keycode 32 = o O Cyrillic_shcha Cyrillic_SHCHA keycode 33 = p P Cyrillic_ze Cyrillic_ZE keycode 34 = bracketleft braceleft Cyrillic_ha Cyrillic_HA keycode 35 = bracketright braceright Cyrillic_hardsign Cyrillic_HARDSIGN keycode 36 = Return NoSymbol Return keycode 37 = Control_L NoSymbol Control_L keycode 38 = a A Cyrillic_ef Cyrillic_EF keycode 39 = s S Cyrillic_yeru Cyrillic_YERU keycode 40 = d D Cyrillic_ve Cyrillic_VE keycode 41 = f F Cyrillic_a Cyrillic_A keycode 42 = g G Cyrillic_pe Cyrillic_PE keycode 43 = h H Cyrillic_er Cyrillic_ER keycode 44 = j J Cyrillic_o Cyrillic_O keycode 45 = k K Cyrillic_el Cyrillic_EL keycode 46 = l L Cyrillic_de Cyrillic_DE keycode 47 = semicolon colon Cyrillic_zhe Cyrillic_ZHE keycode 48 = apostrophe quotedbl Cyrillic_e Cyrillic_E keycode 49 = grave asciitilde Cyrillic_io Cyrillic_IO keycode 50 = Shift_L NoSymbol Shift_L keycode 51 = backslash bar backslash slash keycode 52 = z Z Cyrillic_ya Cyrillic_YA keycode 53 = x X Cyrillic_che Cyrillic_CHE keycode 54 = c C Cyrillic_es Cyrillic_ES keycode 55 = v V Cyrillic_em Cyrillic_EM keycode 56 = b B Cyrillic_i Cyrillic_I keycode 57 = n N Cyrillic_te Cyrillic_TE keycode 58 = m M Cyrillic_softsign Cyrillic_SOFTSIGN keycode 59 = comma less Cyrillic_be Cyrillic_BE keycode 60 = period greater Cyrillic_yu Cyrillic_YU keycode 61 = slash question period comma keycode 62 = Shift_R NoSymbol Shift_R keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab KP_Multiply KP_Multiply XF86ClearGrab keycode 64 = Alt_L Meta_L Alt_L Meta_L keycode 65 = space NoSymbol space keycode 66 = ISO_Next_Group Caps_Lock ISO_Next_Group Caps_Lock keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1 F1 F1 XF86Switch_VT_1 keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2 F2 F2 XF86Switch_VT_2 keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3 F3 F3 XF86Switch_VT_3 keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4 F4 F4 XF86Switch_VT_4 keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5 F5 F5 XF86Switch_VT_5 keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6 F6 F6 XF86Switch_VT_6 keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7 F7 F7 XF86Switch_VT_7 keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8 F8 F8 XF86Switch_VT_8 keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9 F9 F9 XF86Switch_VT_9 keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10 F10 F10 XF86Switch_VT_10 keycode 77 = Num_Lock NoSymbol Num_Lock keycode 78 = Scroll_Lock NoSymbol Scroll_Lock keycode 79 = KP_Home KP_7 KP_Home KP_7 keycode 80 = KP_Up KP_8 KP_Up KP_8 keycode 81 = KP_Prior KP_9 KP_Prior KP_9 keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode KP_Subtract KP_Subtract XF86Prev_VMode keycode 83 = KP_Left KP_4 KP_Left KP_4 keycode 84 = KP_Begin KP_5 KP_Begin KP_5 keycode 85 = KP_Right KP_6 KP_Right KP_6 keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode KP_Add KP_Add XF86Next_VMode keycode 87 = KP_End KP_1 KP_End KP_1 keycode 88 = KP_Down KP_2 KP_Down KP_2 keycode 89 = KP_Next KP_3 KP_Next KP_3 keycode 90 = KP_Insert KP_0 KP_Insert KP_0 keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Separator keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift keycode 93 = keycode 94 = less greater slash bar bar brokenbar keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11 F11 F11 XF86Switch_VT_11 keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12 F12 F12 XF86Switch_VT_12 keycode 97 = keycode 98 = Katakana NoSymbol Katakana keycode 99 = Hiragana NoSymbol Hiragana keycode 100 = Henkan_Mode NoSymbol Henkan_Mode keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana keycode 102 = Muhenkan NoSymbol Muhenkan keycode 103 = keycode 104 = KP_Enter NoSymbol KP_Enter keycode 105 = Control_R NoSymbol Control_R keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab KP_Divide KP_Divide XF86Ungrab keycode 107 = Print Sys_Req Print Sys_Req keycode 108 = Alt_R Meta_R Alt_R Meta_R keycode 109 = Linefeed NoSymbol Linefeed keycode 110 = Home NoSymbol Home keycode 111 = Up NoSymbol Up keycode 112 = Prior NoSymbol Prior keycode 113 = Left NoSymbol Left keycode 114 = Right NoSymbol Right keycode 115 = End NoSymbol End keycode 116 = Down NoSymbol Down keycode 117 = Next NoSymbol Next keycode 118 = Insert NoSymbol Insert keycode 119 = Delete NoSymbol Delete keycode 120 = keycode 121 = XF86AudioMute NoSymbol XF86AudioMute keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume keycode 124 = XF86PowerOff NoSymbol XF86PowerOff keycode 125 = KP_Equal NoSymbol KP_Equal keycode 126 = plusminus NoSymbol plusminus keycode 127 = Pause Break Pause Break keycode 128 = XF86LaunchA NoSymbol XF86LaunchA keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal keycode 130 = Hangul NoSymbol Hangul keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja keycode 132 = keycode 133 = Super_L NoSymbol Super_L keycode 134 = Super_R NoSymbol Super_R keycode 135 = Multi_key Multi_key Multi_key Multi_key keycode 136 = Cancel NoSymbol Cancel keycode 137 = Redo NoSymbol Redo keycode 138 = SunProps NoSymbol SunProps keycode 139 = Undo NoSymbol Undo keycode 140 = SunFront NoSymbol SunFront keycode 141 = XF86Copy NoSymbol XF86Copy keycode 142 = XF86Open NoSymbol XF86Open keycode 143 = XF86Paste NoSymbol XF86Paste keycode 144 = Find NoSymbol Find keycode 145 = XF86Cut NoSymbol XF86Cut keycode 146 = Help NoSymbol Help keycode 147 = XF86MenuKB NoSymbol XF86MenuKB keycode 148 = XF86Calculator NoSymbol XF86Calculator keycode 149 = keycode 150 = XF86Sleep NoSymbol XF86Sleep keycode 151 = XF86WakeUp NoSymbol XF86WakeUp keycode 152 = XF86Explorer NoSymbol XF86Explorer keycode 153 = XF86Send NoSymbol XF86Send keycode 154 = keycode 155 = XF86Xfer NoSymbol XF86Xfer keycode 156 = XF86Launch1 NoSymbol XF86Launch1 keycode 157 = XF86Launch2 NoSymbol XF86Launch2 keycode 158 = XF86WWW NoSymbol XF86WWW keycode 159 = XF86DOS NoSymbol XF86DOS keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver keycode 161 = XF86RotateWindows NoSymbol XF86RotateWindows keycode 162 = XF86TaskPane NoSymbol XF86TaskPane keycode 163 = XF86Mail NoSymbol XF86Mail keycode 164 = XF86Favorites NoSymbol XF86Favorites keycode 165 = XF86MyComputer NoSymbol XF86MyComputer keycode 166 = XF86Back NoSymbol XF86Back keycode 167 = XF86Forward NoSymbol XF86Forward keycode 168 = keycode 169 = XF86Eject NoSymbol XF86Eject keycode 170 = XF86Eject NoSymbol XF86Eject keycode 171 = XF86AudioNext NoSymbol XF86AudioNext keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind keycode 177 = XF86Phone NoSymbol XF86Phone keycode 178 = keycode 179 = XF86Tools NoSymbol XF86Tools keycode 180 = XF86HomePage NoSymbol XF86HomePage keycode 181 = XF86Reload NoSymbol XF86Reload keycode 182 = XF86Close NoSymbol XF86Close keycode 183 = keycode 184 = keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown keycode 187 = parenleft NoSymbol parenleft keycode 188 = parenright NoSymbol parenright keycode 189 = XF86New NoSymbol XF86New keycode 190 = Redo NoSymbol Redo keycode 191 = XF86Tools NoSymbol XF86Tools keycode 192 = XF86Launch5 NoSymbol XF86Launch5 keycode 193 = XF86Launch6 NoSymbol XF86Launch6 keycode 194 = XF86Launch7 NoSymbol XF86Launch7 keycode 195 = XF86Launch8 NoSymbol XF86Launch8 keycode 196 = XF86Launch9 NoSymbol XF86Launch9 keycode 197 = keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff keycode 202 = keycode 203 = ISO_Level5_Shift NoSymbol ISO_Level5_Shift keycode 204 = NoSymbol Alt_L NoSymbol Alt_L keycode 205 = NoSymbol Meta_L NoSymbol Meta_L keycode 206 = NoSymbol Super_L NoSymbol Super_L keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay keycode 209 = XF86AudioPause NoSymbol XF86AudioPause keycode 210 = XF86Launch3 NoSymbol XF86Launch3 keycode 211 = XF86Launch4 NoSymbol XF86Launch4 keycode 212 = XF86LaunchB NoSymbol XF86LaunchB keycode 213 = XF86Suspend NoSymbol XF86Suspend keycode 214 = XF86Close NoSymbol XF86Close keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay keycode 216 = XF86AudioForward NoSymbol XF86AudioForward keycode 217 = keycode 218 = Print NoSymbol Print keycode 219 = keycode 220 = XF86WebCam NoSymbol XF86WebCam keycode 221 = XF86AudioPreset NoSymbol XF86AudioPreset keycode 222 = keycode 223 = XF86Mail NoSymbol XF86Mail keycode 224 = XF86Messenger NoSymbol XF86Messenger keycode 225 = XF86Search NoSymbol XF86Search keycode 226 = XF86Go NoSymbol XF86Go keycode 227 = XF86Finance NoSymbol XF86Finance keycode 228 = XF86Game NoSymbol XF86Game keycode 229 = XF86Shop NoSymbol XF86Shop keycode 230 = keycode 231 = Cancel NoSymbol Cancel keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia keycode 235 = XF86Display NoSymbol XF86Display keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp keycode 239 = XF86Send NoSymbol XF86Send keycode 240 = XF86Reply NoSymbol XF86Reply keycode 241 = XF86MailForward NoSymbol XF86MailForward keycode 242 = XF86Save NoSymbol XF86Save keycode 243 = XF86Documents NoSymbol XF86Documents keycode 244 = XF86Battery NoSymbol XF86Battery keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth keycode 246 = XF86WLAN NoSymbol XF86WLAN keycode 247 = XF86UWB NoSymbol XF86UWB keycode 248 = keycode 249 = XF86Next_VMode NoSymbol XF86Next_VMode keycode 250 = XF86Prev_VMode NoSymbol XF86Prev_VMode keycode 251 = XF86MonBrightnessCycle NoSymbol XF86MonBrightnessCycle keycode 252 = XF86BrightnessAuto NoSymbol XF86BrightnessAuto keycode 253 = XF86DisplayOff NoSymbol XF86DisplayOff keycode 254 = XF86WWAN NoSymbol XF86WWAN keycode 255 = XF86RFKill NoSymbol XF86RFKill
(In reply to gudvinr+kde from comment #4) > I don't see F24 here, however I don't see F13-F23 either but I can map those > to shortcuts anyway. I think those gets mapped to XF86 keys. So I think that F19 also wouldn't work for you, because its keycode is unmapped.
But that doesn't explain F24 not working on Wayland then
I'll take a (In reply to gudvinr+kde from comment #6) > But that doesn't explain F24 not working on Wayland then I'll take a deeper look. Might be the same issue as 475574. But I am afraid the earliest version you can expect to see a patch would be 6.1, since 6.0 is already just around the corner.
If that would be the only issue Wayland has, I could swallow it and redefine QMK configuration. It's not urgent by any means. That's actually what I did when I first had this issue on X11 so it didn't really bother for a long time. Although less issues is always better.
(In reply to fanzhuyifan from comment #5) > I think those gets mapped to XF86 keys. So I think that F19 also wouldn't > work for you, because its keycode is unmapped. Indeed. With remapping it begins to work: $ xmodmap -e "keycode 197 = F19" $ xmodmap -e "keycode 202 = F24"
I want to talk about how your F keys goes to 24. Forget about the bug. 😲
(In reply to etoven from comment #10) > I want to talk about how your F keys goes to 24. Forget about the bug. 😲 You don't need keyboard that has F* keys to go to 24. Keyboard doesn't really know what key is pressed in same sense that OS does. Keyboard sends scancodes which might be translated as any key in OS. In most notebook keyboards Fn toggles F* row between F1-F12 keys and "action" keys like brightness control, volume control, etc. To simplify, these "action keys" have same scancodes that F13-F24 would have if you had them present. And you can remap scancodes to be registered by OS as F13-F24 keys yourself, if you want to. But in my case, I use QMK keyboard that sends scancodes for F13-F24 to avoid using same scancodes that my main keyboard.
(In reply to etoven from comment #10) > I want to talk about how your F keys goes to 24. Forget about the bug. 😲 in my case I can just rebind the keys in software, so added fn+Fkeys to f13-24.
I believe the issue that I'm having is related to this one, where I have a key on my keyboard that has a picture of a calculator on it. I believe it was sending keycode 148 = XF86Calculator NoSymbol XF86Calculator when pressed. It used to launch kcalc, but now does nothing and I can't reassign it. Pressing that key to try and assign a shortcut to it does nothing.
(In reply to Dashon from comment #13) > I believe the issue that I'm having is related to this one, where I have a > key on my keyboard that has a picture of a calculator on it. I believe it > was sending keycode 148 = XF86Calculator NoSymbol XF86Calculator when > pressed. It used to launch kcalc, but now does nothing and I can't reassign > it. Pressing that key to try and assign a shortcut to it does nothing. That is BUG 478936.
(In reply to Dashon from comment #13) > I believe the issue that I'm having is related to this one, where I have a > key on my keyboard that has a picture of a calculator on it. I believe it > was sending keycode 148 = XF86Calculator NoSymbol XF86Calculator when > pressed. It used to launch kcalc, but now does nothing and I can't reassign > it. Pressing that key to try and assign a shortcut to it does nothing. There was another bug about that, should be fixed when you upgrade to qt 6.7 but you need to rebind the key in settings. https://bugs.kde.org/show_bug.cgi?id=478936
(In reply to qlum from comment #15) > (In reply to Dashon from comment #13) > > I believe the issue that I'm having is related to this one, where I have a > > key on my keyboard that has a picture of a calculator on it. I believe it > > was sending keycode 148 = XF86Calculator NoSymbol XF86Calculator when > > pressed. It used to launch kcalc, but now does nothing and I can't reassign > > it. Pressing that key to try and assign a shortcut to it does nothing. > > There was another bug about that, should be fixed when you upgrade to qt 6.7 > but you need to rebind the key in settings. > https://bugs.kde.org/show_bug.cgi?id=478936 No need to rebind if you just want to use the default calculator key for kcalc.
(In reply to qlum from comment #15) > (In reply to Dashon from comment #13) > > I believe the issue that I'm having is related to this one, where I have a > > key on my keyboard that has a picture of a calculator on it. I believe it > > was sending keycode 148 = XF86Calculator NoSymbol XF86Calculator when > > pressed. It used to launch kcalc, but now does nothing and I can't reassign > > it. Pressing that key to try and assign a shortcut to it does nothing. > > There was another bug about that, should be fixed when you upgrade to qt 6.7 > but you need to rebind the key in settings. > https://bugs.kde.org/show_bug.cgi?id=478936 Okay, thanks for the info.
So the issue here is that XKB doesn't map the keycode to any keysym?
(In reply to Nicolas Fella from comment #18) > So the issue here is that XKB doesn't map the keycode to any keysym? That is controlled by the user configurable keymap. When a keycode is unmapped, currently we cannot handle it in shortcuts.
(In reply to fanzhuyifan from comment #19) > That is controlled by the user configurable keymap. When a keycode is > unmapped, currently we cannot handle it in shortcuts. Is that any different on Wayland? I can live with that on X11 but I don't think that manual remapping is correct (as in user friendly) way to do things moving forward.
(In reply to gudvinr+kde from comment #20) > (In reply to fanzhuyifan from comment #19) > > That is controlled by the user configurable keymap. When a keycode is > > unmapped, currently we cannot handle it in shortcuts. > > Is that any different on Wayland? I can live with that on X11 but I don't > think that manual remapping is correct (as in user friendly) way to do > things moving forward. Unfortunately, given the current codebase, we also rely on that on wayland. Currently all shortcuts are stored using QKeySequence. We use the keymap to convert keycodes to keysyms, and then convert the keysyms into Qt keys. If we want to support platform native keycodes, that would need a pretty significant change throughout the code base.
*** Bug 487958 has been marked as a duplicate of this bug. ***
*** Bug 464289 has been marked as a duplicate of this bug. ***
FYI, in xkeyboard-config 2.43+ there will be an option to map F13-F24 to their corresponding function keysyms. On Wayland you can define custom XKB options, see: https://xkbcommon.github.io/libxkbcommon/doc/current/user-configuration.html. You need Plasma 6.1+ though, to be able to configure this in the keyboard settings GUI. Corresponding MR: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/726
(In reply to fanzhuyifan from comment #21) > Unfortunately, given the current codebase, we also rely on that on wayland. > Currently all shortcuts are stored using QKeySequence. We use the keymap to > convert keycodes to keysyms, and then convert the keysyms into Qt keys. If > we want to support platform native keycodes, that would need a pretty > significant change throughout the code base. So we can consider this fixed upstream in xkeyboard-config 2.43, see: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/blob/master/ChangeLog.md. The only enhancement I see possible atm is to *inform the user* that a key cannot be used in a shortcut because it has no binding in the keyboard layout, instead of just ignoring the input. You may install manually corresponding MR https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/726 in you user config, using the following tutorial: https://xkbcommon.org/doc/current/user-configuration.html.