2015-01-14 06:11:36 +06:00
## READ FIRST
https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md
2015-01-14 02:19:43 +06:00
## How to get keycode
See [doc/keycode.txt ](https://github.com/tmk/tmk_keyboard/blob/master/doc/keycode.txt ).
Keycodes are actually defined in [common/keycode.h ](https://github.com/tmk/tmk_keyboard/blob/master/common/keycode.h ).
2015-01-14 02:03:47 +06:00
## Sysrq key
2015-01-14 02:16:09 +06:00
Use keycode for Print Screen(`KC_PSCREEN` or `KC_PSCR` ) instead of `KC_SYSREQ` . Key combination of 'Alt + Print Screen' is recognized as 'System request'.
2015-01-14 02:15:42 +06:00
See [issue #168 ](https://github.com/tmk/tmk_keyboard/issues/168 ) and
2015-01-14 02:16:09 +06:00
- http://en.wikipedia.org/wiki/Magic_SysRq_key
- http://en.wikipedia.org/wiki/System_request
2015-01-14 02:03:47 +06:00
2014-11-27 07:40:02 +06:00
## Power key doesn't work
Use `KC_PWR` instead of `KC_POWER` or vice versa.
- `KC_PWR` works with Windows and Linux, not with OSX.
- `KC_POWER` works with OSX and Linux, not with Windows.
http://geekhack.org/index.php?topic=14290.msg1327264#msg1327264
## Oneshot modifier
Solves my personal 'the' problem. I often got 'the' or 'THe' wrongly instead of 'The'. Oneshot Shift mitgates this for me.
https://github.com/tmk/tmk_keyboard/issues/67
## Modifier/Layer stuck
Modifier keys or layers can be stuck unless layer switching is configured properly.
For Modifier keys and layer actions you have to place `KC_TRANS` on same position of destination layer to unregister the modifier key or return to previous layer on release event.
https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md#31-momentary-switching
http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
## Mechanical Lock Switch Support
https://github.com/tmk/tmk_keyboard#mechanical-locking-support
This feature is for *mechanical lock switch* like this Alps one.
http://deskthority.net/wiki/Alps_SKCL_Lock
Using enabling this feature and using keycodes `LCAP` , `LNUM` or `LSCR` in keymap you can use physical locking CapsLock, NumLock or ScrollLock keys as you expected.
2014-11-27 08:11:41 +06:00
Old vintage mechanical keyboards occasionally have lock switches but modern ones don't have. ** *You don't need this feature in most case and just use keycodes `CAPS` , `NLCK` and `SLCK` .***
2014-11-27 08:13:26 +06:00
## Input special charactors other than ASCII like Cédille 'Ç'
2014-11-27 08:12:44 +06:00
NO UNIVERSAL METHOD TO INPUT THOSE WORKS OVER ALL SYSTEMS. You have to define **MACRO** in way specific to your OS or layout.
2014-11-27 08:11:41 +06:00
2014-11-27 08:12:44 +06:00
See this post for example **MACRO** code.
2014-11-27 08:12:07 +06:00
2014-11-27 08:11:41 +06:00
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620
On **Windows** you can use `AltGr` key or **Alt code** .
- http://en.wikipedia.org/wiki/AltGr_key
- http://en.wikipedia.org/wiki/Alt_code
On **Mac** OS defines `Option` key combinations.
- http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input
On **Xorg** you can use `compose` key, instead.
- http://en.wikipedia.org/wiki/Compose_key
And see this for **Unicode** input.
2015-03-07 11:19:44 +06:00
- http://en.wikipedia.org/wiki/Unicode_input
### Apple keyboard Fn
Not supported.
Apple keyboard sends keycod for Fn unlike most of other keyboards.
I think you can send Apple Fn key using Appleventer Page 0xff00 and usage 0x0003. You have to change HID Report Descriptor, of course.
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/AppleHIDUsageTables.h
2015-03-09 17:22:02 +06:00
## Media control keys in Mac OSX
2015-03-09 17:23:18 +06:00
See issue #160 .
2015-03-09 17:22:02 +06:00
>The "Play/Pause"(KC_MPLY) works good on Apple OS. But "Next/Prev Track" buttons are unfunctional.
Apple OS use "Fast Forwad"(F9 on Apple keyboard) & "Rewind"(F7 on Apple keyboard) instead.
## Keys supported in Mac OSX?
2015-03-07 11:19:44 +06:00
You can know which keycodes are supported in OSX from this source code.
`usb_2_adb_keymap` array maps Keyboard/Keypad Page usages to ADB scancodes(OSX internal keycodes).
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/Cosmo_USB2ADB.c
And `IOHIDConsumer::dispatchConsumerEvent` handles Consumer page usages.
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp