1 # girst's fork of evangs/tmk_keyboard
3 This repository contains my keymap for the Minivan (rev2) keyboard. After changing the layout to my pleasing, I've converted the layout to use `actionmaps` to support all my planned features. Then, I merged upstream fixes from `tmk/tmk_keyboard`, because I needed `ba2883f`. The version without merges from upstream is preserved at branch `evangs_firmware`.
7 ,-------------------------------------------------.
8 |Esc| Q| W| E| R| T| Z| U| I| O| P| BSp |
9 |-------------------------------------------------|
10 |Ctrl| A| S| D| F| G| H| J| K| L| ?/|Fn2 |
11 |-------------------------------------------------|
12 |Shift| Y| X| C| V| B| N| M| ,| .| -|Sft|
13 |-------------------------------------------------|
14 |Alt |Tab/Fn2|Fn1 |Enter| Space |Fn1 |Super| Fn3 |
15 `-------------------------------------------------'
17 Layer 1: Movement and Miscellaneous
18 ,-------------------------------------------------.
19 |Esc| |wrd| |End| | |PUp| |Hom|Ins| Del |
20 |-------------------------------------------------|
21 |Ctrl| | |PDn| | |Lft| Up| Dn| Rt| | |
22 |-------------------------------------------------|
23 |Shift|PSc| | | |bck| |Pau|NUM|CAP|SCR|Sft|
24 |-------------------------------------------------|
25 |Alt | | | | | |Super| |
26 `-------------------------------------------------'
28 Layer 2: Numbers and ASCII-Symbols
29 ,-------------------------------------------------.
30 | ^| !| "| '| $| %| &| @| (| )| =| BSp |
31 |-------------------------------------------------|
32 | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0|Fn2 |
33 |-------------------------------------------------|
34 | #| <| || >| +| *| {| [| ]| }| \| ~|
35 |-------------------------------------------------|
36 |Alt |Tab/Fn2| | | | |Super| |
37 `-------------------------------------------------'
39 Layer 3: Function Keys and Unicode Symbols
40 ,-------------------------------------------------.
41 | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11| F12|
42 |-------------------------------------------------|
43 |Ctrl| | | | | | | | Ä| Ö| Ü| |
44 |-------------------------------------------------|
45 |Shift| €| §| °| ²| ³| µ| ä| ö| ü| ß|Sft|
46 |-------------------------------------------------|
47 |Alt | | | | | |Super| Fn3 |
48 `-------------------------------------------------'
51 TMK Keyboard Firmware Collection
52 ================================
53 This repository includes keyboard and converter firmware projects built with [`tmk_core`][tmk_core] keyboard library.
55 The latest source code is available here: <http://github.com/tmk/tmk_keyboard>
61 Changed action code for `ACTION_LAYER_MODS` and this may cause incompatibility with existent shared URL and downloaded firmwware of keymap editor. If you are using the action you just have to redefine it on keymap editor. Existent keymap code should not suffer.
64 Keymap framework was updated. `fn_actions[]` should be defined as `action_t` instead of `uint16_t`. And default code for keymap handling is now included in core you just need define `uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]` and `action_t fn_actions[]`.
68 Some projects were moved from `converter` and `keyboard` to `orphan` directory. Those might be removed in some future but you will be able to access them with `orphans` tag. See <https://github.com/tmk/tmk_keyboard/issues/173>
71 core: flabbergast's Chibios protocol was merged from <https://github.com/flabbergast/tmk_keyboard/tree/chibios> (@72b1668). See [tmk_core/protocol/chibios/README.md](tmk_core/protocol/chibios/README.md). Chibios protocol supports Cortex-M such as STM32 and Kinetis.
74 Core library was separated to other branch `core`. <https://github.com/tmk/tmk_keyboard/tree/core>
76 In `Makefile` you need to set `TMK_DIR` to indicate core library location now.
78 TMK_DIR = ../../tmk_core
84 You can find some keyboard specific projects under `converter` and `keyboard` directory.
87 * [ps2_usb](converter/ps2_usb/) - [PS/2 keyboard to USB][GH_ps2]
88 * [adb_usb](converter/adb_usb/) - [ADB keyboard to USB][GH_adb]
89 * [m0110_usb](converter/m0110_usb) - [Macintosh 128K/512K/Plus keyboard to USB][GH_m0110]
90 * [terminal_usb](converter/terminal_usb/) - [IBM Model M terminal keyboard(PS/2 scancode set3) to USB][GH_terminal]
91 * [news_usb](converter/news_usb/) - [Sony NEWS keyboard to USB][GH_news]
92 * [x68k_usb](converter/x68k_usb/) - [Sharp X68000 keyboard to USB][GH_x68k]
93 * [sun_usb](converter/sun_usb/) - [Sun] to USB(type4, 5 and 3?)
94 * [pc98_usb](converter/pc98_usb/) - [PC98] to USB
95 * [usb_usb](converter/usb_usb/) - [USB to USB][GH_usb]
96 * [ibm4704_usb](converter/ibm4704_usb) - [IBM 4704 keyboard to USB][GH_ibm4704]
97 * [next_usb](converter/next_usb) - NeXT(Non-ADB) to USB, contributed by [BCG](https://github.com/bgould) and based on [Adafruit's work](https://learn.adafruit.com/usb-next-keyboard-with-arduino-micro/overview)
100 * [hhkb](keyboard/hhkb/) - [Happy Hacking Keyboard pro][GH_hhkb] **my main board**
101 * [alps64](keyboard/alps64/) - [Alps64 PCB](https://geekhack.org/index.php?topic=69740.0)
102 * [hbkb](keyboard/hbkb/) - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod)
103 * [Infinity](keyboard/infinity/) - Massdrop [Infinity keyboard][Infinity]
104 * [gh60](keyboard/gh60/) - [GH60] DIY 60% keyboard [prototype][GH60_proto] **my second board**
105 * [onekey](keyboard/onekey/) - Simple one key keyboard example
108 ### Projects based tmk_keyboard or tmk_core
109 https://github.com/tmk/tmk_keyboard/wiki/TMK-Based-Projects
112 [GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047
113 [GH_ps2]: http://geekhack.org/showwiki.php?title=Island:14618
114 [GH_adb]: http://geekhack.org/showwiki.php?title=Island:14290
115 [GH_hhkb_bt]: http://geekhack.org/showwiki.php?title=Island:20851
116 [GH_m0110]: http://geekhack.org/showwiki.php?title=Island:24965
117 [GH_news]: http://geekhack.org/showwiki.php?title=Island:25759
118 [GH_terminal]: http://geekhack.org/showwiki.php?title=Island:27272
119 [GH_x68k]: http://geekhack.org/showwiki.php?title=Island:29060
120 [GH_hbkb]: http://geekhack.org/showwiki.php?title=Island:29483
121 [GH_ibm4704]: http://geekhack.org/index.php?topic=54706.0
122 [GH60]: http://geekhack.org/index.php?topic=34959
123 [GH60_proto]: http://geekhack.org/index.php?topic=37570.0
124 [PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801
125 [Sun]: http://en.wikipedia.org/wiki/Sun-3
126 [Infinity]: https://www.massdrop.com/buy/infinity-keyboard-kit
127 [tmk_core]: https://github.com/tmk/tmk_core
133 **GPLv2** or later. Some protocol files are under **Modified BSD License**.
135 Third party libraries like LUFA, PJRC and V-USB have their own license respectively.
139 Build Firmware and Program Controller
140 -------------------------------------
141 See [tmk_core/doc/build.md](tmk_core/doc/build.md).
147 See [tmk_core/doc/keymap.md](tmk_core/doc/keymap.md).
153 To see help press `Magic` + `H`.
155 `Magic` key combination is `LShift` + `RShift` in many projects, but `Power` key on ADB converter.
156 `Magic` keybind can be vary on each project, check `config.h` in project directory.
158 Following commands can be also executed with `Magic` + key. In console mode `Magic` keybind is not needed.
160 ----- Command Help -----
161 c: enter console mode
162 d: toggle debug enable
163 x: toggle matrix debug
164 k: toggle keyboard debug
165 m: toggle mouse debug
166 v: print device version & info
169 e: print eeprom config
171 0/F10: switch to Layer0
172 1/F1: switch to Layer1
173 2/F2: switch to Layer2
174 3/F3: switch to Layer3
175 4/F4: switch to Layer4
176 PScr: power down/remote wake-up
177 Caps: Lock Keyboard(Child Proof)
178 Paus: jump to bootloader
182 Boot Magic Configuration - Virtual DIP Switch
183 ---------------------------------------------
184 Boot Magic are executed during boot up time. Press Magic key below then plug in keyboard cable.
185 Note that you must use keys of **Layer 0** as Magic keys. These settings are stored in EEPROM so that retain your configure over power cycles.
187 To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be pressed along with the following configuration keys. The salt key is configurable in `config.h`. See [tmk_core/common/bootmagic.h](tmk_core/common/bootmagic.h).
190 - Skip reading EEPROM to start with default configuration(`ESC`)
191 - Clear configuration stored in EEPROM to reset configuration(`Backspace`)
194 - Kick up Bootloader(`B`)
198 - Debug matrix enable(`D`+`X`)
199 - Debug keyboard enable(`D`+`K`)
200 - Debug mouse enable(`D`+`M`)
203 - Swap Control and CapsLock(`Left Control`)
204 - Change CapsLock to Control(`Caps Lock`)
205 - Swap LeftAlt and Gui(`Left Alt`)
206 - Swap RightAlt and Gui(`Right Alt`)
207 - Disable Gui(`Left Gui`)
208 - Swap Grave and Escape(`Grave`)
209 - Swap BackSlash and BackSpace(`Back Slash`)
210 - Enable NKRO on boot(`N`)
213 - Set Default Layer to 0(`0`)
214 - Set Default Layer to 1(`1`)
215 - Set Default Layer to 2(`2`)
216 - Set Default Layer to 3(`3`)
217 - Set Default Layer to 4(`4`)
218 - Set Default Layer to 5(`5`)
219 - Set Default Layer to 6(`6`)
220 - Set Default Layer to 7(`7`)
224 Mechanical Locking support
225 --------------------------
226 This feature makes it possible for you to use mechanical locking switch for `CapsLock`, `NumLock`
227 or `ScrollLock`. To enable this feature define these macros in `config.h` and use `KC_LCAP`, `KC_LN
228 UM` or `KC_LSCR` in keymap for locking key instead of normal `KC_CAPS`, `KC_NLCK` or `KC_SLCK`. Res
229 ync option tries to keep switch state consistent with keyboard LED state.
231 #define LOCKING_SUPPORT_ENABLE
232 #define LOCKING_RESYNC_ENABLE
236 Start Your Own Project
237 -----------------------
238 1. Add `tmk_core` into your repository using `git submodule` or `git subtree`.
239 2. Copy files from `tmk_keybaord` or other project similar to yours
240 3. Edit those files to support your keyboard.
242 See these as examples.
243 - https://github.com/tmk/infinity_ergodox
244 - https://github.com/tmk/whitefox
250 Use PJRC's `hid_listen` to see debug messages. You can use xprintf() to display debug info, see `tmk_core/common/xprintf.h`.
252 - https://www.pjrc.com/teensy/hid_listen.html
256 Files and Directories
259 * keyboard/ - keyboard projects
260 * converter/ - protocol converter projects
261 * tmk_core/ - core library
262 * tmk_core/doc/ - documents
268 - Report bugs in github **[Issues](https://github.com/tmk/tmk_keyboard/issues)**.
269 - Pull requets are also welcomed.
275 - Doesn't use Tab to indent, use 4-spaces instead.
279 Other Keyboard Firmware Projects
281 You can learn a lot about keyboard firmware from these. See [Other Projects](https://github.com/tmk/tmk_keyboard/wiki/Other-Projects) other than TMK.