Skip to content

Commit 9d3270c

Browse files
fwk: add fn key mappings for number row
Maps the left 12 keys to F13-F24, and =+ key to the Yen key found to the left of Backspace on Japanese keyboards (users can of course remap this in the OS to whatever they like). Signed-off-by: Jules Bertholet <julesbertholet@quoi.xyz>
1 parent 553827c commit 9d3270c

File tree

4 files changed

+138
-2
lines changed

4 files changed

+138
-2
lines changed

board/hx20/keyboard_customization.c

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,58 @@ int hotkey_special_key(uint16_t *key_code, int8_t pressed)
376376
if (fn_table_set(pressed, KB_FN_DELETE))
377377
*key_code = 0xe070;
378378
break;
379+
case 0x000E: /* ` -> F13 */
380+
if (fn_table_set(pressed, KB_FN_GRAVE))
381+
*key_code = 0x0008;
382+
break;
383+
case 0x0016: /* 1 -> F14 */
384+
if (fn_table_set(pressed, KB_FN_1))
385+
*key_code = 0x0010;
386+
break;
387+
case 0x001E: /* 2 -> F15 */
388+
if (fn_table_set(pressed, KB_FN_2))
389+
*key_code = 0x0018;
390+
break;
391+
case 0x0026: /* 3 -> F16 */
392+
if (fn_table_set(pressed, KB_FN_3))
393+
*key_code = 0x0020;
394+
break;
395+
case 0x0025: /* 4 -> F17 */
396+
if (fn_table_set(pressed, KB_FN_4))
397+
*key_code = 0x0028;
398+
break;
399+
case 0x002E: /* 5 -> F18 */
400+
if (fn_table_set(pressed, KB_FN_5))
401+
*key_code = 0x0030;
402+
break;
403+
case 0x0036: /* 6 -> F19 */
404+
if (fn_table_set(pressed, KB_FN_6))
405+
*key_code = 0x0038;
406+
break;
407+
case 0x003D: /* 7 -> F20 */
408+
if (fn_table_set(pressed, KB_FN_7))
409+
*key_code = 0x0040;
410+
break;
411+
case 0x003E: /* 8 -> F21 */
412+
if (fn_table_set(pressed, KB_FN_8))
413+
*key_code = 0x0048;
414+
break;
415+
case 0x0046: /* 9 -> F22 */
416+
if (fn_table_set(pressed, KB_FN_9))
417+
*key_code = 0x0050;
418+
break;
419+
case 0x0045: /* 0 -> F23 */
420+
if (fn_table_set(pressed, KB_FN_0))
421+
*key_code = 0x0057;
422+
break;
423+
case 0x004E: /* - -> F24 */
424+
if (fn_table_set(pressed, KB_FN_HYPHEN))
425+
*key_code = 0x005F;
426+
break;
427+
case 0x0055: /* = -> YEN */
428+
if (fn_table_set(pressed, KB_FN_EQUALS))
429+
*key_code = 0x006A;
430+
break;
379431
case SCANCODE_K: /* TODO: SCROLL_LOCK */
380432
if (fn_table_set(pressed, KB_FN_K))
381433
*key_code = SCANCODE_SCROLL_LOCK;

board/hx20/keyboard_customization.h

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ extern uint8_t keyboard_cols;
7272
#define KEYBOARD_ROW_LEFT_SHIFT 5
7373
#define KEYBOARD_MASK_LEFT_SHIFT KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_LEFT_SHIFT)
7474

75-
enum kb_fn_table {
75+
enum kb_fn_table_media {
7676
KB_FN_F1 = BIT(0),
7777
KB_FN_F2 = BIT(1),
7878
KB_FN_F3 = BIT(2),
@@ -85,6 +85,21 @@ enum kb_fn_table {
8585
KB_FN_F10 = BIT(9),
8686
KB_FN_F11 = BIT(10),
8787
KB_FN_F12 = BIT(11),
88+
};
89+
90+
enum kb_fn_table {
91+
KB_FN_GRAVE = BIT(0),
92+
KB_FN_1 = BIT(1),
93+
KB_FN_2 = BIT(2),
94+
KB_FN_3 = BIT(3),
95+
KB_FN_4 = BIT(4),
96+
KB_FN_5 = BIT(5),
97+
KB_FN_6 = BIT(6),
98+
KB_FN_7 = BIT(7),
99+
KB_FN_8 = BIT(8),
100+
KB_FN_9 = BIT(9),
101+
KB_FN_0 = BIT(10),
102+
KB_FN_HYPHEN = BIT(11),
88103
KB_FN_DELETE = BIT(12),
89104
KB_FN_K = BIT(13),
90105
KB_FN_S = BIT(14),
@@ -96,6 +111,7 @@ enum kb_fn_table {
96111
KB_FN_B = BIT(20),
97112
KB_FN_P = BIT(21),
98113
KB_FN_SPACE = BIT(22),
114+
KB_FN_EQUALS = BIT(27),
99115
};
100116

101117
#ifdef CONFIG_KEYBOARD_BACKLIGHT

board/hx30/keyboard_customization.c

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,58 @@ int hotkey_special_key(uint16_t *key_code, int8_t pressed)
376376
if (fn_table_set(pressed, KB_FN_DELETE))
377377
*key_code = 0xe070;
378378
break;
379+
case 0x000E: /* ` -> F13 */
380+
if (fn_table_set(pressed, KB_FN_GRAVE))
381+
*key_code = 0x0008;
382+
break;
383+
case 0x0016: /* 1 -> F14 */
384+
if (fn_table_set(pressed, KB_FN_1))
385+
*key_code = 0x0010;
386+
break;
387+
case 0x001E: /* 2 -> F15 */
388+
if (fn_table_set(pressed, KB_FN_2))
389+
*key_code = 0x0018;
390+
break;
391+
case 0x0026: /* 3 -> F16 */
392+
if (fn_table_set(pressed, KB_FN_3))
393+
*key_code = 0x0020;
394+
break;
395+
case 0x0025: /* 4 -> F17 */
396+
if (fn_table_set(pressed, KB_FN_4))
397+
*key_code = 0x0028;
398+
break;
399+
case 0x002E: /* 5 -> F18 */
400+
if (fn_table_set(pressed, KB_FN_5))
401+
*key_code = 0x0030;
402+
break;
403+
case 0x0036: /* 6 -> F19 */
404+
if (fn_table_set(pressed, KB_FN_6))
405+
*key_code = 0x0038;
406+
break;
407+
case 0x003D: /* 7 -> F20 */
408+
if (fn_table_set(pressed, KB_FN_7))
409+
*key_code = 0x0040;
410+
break;
411+
case 0x003E: /* 8 -> F21 */
412+
if (fn_table_set(pressed, KB_FN_8))
413+
*key_code = 0x0048;
414+
break;
415+
case 0x0046: /* 9 -> F22 */
416+
if (fn_table_set(pressed, KB_FN_9))
417+
*key_code = 0x0050;
418+
break;
419+
case 0x0045: /* 0 -> F23 */
420+
if (fn_table_set(pressed, KB_FN_0))
421+
*key_code = 0x0057;
422+
break;
423+
case 0x004E: /* - -> F24 */
424+
if (fn_table_set(pressed, KB_FN_HYPHEN))
425+
*key_code = 0x005F;
426+
break;
427+
case 0x0055: /* = -> YEN */
428+
if (fn_table_set(pressed, KB_FN_EQUALS))
429+
*key_code = 0x006A;
430+
break;
379431
case SCANCODE_K: /* TODO: SCROLL_LOCK */
380432
if (fn_table_set(pressed, KB_FN_K))
381433
*key_code = SCANCODE_SCROLL_LOCK;

board/hx30/keyboard_customization.h

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ extern uint8_t keyboard_cols;
7272
#define KEYBOARD_ROW_LEFT_SHIFT 5
7373
#define KEYBOARD_MASK_LEFT_SHIFT KEYBOARD_ROW_TO_MASK(KEYBOARD_ROW_LEFT_SHIFT)
7474

75-
enum kb_fn_table {
75+
enum kb_fn_table_media {
7676
KB_FN_F1 = BIT(0),
7777
KB_FN_F2 = BIT(1),
7878
KB_FN_F3 = BIT(2),
@@ -85,6 +85,21 @@ enum kb_fn_table {
8585
KB_FN_F10 = BIT(9),
8686
KB_FN_F11 = BIT(10),
8787
KB_FN_F12 = BIT(11),
88+
};
89+
90+
enum kb_fn_table {
91+
KB_FN_GRAVE = BIT(0),
92+
KB_FN_1 = BIT(1),
93+
KB_FN_2 = BIT(2),
94+
KB_FN_3 = BIT(3),
95+
KB_FN_4 = BIT(4),
96+
KB_FN_5 = BIT(5),
97+
KB_FN_6 = BIT(6),
98+
KB_FN_7 = BIT(7),
99+
KB_FN_8 = BIT(8),
100+
KB_FN_9 = BIT(9),
101+
KB_FN_0 = BIT(10),
102+
KB_FN_HYPHEN = BIT(11),
88103
KB_FN_DELETE = BIT(12),
89104
KB_FN_K = BIT(13),
90105
KB_FN_S = BIT(14),
@@ -96,6 +111,7 @@ enum kb_fn_table {
96111
KB_FN_B = BIT(20),
97112
KB_FN_P = BIT(21),
98113
KB_FN_SPACE = BIT(22),
114+
KB_FN_EQUALS = BIT(27),
99115
};
100116

101117
#ifdef CONFIG_KEYBOARD_BACKLIGHT

0 commit comments

Comments
 (0)