-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
System/Media Keycodes
Short/long names
tmk_keyboard/tmk_core/common/keycode.h
Lines 142 to 167 in 5e9b21d
| /* 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
tmk_keyboard/tmk_core/common/report.h
Lines 154 to 182 in 5e9b21d
| /* 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) |
| 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 |
| 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
tmk_keyboard/keyboard/hhkb/rn42/rn42.c
Lines 184 to 205 in 5e9b21d
| 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 |
| 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 |
| 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