System/Media Keycodes
Short/long names
|
/* Sytem Control */ |
|
#define KC_PWR KC_SYSTEM_POWER |
|
#define KC_SLEP KC_SYSTEM_SLEEP |
|
#define KC_WAKE KC_SYSTEM_WAKE |
|
/* Consumer Page */ |
|
#define KC_MUTE KC_AUDIO_MUTE |
|
#define KC_VOLU KC_AUDIO_VOL_UP |
|
#define KC_VOLD KC_AUDIO_VOL_DOWN |
|
#define KC_MNXT KC_MEDIA_NEXT_TRACK |
|
#define KC_MPRV KC_MEDIA_PREV_TRACK |
|
#define KC_MFFD KC_MEDIA_FAST_FORWARD |
|
#define KC_MRWD KC_MEDIA_REWIND |
|
#define KC_MSTP KC_MEDIA_STOP |
|
#define KC_MPLY KC_MEDIA_PLAY_PAUSE |
|
#define KC_EJCT KC_MEDIA_EJECT |
|
#define KC_MSEL KC_MEDIA_SELECT |
|
#define KC_MAIL KC_MAIL |
|
#define KC_CALC KC_CALCULATOR |
|
#define KC_MYCM KC_MY_COMPUTER |
|
#define KC_WSCH KC_WWW_SEARCH |
|
#define KC_WHOM KC_WWW_HOME |
|
#define KC_WBAK KC_WWW_BACK |
|
#define KC_WFWD KC_WWW_FORWARD |
|
#define KC_WSTP KC_WWW_STOP |
|
#define KC_WREF KC_WWW_REFRESH |
|
#define KC_WFAV KC_WWW_FAVORITES |
/* Sytem Control */
#define KC_PWR KC_SYSTEM_POWER
#define KC_SLEP KC_SYSTEM_SLEEP
#define KC_WAKE KC_SYSTEM_WAKE
/* Consumer Page */
#define KC_MUTE KC_AUDIO_MUTE
#define KC_VOLU KC_AUDIO_VOL_UP
#define KC_VOLD KC_AUDIO_VOL_DOWN
#define KC_MNXT KC_MEDIA_NEXT_TRACK
#define KC_MPRV KC_MEDIA_PREV_TRACK
#define KC_MFFD KC_MEDIA_FAST_FORWARD
#define KC_MRWD KC_MEDIA_REWIND
#define KC_MSTP KC_MEDIA_STOP
#define KC_MPLY KC_MEDIA_PLAY_PAUSE
#define KC_EJCT KC_MEDIA_EJECT
#define KC_MSEL KC_MEDIA_SELECT
#define KC_MAIL KC_MAIL
#define KC_CALC KC_CALCULATOR
#define KC_MYCM KC_MY_COMPUTER
#define KC_WSCH KC_WWW_SEARCH
#define KC_WHOM KC_WWW_HOME
#define KC_WBAK KC_WWW_BACK
#define KC_WFWD KC_WWW_FORWARD
#define KC_WSTP KC_WWW_STOP
#define KC_WREF KC_WWW_REFRESH
#define KC_WFAV KC_WWW_FAVORITES
keycode to system/consumer usage translation
|
/* keycode to system usage */ |
|
#define KEYCODE2SYSTEM(key) \ |
|
(key == KC_SYSTEM_POWER ? SYSTEM_POWER_DOWN : \ |
|
(key == KC_SYSTEM_SLEEP ? SYSTEM_SLEEP : \ |
|
(key == KC_SYSTEM_WAKE ? SYSTEM_WAKE_UP : 0))) |
|
|
|
/* keycode to consumer usage */ |
|
#define KEYCODE2CONSUMER(key) \ |
|
(key == KC_AUDIO_MUTE ? AUDIO_MUTE : \ |
|
(key == KC_AUDIO_VOL_UP ? AUDIO_VOL_UP : \ |
|
(key == KC_AUDIO_VOL_DOWN ? AUDIO_VOL_DOWN : \ |
|
(key == KC_MEDIA_NEXT_TRACK ? TRANSPORT_NEXT_TRACK : \ |
|
(key == KC_MEDIA_PREV_TRACK ? TRANSPORT_PREV_TRACK : \ |
|
(key == KC_MEDIA_FAST_FORWARD ? TRANSPORT_FAST_FORWARD : \ |
|
(key == KC_MEDIA_REWIND ? TRANSPORT_REWIND : \ |
|
(key == KC_MEDIA_STOP ? TRANSPORT_STOP : \ |
|
(key == KC_MEDIA_EJECT ? TRANSPORT_STOP_EJECT : \ |
|
(key == KC_MEDIA_PLAY_PAUSE ? TRANSPORT_PLAY_PAUSE : \ |
|
(key == KC_MEDIA_SELECT ? APPLAUNCH_CC_CONFIG : \ |
|
(key == KC_MAIL ? APPLAUNCH_EMAIL : \ |
|
(key == KC_CALCULATOR ? APPLAUNCH_CALCULATOR : \ |
|
(key == KC_MY_COMPUTER ? APPLAUNCH_LOCAL_BROWSER : \ |
|
(key == KC_WWW_SEARCH ? APPCONTROL_SEARCH : \ |
|
(key == KC_WWW_HOME ? APPCONTROL_HOME : \ |
|
(key == KC_WWW_BACK ? APPCONTROL_BACK : \ |
|
(key == KC_WWW_FORWARD ? APPCONTROL_FORWARD : \ |
|
(key == KC_WWW_STOP ? APPCONTROL_STOP : \ |
|
(key == KC_WWW_REFRESH ? APPCONTROL_REFRESH : \ |
|
(key == KC_WWW_FAVORITES ? APPCONTROL_BOOKMARKS : 0))))))))))))))))))))) |
/* keycode to system usage */
#define KEYCODE2SYSTEM(key) \
(key == KC_SYSTEM_POWER ? SYSTEM_POWER_DOWN : \
(key == KC_SYSTEM_SLEEP ? SYSTEM_SLEEP : \
(key == KC_SYSTEM_WAKE ? SYSTEM_WAKE_UP : 0)))
/* keycode to consumer usage */
#define KEYCODE2CONSUMER(key) \
(key == KC_AUDIO_MUTE ? AUDIO_MUTE : \
(key == KC_AUDIO_VOL_UP ? AUDIO_VOL_UP : \
(key == KC_AUDIO_VOL_DOWN ? AUDIO_VOL_DOWN : \
(key == KC_MEDIA_NEXT_TRACK ? TRANSPORT_NEXT_TRACK : \
(key == KC_MEDIA_PREV_TRACK ? TRANSPORT_PREV_TRACK : \
(key == KC_MEDIA_FAST_FORWARD ? TRANSPORT_FAST_FORWARD : \
(key == KC_MEDIA_REWIND ? TRANSPORT_REWIND : \
(key == KC_MEDIA_STOP ? TRANSPORT_STOP : \
(key == KC_MEDIA_EJECT ? TRANSPORT_STOP_EJECT : \
(key == KC_MEDIA_PLAY_PAUSE ? TRANSPORT_PLAY_PAUSE : \
(key == KC_MEDIA_SELECT ? APPLAUNCH_CC_CONFIG : \
(key == KC_MAIL ? APPLAUNCH_EMAIL : \
(key == KC_CALCULATOR ? APPLAUNCH_CALCULATOR : \
(key == KC_MY_COMPUTER ? APPLAUNCH_LOCAL_BROWSER : \
(key == KC_WWW_SEARCH ? APPCONTROL_SEARCH : \
(key == KC_WWW_HOME ? APPCONTROL_HOME : \
(key == KC_WWW_BACK ? APPCONTROL_BACK : \
(key == KC_WWW_FORWARD ? APPCONTROL_FORWARD : \
(key == KC_WWW_STOP ? APPCONTROL_STOP : \
(key == KC_WWW_REFRESH ? APPCONTROL_REFRESH : \
(key == KC_WWW_FAVORITES ? APPCONTROL_BOOKMARKS : 0)))))))))))))))))))))
Protocol: USB LUFA
Linux Xorg(Ubuntu/Xfce):
| Keycode |
Action |
| POWER |
Pop out Logout dialog |
| PWR |
Pop out Logout dialog |
| SLEP |
No action?? |
| WAKE |
No action(XF86WakeUp) |
| MUTE |
Mute |
| VOLU |
Volume Down |
| VOLD |
Volume Up |
| MNXT |
works in VLC media player (XF86AudioNext) |
| MPRV |
works in VLC media player (XF86AudioPrev) |
| MFFD |
?? (XF86AudioForward) |
| MRWD |
?? (XF86AudioRewind) |
| MSTP |
works in VLC media player (XF86AudioStop) |
| MPLY |
works in VLC media player (XF86AudioPlay) |
| EJCT |
No action(NoSymbol) |
| MSEL |
No action(XF86Tools) |
| MAIL |
No action(XF86Mail) |
| CALC |
No action(XF86Calculator) |
| MYCM |
No action(XF86Explorer) |
| WSCH |
Focus address bar in Chrome49 (XF86Search) |
| WHOM |
Load home page in Chrome49 (XF86HomePage) |
| WBAK |
History back in Chrome49 (XF86Back) |
| WFWD |
History forward in Chrome49 (XF86Forward) |
| WSTP |
??(Cancel) |
| WREF |
Refresh in Chrome49 (XF86Reload) |
| WFAV |
Toggle bookmark bar in Chrome49 (XF86Favorites) |
Windows 10
| Keycode |
Action |
| POWER |
No action (BIOS scan code:E05E) |
| PWR |
act as Power button on my ThinkPad |
| SLEP |
act as Sleep button on my ThinkPad |
| WAKE |
No action |
| MUTE |
Mute |
| VOLU |
Volume Down |
| VOLD |
Volume Up |
| MNXT |
works in Windows media player |
| MPRV |
works in Windows media player |
| MFFD |
?? |
| MRWD |
?? |
| MSTP |
works in Widnows media player |
| MPLY |
works in Windows media player |
| EJCT |
No action |
| MSEL |
Open media player |
| MAIL |
Open default Mailer |
| CALC |
Open Calculator |
| MYCM |
Open Explorer |
| WSCH |
Open Search Windows dialog |
| WHOM |
Load home page in Internet Explorer |
| WBAK |
History back in Internet Explorer |
| WFWD |
History forward in Internet Explorer |
| WSTP |
Stop loading in Internet Explorer |
| WREF |
Refresh in Internet Explorer |
| WFAV |
Toggle bookmark pane in Internet Explorer |
OSX
Please contribute.
Use MFFD and MRWD instead of MNXT and MPRV.
https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap#media-control-keys-in-mac-osx
Protocol: Bluetooth HHKB w/ RN42
https://geekhack.org/index.php?topic=12047.0
http://www.microchip.com/wwwproducts/en/RN42
Supported usages
RN42 supports only keycodes below.
MUTE
VOLU
VOLD
MNXT
MPRV
MFFD
MRWD
MSTP
MPLY
EJCT
MAIL
WSCH
WHOM
|
static uint16_t usage2bits(uint16_t usage) |
|
{ |
|
switch (usage) { |
|
case AC_HOME: return 0x01; |
|
case AL_EMAIL: return 0x02; |
|
case AC_SEARCH: return 0x04; |
|
//case AL_KBD_LAYOUT: return 0x08; // Apple virtual keybaord toggle |
|
case AUDIO_VOL_UP: return 0x10; |
|
case AUDIO_VOL_DOWN: return 0x20; |
|
case AUDIO_MUTE: return 0x40; |
|
case TRANSPORT_PLAY_PAUSE: return 0x80; |
|
case TRANSPORT_NEXT_TRACK: return 0x100; |
|
case TRANSPORT_PREV_TRACK: return 0x200; |
|
case TRANSPORT_STOP: return 0x400; |
|
case TRANSPORT_STOP_EJECT: return 0x800; |
|
case TRANSPORT_FAST_FORWARD: return 0x1000; |
|
case TRANSPORT_REWIND: return 0x2000; |
|
//case return 0x4000; // Stop/eject |
|
//case return 0x8000; // Internet browser |
|
}; |
|
return 0; |
|
} |
static uint16_t usage2bits(uint16_t usage)
{
switch (usage) {
case AC_HOME: return 0x01;
case AL_EMAIL: return 0x02;
case AC_SEARCH: return 0x04;
//case AL_KBD_LAYOUT: return 0x08; // Apple virtual keybaord toggle
case AUDIO_VOL_UP: return 0x10;
case AUDIO_VOL_DOWN: return 0x20;
case AUDIO_MUTE: return 0x40;
case TRANSPORT_PLAY_PAUSE: return 0x80;
case TRANSPORT_NEXT_TRACK: return 0x100;
case TRANSPORT_PREV_TRACK: return 0x200;
case TRANSPORT_STOP: return 0x400;
case TRANSPORT_STOP_EJECT: return 0x800;
case TRANSPORT_FAST_FORWARD: return 0x1000;
case TRANSPORT_REWIND: return 0x2000;
//case return 0x4000; // Stop/eject
//case return 0x8000; // Internet browser
};
return 0;
}
Linux Xorg(Ubuntu/Xfce)
| Keycode |
Action |
| MUTE |
Mute |
| VOLU |
Volume Down |
| VOLD |
Volume Up |
| MNXT |
works in VLC media player |
| MPRV |
works in VLC media player |
| MFFD |
No action |
| MRWD |
No action |
| MSTP |
works in VLC media player |
| MPLY |
works in VLC media player |
| EJCT |
No action |
| MAIL |
No action |
| WSCH |
Open Search Windows dialog |
| WHOM |
Load home page in Internet Explorer |
Windows 10
| Keycode |
Action |
| MUTE |
Mute |
| VOLU |
Volume Down |
| VOLD |
Volume Up |
| MNXT |
works in Windows media player |
| MPRV |
works in Windows media player |
| MFFD |
?? |
| MRWD |
?? |
| MSTP |
works in Widnows media player |
| MPLY |
works in Windows media player |
| EJCT |
No action |
| MAIL |
No action |
| WSCH |
Focus address bar in Chrome49 (XF86Search) |
| WHOM |
Load home page in Chrome49 (XF86HomePage) |
OSX
Please contribute.
Use MFFD and MRWD instead of MNXT and MPRV.
https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap#media-control-keys-in-mac-osx
System/Media Keycodes
Short/long names
tmk_keyboard/tmk_core/common/keycode.h
Lines 142 to 167 in 5e9b21d
keycode to system/consumer usage translation
tmk_keyboard/tmk_core/common/report.h
Lines 154 to 182 in 5e9b21d
Protocol: USB LUFA
Linux Xorg(Ubuntu/Xfce):
Windows 10
OSX
Please contribute.
Use MFFD and MRWD instead of MNXT and MPRV.
https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap#media-control-keys-in-mac-osx
Protocol: Bluetooth HHKB w/ RN42
https://geekhack.org/index.php?topic=12047.0
http://www.microchip.com/wwwproducts/en/RN42
Supported usages
RN42 supports only keycodes below.
tmk_keyboard/keyboard/hhkb/rn42/rn42.c
Lines 184 to 205 in 5e9b21d
Linux Xorg(Ubuntu/Xfce)
Windows 10
OSX
Please contribute.
Use MFFD and MRWD instead of MNXT and MPRV.
https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap#media-control-keys-in-mac-osx