-
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