Add FN-key handling for F1-F3

Enables Mute/VolumeUp/VolumeDown
This commit is contained in:
Tobias Diedrich
2022-01-16 21:58:00 +01:00
parent 4b5b06dc13
commit 7b59505799
2 changed files with 86 additions and 18 deletions
+62 -18
View File
@@ -146,7 +146,7 @@ keyA EQU keyState0.4
keyB EQU keyState0.5
keyC EQU keyState0.6
keyD EQU keyState0.7
keyE EQU keyState1.0
keyE EQU keyState1.0 ; 8
keyF EQU keyState1.1
keyG EQU keyState1.2
keyH EQU keyState1.3
@@ -154,7 +154,7 @@ keyI EQU keyState1.4
keyJ EQU keyState1.5
keyK EQU keyState1.6
keyL EQU keyState1.7
keyM EQU keyState2.0
keyM EQU keyState2.0 ; 16
keyN EQU keyState2.1
keyO EQU keyState2.2
keyP EQU keyState2.3
@@ -162,7 +162,7 @@ keyQ EQU keyState2.4
keyR EQU keyState2.5
keyS EQU keyState2.6
keyT EQU keyState2.7
keyU EQU keyState3.0
keyU EQU keyState3.0 ; 24
keyV EQU keyState3.1
keyW EQU keyState3.2
keyX EQU keyState3.3
@@ -170,7 +170,7 @@ keyY EQU keyState3.4
keyZ EQU keyState3.5
key1 EQU keyState3.6
key2 EQU keyState3.7
key3 EQU keyState4.0
key3 EQU keyState4.0 ; 32
key4 EQU keyState4.1
key5 EQU keyState4.2
key6 EQU keyState4.3
@@ -178,7 +178,7 @@ key7 EQU keyState4.4
key8 EQU keyState4.5
key9 EQU keyState4.6
key0 EQU keyState4.7
keyRETURN EQU keyState5.0
keyRETURN EQU keyState5.0 ; 40
keyESC EQU keyState5.1
keyBACKSPACE EQU keyState5.2
keyTAB EQU keyState5.3
@@ -186,7 +186,7 @@ keySPACE EQU keyState5.4
keyMINUS EQU keyState5.5
keyEQUALS EQU keyState5.6
keyLEFTBRACKET EQU keyState5.7
keyRIGHTBRACKET EQU keyState6.0
keyRIGHTBRACKET EQU keyState6.0 ; 48
keyBACKSLASH EQU keyState6.1
keyNONUSHASH EQU keyState6.2
keySEMICOLON EQU keyState6.3
@@ -194,7 +194,7 @@ keyAPOSTROPHE EQU keyState6.4
keyGRAVE EQU keyState6.5
keyCOMMA EQU keyState6.6
keyPERIOD EQU keyState6.7
keySLASH EQU keyState7.0
keySLASH EQU keyState7.0 ; 56
keyCAPSLOCK EQU keyState7.1
keyF1 EQU keyState7.2
keyF2 EQU keyState7.3
@@ -202,7 +202,7 @@ keyF3 EQU keyState7.4
keyF4 EQU keyState7.5
keyF5 EQU keyState7.6
keyF6 EQU keyState7.7
keyF7 EQU keyState8.0
keyF7 EQU keyState8.0 ; 64
keyF8 EQU keyState8.1
keyF9 EQU keyState8.2
keyF10 EQU keyState8.3
@@ -210,7 +210,7 @@ keyF11 EQU keyState8.4
keyF12 EQU keyState8.5
keyPRINTSCREEN EQU keyState8.6
keySCROLLLOCK EQU keyState8.7
keyPAUSE EQU keyState9.0
keyPAUSE EQU keyState9.0 ; 72
keyINSERT EQU keyState9.1
keyHOME EQU keyState9.2
keyPAGEUP EQU keyState9.3
@@ -218,7 +218,7 @@ keyDELETE EQU keyState9.4
keyEND EQU keyState9.5
keyPAGEDOWN EQU keyState9.6
keyRIGHT EQU keyState9.7
keyLEFT EQU keyState10.0
keyLEFT EQU keyState10.0 ; 80
keyDOWN EQU keyState10.1
keyUP EQU keyState10.2
keyNUMLOCK EQU keyState10.3
@@ -226,7 +226,7 @@ keyKPDIV EQU keyState10.4
keyKPMUL EQU keyState10.5
keyKPMINUS EQU keyState10.6
keyKPPLUS EQU keyState10.7
keyKPENTER EQU keyState11.0
keyKPENTER EQU keyState11.0 ; 88
keyKP1 EQU keyState11.1
keyKP2 EQU keyState11.2
keyKP3 EQU keyState11.3
@@ -234,7 +234,7 @@ keyKP4 EQU keyState11.4
keyKP5 EQU keyState11.5
keyKP6 EQU keyState11.6
keyKP7 EQU keyState11.7
keyKP8 EQU keyState12.0
keyKP8 EQU keyState12.0 ; 96
keyKP9 EQU keyState12.1
keyKP0 EQU keyState12.2
keyKPCOLON EQU keyState12.3
@@ -243,6 +243,11 @@ keyAPPLICATION EQU keyState12.5
keyPOWER EQU keyState12.6
keyKPEQUALS EQU keyState12.7 ; 103
keyFIND EQU keyState15.6 ; 126
keyMUTE EQU keyState15.7 ; 127
keyVOLUMEUP EQU keyState16.0 ; 128
keyVOLUMEDOWN EQU keyState16.1 ; 129
keyINTERNATIONAL1 EQU keyState16.7 ; 135
keyINTERNATIONAL2 EQU keyState17.0
keyINTERNATIONAL3 EQU keyState17.1
@@ -784,6 +789,19 @@ _kbd_sense_row0:
B0BSET keyNONE
RET
_key_f3_clear:
B0BCLR keyF3
B0BCLR keyVOLUMEUP
RET
_key_f3_set:
B0BTS0 keyFN
JMP @F
B0BSET keyF3
RET
@@:
B0BSET keyVOLUMEUP
RET
_kbd_sense_row1:
; DB keyTAB, keyF3, keyCAPSLOCK, keyNONE, keyT, keyY, keyRIGHTBRACKET, keyF7
B0BTS0 S0
@@ -791,9 +809,9 @@ _kbd_sense_row1:
B0BTS1 S0
B0BSET keyTAB
B0BTS0 S1
B0BCLR keyF3
CALL _key_f3_clear
B0BTS1 S1
B0BSET keyF3
CALL _key_f3_set
B0BTS0 S2
B0BCLR keyCAPSLOCK
B0BTS1 S2
@@ -924,6 +942,32 @@ _kbd_sense_row2:
B0BSET keyNONE
RET
_key_f1_clear:
B0BCLR keyF1
B0BCLR keyMUTE
RET
_key_f1_set:
B0BTS0 keyFN
JMP @F
B0BSET keyF1
RET
@@:
B0BSET keyMUTE
RET
_key_f2_clear:
B0BCLR keyF2
B0BCLR keyVOLUMEDOWN
RET
_key_f2_set:
B0BTS0 keyFN
JMP @F
B0BSET keyF2
RET
@@:
B0BSET keyVOLUMEDOWN
RET
_kbd_sense_row3:
; DB keyGRAVE, keyF2, keyF1, keyLCTRL, key5, key6, keyEQUALS, keyF8
B0BTS0 S0
@@ -931,13 +975,13 @@ _kbd_sense_row3:
B0BTS1 S0
B0BSET keyGRAVE
B0BTS0 S1
B0BCLR keyF2
CALL _key_f2_clear
B0BTS1 S1
B0BSET keyF2
CALL _key_f2_set
B0BTS0 S2
B0BCLR keyF1
CALL _key_f1_clear
B0BTS1 S2
B0BSET keyF1
CALL _key_f1_set
B0BTS0 S3
B0BCLR keyLCTRL
B0BTS1 S3
+24
View File
@@ -106,6 +106,30 @@ INTERNATIONAL4 F7 O F8 L
UP KP_MEMSTORE (none) (none) FN END PAUSE LEFT P0.3/S14
(none) (none) (none) DELETE PRINTSCREEN INSERT PAGEUP PAGEDOWN P0.6/S15
FN-Key-Combos on origfw:
(2) secondary evdev "consumer control"
FN+F1 -> (2) MUTE (113)
FN+F2 -> (2) VOLUMEDOWN (114)
FN+F3 -> (2) VOLUMEUP (115)
FN+F4 -> No action (symbol: toggle microphone)
FN+F5 -> (2) BRIGHTNESSDOWN (224)
FN+F6 -> (2) BRIGHTNESSUP (225)
FN+F7 -> LGUI+P (125 + 25) (open display settings)
FN+F8 -> No action (symbol: toggle rfkill)
FN+F9 -> LGUI+F21 (125 + 191) (open settings)
FN+F10 -> (2) SEARCH (217)
FN+F11 -> LCTRL+LALT+Tab
FN+F12 -> No action
FN+P -> PAUSE (119)
FN+S -> LALT+SYSRQ (56+99)
FN+K -> SCROLLLOCK (70)
FN+B -> LCTRL+PAUSE (29+119)
FnLk not functional?
Suggested for Thinkpads on https://support.lenovo.com/us/de/solutions/ht503647:
Fn+4 -> Suspend machine
Fn+Spacebar -> Toggle keyboard backlight modes (not applicable)
Suspend/Resume notes:
- In FS mode, if IDLE (J state) is held for more than 3ms without SOF,
this signals SUSPEND. During suspend J state is kept. D+ pullup