Compare commits

...

3843 Commits

Author SHA1 Message Date
Jack Humbert
49e72632d2 remove more warnings 2017-02-16 13:13:38 -05:00
Jack Humbert
1ac5dc9e52 fix travis and reduce warnings 2017-02-16 11:37:46 -05:00
Jack Humbert
15dc540cac ignore PRs in versioning 2017-02-16 10:06:02 -05:00
Jack Humbert
e34c3936b7 Merge pull request #1105 from nrrkeene/master
The Ordinary Layout v5
2017-02-16 09:49:24 -05:00
Jack Humbert
0b76f4f508 Merge pull request #1103 from priyadi/promethium
My keymap updates
2017-02-16 09:48:58 -05:00
Nicholas Keene
d99f03a1a6 The Ordinary Layout has all the keys in the right places. 2017-02-15 23:11:04 -06:00
Nicholas Keene
7606f784dd This is the best layout, really, come look 2017-02-15 23:02:30 -06:00
Jack Humbert
77b6ac831e Merge pull request #1104 from qmk/layer_tap_toggle
Adds layer tap toggle as TT(layer)
2017-02-15 23:46:31 -05:00
Nicholas Keene
af942f2e57 The Ordinary Layout is the best one, the one you are looking for. Really. Check it out. 2017-02-15 22:33:04 -06:00
Jack Humbert
58823b4e03 fix weirdness with arm and mods 2017-02-15 23:20:35 -05:00
Jack Humbert
f89499e255 unique variable name 2017-02-15 18:14:07 -05:00
Jack Humbert
c2a9acffd7 publicise variables 2017-02-15 17:39:51 -05:00
Jack Humbert
1bb574fe48 add unicode common file, get names right 2017-02-15 17:09:47 -05:00
Jack Humbert
09add35e7f add unicode common file, get names right 2017-02-15 17:09:35 -05:00
Jack Humbert
cbabb4d417 split up unicode systems into different files 2017-02-15 16:36:31 -05:00
Jack Humbert
6788cbd762 give error if both unicode/map are enabled 2017-02-15 12:39:58 -05:00
Jack Humbert
69ea10f9a9 adds layer tap toggle 2017-02-15 11:25:33 -05:00
Priyadi Iman Nurcahyo
ac04fe0301 Added README for my keymap 2017-02-15 19:40:33 +07:00
Priyadi Iman Nurcahyo
3882f97d2e Move keyboard specific stuff to keyboard specific files, and vice versa 2017-02-15 19:22:58 +07:00
Priyadi Iman Nurcahyo
1eac297a2f Added copyright notice 2017-02-15 16:39:19 +07:00
Priyadi Iman Nurcahyo
c2f0207d59 Merge my Planck-like keyboards 2017-02-15 16:36:31 +07:00
Priyadi Iman Nurcahyo
b128617ede Merge branch 'master' into promethium 2017-02-15 15:51:42 +07:00
Nicholas Keene
54785c1976 The Ordinary Layout is boring, normal, typical, expected. 2017-02-14 22:47:11 -06:00
Nicholas Keene
e006b4a600 The Ordinary Layout has a feature for one-handed chorded typing 2017-02-14 22:32:31 -06:00
Nicholas Keene
1e09698146 All my friends us The Ordinary Layout because it doesn't force you to change you typing habits 2017-02-14 22:31:54 -06:00
Nicholas Keene
c055098952 The Ordinary Layout now has more symbols on the Symbols layer! So useful! 2017-02-14 22:30:07 -06:00
Jack Humbert
7bef285553 Merge pull request #1101 from priyadi/layer_state_set_kb
Add weak layer_state_set_kb hook
2017-02-14 21:33:04 -05:00
Priyadi Iman Nurcahyo
168c912027 Move Alt-Tab position 2017-02-15 05:38:40 +07:00
Priyadi Iman Nurcahyo
d0ee5292b6 Merge branch 'layer_state_set_kb' into promethium 2017-02-15 05:25:45 +07:00
Priyadi Iman Nurcahyo
bd8d717f1f Fix bug fix attempt 2017-02-15 05:25:08 +07:00
Priyadi Iman Nurcahyo
369b3dc723 Merge branch 'layer_state_set_kb' into promethium 2017-02-15 05:23:25 +07:00
Priyadi Iman Nurcahyo
d96175937b Bug fix & added default_layer_state_set_kb 2017-02-15 05:20:15 +07:00
Priyadi Iman Nurcahyo
3c8c3ebe3f Bug fix & added default_layer_state_set_kb 2017-02-15 05:19:31 +07:00
Priyadi Iman Nurcahyo
5e31074633 Merge branch 'layer_state_set_kb' into promethium 2017-02-15 05:11:24 +07:00
Priyadi Iman Nurcahyo
d369bfb83a Add layer_state_set_kb hook 2017-02-15 05:02:15 +07:00
Priyadi Iman Nurcahyo
df311c7b40 num, func, punc 3state layer done right 2017-02-15 05:01:03 +07:00
Priyadi Iman Nurcahyo
3758cfd95f GUI layer fixes 2017-02-14 04:17:09 +07:00
Priyadi Iman Nurcahyo
6c692fca7d Alt-tab handling in GUI layer 2017-02-14 03:58:12 +07:00
Priyadi Iman Nurcahyo
7ae677dcb7 remove stand alone punc layer switcher for now 2017-02-14 03:18:34 +07:00
Priyadi Iman Nurcahyo
02662e3869 Add explicit punctuation key for greek layers 2017-02-14 00:46:06 +07:00
Priyadi Iman Nurcahyo
c2531ff43b Func + Num = Punc 2017-02-14 00:44:02 +07:00
Jack Humbert
fd2925efba Merge pull request #1094 from priyadi/faux_clicky
Implement faux-clicky feature
2017-02-13 10:58:50 -05:00
Jack Humbert
21ad0c5bcd Merge pull request #1095 from Mauin/gonnerd/reset_documentation
GON NerD: Add reset button to documentation and default keymap
2017-02-13 10:56:47 -05:00
Priyadi Iman Nurcahyo
15e2dbb2a9 move GRV to ESC position 2017-02-13 22:18:36 +07:00
Priyadi Iman Nurcahyo
903e4d3193 Fix faux clicky toggle key 2017-02-13 20:13:33 +07:00
Marvin Ramin
24a40d63c9 define missing KC_NO macro 2017-02-13 13:44:53 +01:00
Priyadi Iman Nurcahyo
75e57b4bcb Merge branch 'faux_clicky' into promethium 2017-02-13 18:01:57 +07:00
Priyadi Iman Nurcahyo
200488bb31 Merge branch 'promethium' of github.com:priyadi/qmk_firmware into promethium 2017-02-13 17:58:42 +07:00
Priyadi Iman Nurcahyo
40ced77606 Update my Planck layout 2017-02-13 17:58:06 +07:00
Priyadi Iman Nurcahyo
97472aabe6 Forgot to add ifdef to optional feature 2017-02-13 17:58:06 +07:00
Priyadi Iman Nurcahyo
68e5c85999 Remove assignment warning 2017-02-13 17:58:06 +07:00
Priyadi Iman Nurcahyo
455568d197 Workaround to remove warning 2017-02-13 17:58:06 +07:00
Priyadi Iman Nurcahyo
5d5f2ff50d Some space optimization and housekeeping 2017-02-13 17:58:06 +07:00
Marvin Ramin
b28fb29898 adds documentation for reset button and adds one to the default keymap 2017-02-13 09:03:43 +01:00
Priyadi Iman Nurcahyo
8c93c5d9ab Add keycodes to turn on, turn off and toggle faux clicky 2017-02-13 14:55:35 +07:00
Jack Humbert
4010360912 adds planck/rev3 makefile so subproject is found 2017-02-12 23:58:44 -05:00
Priyadi Iman Nurcahyo
c68e596f32 Implement faux-clicky feature 2017-02-13 08:03:07 +07:00
Jack Humbert
1e97f77278 update travis badge 2017-02-12 20:01:04 -05:00
Jack Humbert
68970679e7 Merge pull request #1092 from lucwastiaux/master
updated ergodox/dvorak_programmer keymap
2017-02-12 19:38:59 -05:00
luc wastiaux
3bf6c43de7 updated readme 2017-02-13 07:46:07 +08:00
luc wastiaux
352d79e1fb Merge remote-tracking branch 'upstream/master' 2017-02-13 07:44:28 +08:00
Jack Humbert
4505db5d0e Merge pull request #1091 from smt/smt/tv44
Add smt keymap for tv44 (MiniVan)
2017-02-12 18:42:44 -05:00
luc wastiaux
5f8535b356 change thumb cluster key to be shift 2017-02-13 07:16:01 +08:00
Stephen Tudor
b6730285b4 Add smt keymap for tv44 (MiniVan) 2017-02-12 12:46:24 -05:00
Jack Humbert
a773124537 send travis stuff to gitter 2017-02-12 12:23:03 -05:00
Priyadi Iman Nurcahyo
97e6bb5a4e Merge branch 'master' into promethium 2017-02-12 17:52:09 +07:00
Priyadi Iman Nurcahyo
bc1308c112 Update my Planck layout 2017-02-12 05:04:14 +07:00
Jack Humbert
a0c2305bd1 Merge pull request #1089 from priyadi/fix_ps2_mouse_warning
Suppress warnings from ps2_mouse.h
2017-02-11 13:18:42 -05:00
Priyadi Iman Nurcahyo
1b7439bfb1 Forgot to add ifdef to optional feature 2017-02-12 00:20:47 +07:00
Priyadi Iman Nurcahyo
aaa58a8d79 Supress warnings from ps2_mouse.h 2017-02-12 00:13:36 +07:00
Priyadi Iman Nurcahyo
e52d793c79 Merge branch 'master' into promethium 2017-02-12 00:09:25 +07:00
Priyadi Iman Nurcahyo
ce6b68f85b Remove assignment warning 2017-02-12 00:07:33 +07:00
Priyadi Iman Nurcahyo
2c1ef84b22 Workaround to remove warning 2017-02-12 00:02:36 +07:00
Priyadi Iman Nurcahyo
89d3ff8f18 Some space optimization and housekeeping 2017-02-12 00:00:01 +07:00
Jack Humbert
6d6b3ee9fb Merge pull request #1065 from milestogo/master
Update to kinesis keymaps
2017-02-11 11:51:06 -05:00
Jack Humbert
3f0b491fc0 Merge pull request #1082 from priyadi/right-side-dual-function
Implement tap mod dual role for right side mods.
2017-02-11 11:50:32 -05:00
Jack Humbert
6bb479ea45 Merge pull request #1085 from priyadi/promethium
Promethium keyboard layout update
2017-02-11 11:49:00 -05:00
Jack Humbert
5bdddb7821 Merge pull request #1087 from mneme/master
Updated keymap for atreus62/mneme
2017-02-11 11:48:39 -05:00
Jack Humbert
199458378b Merge pull request #1088 from Mauin/gon_nerd
add GON NerD
2017-02-11 11:48:11 -05:00
Jack Humbert
bfc33a56d7 don't try to build the readme 2017-02-11 11:39:57 -05:00
Marvin Ramin
5daa3a8836 add GON NerD 2017-02-11 17:14:40 +01:00
Priyadi Iman Nurcahyo
4163a3819e Add regular space to B+N on GUI layer for repeating space 2017-02-11 22:16:19 +07:00
Priyadi Iman Nurcahyo
4c05e39a02 Switch to Emoji layer using Punc + greek 2017-02-11 22:13:35 +07:00
Priyadi Iman Nurcahyo
4586b19be3 Turn off capslock when entering num layer 2017-02-11 22:07:04 +07:00
Priyadi Iman Nurcahyo
c6123b2e4a Move X in number layer away from space 2017-02-11 22:03:34 +07:00
Priyadi Iman Nurcahyo
513286cf98 LSpace + RSpace = switch layer 2017-02-11 21:54:10 +07:00
David Olsson
52e2afe673 correct spelling in readme 2017-02-11 15:09:30 +01:00
Priyadi Iman Nurcahyo
79de0cd119 Implement Capslock LED 2017-02-11 19:03:18 +07:00
David Olsson
052f81aaca Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2017-02-11 10:50:37 +01:00
David Olsson
aa69337cf5 update readme 2017-02-11 10:49:53 +01:00
Priyadi Iman Nurcahyo
9fc3afbef4 simplify battery calculation for now 2017-02-11 14:50:43 +07:00
Priyadi Iman Nurcahyo
b31ac35441 Fix emoji layer 2017-02-11 01:30:08 +07:00
Priyadi Iman Nurcahyo
b92515f139 Make room for 'loose keycodes' by halving UNICODE_MAP range 2017-02-11 00:36:08 +07:00
Priyadi Iman Nurcahyo
fdd06d3fca RShift + LShift = Capslock 2017-02-11 00:21:27 +07:00
Priyadi Iman Nurcahyo
bf31f516e3 Add reset keycode 2017-02-11 00:07:44 +07:00
Priyadi Iman Nurcahyo
909fd4ae64 Generalize layer indicators 2017-02-11 00:07:10 +07:00
Jack Humbert
835556da91 Merge pull request #1083 from VoodaGod/bone2planck
fixed readme (i swear)
2017-02-10 11:03:43 -05:00
Priyadi Iman Nurcahyo
229e38f097 Add ifdefs for keyboard layouts 2017-02-10 22:15:15 +07:00
Priyadi Iman Nurcahyo
5944ab246a Implement battery level indicator 2017-02-10 21:28:46 +07:00
luc wastiaux
420a032e8d made left shift an MO for SHELL_NAV 2017-02-10 21:44:27 +08:00
Priyadi Iman Nurcahyo
07879bf66b Add function to cycle backlight modes 2017-02-10 17:45:12 +07:00
Priyadi Iman Nurcahyo
a5b8db52a0 Activate SYS layer by pressing both Ctrls 2017-02-10 17:11:52 +07:00
VoodaGod
c0cfacda98 fixed readme (i swear) 2017-02-10 09:51:08 +01:00
Priyadi Iman Nurcahyo
4ffbfe8298 Restore GUI layer 2017-02-10 14:43:56 +07:00
Priyadi Iman Nurcahyo
0f92d305e2 Add slash/question mark to punc/num layer 2017-02-10 14:32:24 +07:00
Priyadi Iman Nurcahyo
a4a57d47ed Reimplement GUI Layer 2017-02-10 13:13:04 +07:00
Jack Humbert
6c462e0c01 Merge pull request #1073 from qmk/backlight_changes
Open backlight functionality to all ports
2017-02-09 20:14:35 -05:00
Priyadi Iman Nurcahyo
27e7eac279 Reorganize punctuation & numbers layer 2017-02-10 06:51:10 +07:00
Priyadi Iman Nurcahyo
dee6a6982c Fix LED indicator 2017-02-10 06:31:29 +07:00
Priyadi Iman Nurcahyo
97816df7e7 Implement tap mod dual role for right side mods. 2017-02-10 06:06:59 +07:00
Priyadi Iman Nurcahyo
af97d6b58e Add dvorak & norman layout. Add sys layer. 2017-02-10 06:01:59 +07:00
Priyadi Iman Nurcahyo
92308ed0e5 Remove audio stuff 2017-02-10 02:08:55 +07:00
Jack Humbert
d537120eab Merge pull request #1078 from VoodaGod/bone2planck
updated Bone2Planck Keymap, Readme & fixed Makefile
2017-02-09 10:38:46 -05:00
Jack Humbert
93ee3bea37 Merge pull request #1079 from r2d2rogers/patch-1
[Typo] correct link to default keymap in readme.
2017-02-09 10:38:09 -05:00
Rob Rogers
2b95f41b91 [Typo] correct link to default keymap in readme. 2017-02-09 09:08:50 -06:00
VoodaGod
c330872f47 updated layout & readme 2017-02-09 13:07:59 +01:00
VoodaGod
986b065654 more formatting 2017-02-09 12:17:13 +01:00
VoodaGod
1becbcb013 readme formatting changes 2017-02-09 11:25:50 +01:00
VoodaGod
cb590bb37b updated readme 2017-02-09 11:21:52 +01:00
VoodaGod
9a64eb8533 updated bone2planck keymap & readme 2017-02-09 10:01:39 +01:00
Priyadi Iman Nurcahyo
4be4ed3397 Add USB-BLE manual output switching and indicator 2017-02-09 01:40:22 +07:00
Priyadi Iman Nurcahyo
3f2c0bfa86 Merge branch 'master' into promethium 2017-02-09 01:01:24 +07:00
Jack Humbert
0a9fda968d Merge pull request #1074 from dungdung/kc60_led
Moved KC60 capslock LED code to standard led_set_kb…
2017-02-07 21:25:00 -05:00
Jack Humbert
ad1327cd00 accept numbers in travis build 2017-02-07 20:51:50 -05:00
dungdung
304d84cd08 Moved KC60 capslock LED code to standard led_set_kb so it can be overridden by users 2017-02-07 16:55:40 -08:00
Jack Humbert
f5c8c5d4c8 Merge pull request #1070 from jimmyhchan/fixSplit
Lets split readme eeprom master hand fixes
2017-02-07 15:46:29 -05:00
Jimmy Chan
56d2198b3d rename I2C_MASTER_RIGHT to MASTER_RIGHT since this works for serial as well 2017-02-07 12:36:52 -08:00
Jimmy Chan
048ef311dc udpate readme to reflect QMK and not having the Makefile from ahtn's repo 2017-02-07 12:33:35 -08:00
Jimmy Chan
9c02e2ab49 correctly put eeprom EE_HANDS at addr 0x0a (decimal 10). default to rev2 project. do not default EE_HANDS for the serial keymap
if you compare split_util.h with the original project by ahtn, the
address we look for isLeftHand config went from addr 7 to addr 10
(decimal). The EEP files were not updated.

EE_HANDS should not be enabled by default since it's more confusing for
most users
2017-02-07 12:30:24 -08:00
Jack Humbert
b4e30d3929 added functionality for just a port 2017-02-07 15:23:56 -05:00
Jack Humbert
d639bd2021 Merge pull request #1072 from nicinabox/improve-ls-avrdude-target
Check for Pro Micro serial port automatically
2017-02-07 13:52:03 -05:00
Jack Humbert
42ea912fde Merge pull request #1062 from luizribeiro/fix-win
Fix V-USB bug on Windows 10
2017-02-07 13:49:10 -05:00
Jack Humbert
13c394fba4 Merge pull request #1071 from dungdung/rgb_tweaks
RGB tweaks
2017-02-07 13:32:31 -05:00
Jack Humbert
c0c69a1a7c Merge pull request #1068 from adzenith/master
Minor cleanup
2017-02-07 13:27:41 -05:00
Jack Humbert
3c7fa0acc1 Merge pull request #1046 from LukeSilva/master
Add Tapping Macros to QMK
2017-02-07 13:18:47 -05:00
Jack Humbert
0c2b6951a6 Merge pull request #1057 from priyadi/selectable_output
Implement runtime selectable output (USB or BT)
2017-02-07 13:12:29 -05:00
Jack Humbert
de659486f5 pass through travis errors 2017-02-07 12:36:25 -05:00
Jack Humbert
c256ad51bd Merge pull request #1056 from upils/master
Add reddot handwired keyboard.
2017-02-07 12:20:29 -05:00
Jack Humbert
790dab27b6 Merge pull request #1053 from TerryMathews/master
Let's Split: establish rev2fliphalf subproject
2017-02-07 12:19:45 -05:00
Jack Humbert
616b8604b0 variable scope fix for travis 2017-02-07 11:53:43 -05:00
Jack Humbert
6a92cc2897 correctly assign bash variable 2017-02-07 02:00:07 -05:00
Jack Humbert
c8d5376f11 fix typo 2017-02-07 01:54:58 -05:00
Jack Humbert
f79f38d726 add comma 2017-02-07 01:53:46 -05:00
Jack Humbert
2179a548f4 Merge pull request #1069 from hot-leaf-juice/master
change cmd-l and cmd-r for actual home and end
2017-02-07 01:42:30 -05:00
Jack Humbert
19d63ad72c try building only keyboards needed 2017-02-07 01:35:10 -05:00
Jack Humbert
e5a2306804 Merge pull request #1041 from folkert4/master
Added Espynn's keymap
2017-02-07 00:37:23 -05:00
Jack Humbert
ab07d71b22 Merge pull request #1047 from lordchair/keymap_yale
yale planck layout
2017-02-07 00:30:56 -05:00
Nic Aitch
3dbdd15304 Check for a new serial port every second 2017-02-06 19:57:34 -06:00
Jack Humbert
d4c88626bd Merge pull request #1048 from smt/smt/planck
Add smt's keymap for Planck
2017-02-06 20:21:42 -05:00
Jack Humbert
198a2929ed Merge pull request #1059 from qmk/hf/algr_t
Introduces ALGR_T for dual-function AltGr
2017-02-06 19:33:33 -05:00
Jack Humbert
b5159c964a Merge pull request #1036 from nicinabox/lets-split-improvements
Lets Split flashing improvements
2017-02-06 19:33:07 -05:00
Jack Humbert
4348fb54d6 Merge pull request #960 from ofples/feature/combos
Keyboard combination triggers
2017-02-06 19:31:45 -05:00
TerryMathews
2a2be010d9 Reverse rev2 and rev2fliphalf
Flipped definitions on what constitutes "fliphalf" by popular demand.
2017-02-06 19:23:10 -05:00
TerryMathews
5d55a44afa Revert "Reverse rev2 and rev2fliphalf"
This reverts commit 0537977ba1.
2017-02-06 19:21:21 -05:00
TerryMathews
0537977ba1 Reverse rev2 and rev2fliphalf
Flipped definitions on what constitutes "fliphalf" by popular demand.
2017-02-06 19:14:57 -05:00
Jack Humbert
b6ffda4849 Merge pull request #1010 from SjB/oneshot_timeout_fix
oneshot timeout would only timeout after an event.
2017-02-06 18:57:23 -05:00
Jack Humbert
449ab9109a Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2017-02-06 18:28:50 -05:00
Jack Humbert
35edb382ee [skip build] testing travis script 2017-02-06 18:28:37 -05:00
Jack Humbert
0a3c5c06fe Merge pull request #981 from jonasoberschweiber/osx-surrogate-pairs
Add support for Unicode supplementary planes on OS X
2017-02-06 18:00:47 -05:00
Jack Humbert
5c8cdfd2b5 [skip build] testing travis script 2017-02-06 17:51:20 -05:00
dungdung
a7882b1ffc Added non-animated gradient mode 2017-02-06 14:18:20 -08:00
dungdung
5a1b68d562 Added mode reverse step function 2017-02-06 14:18:20 -08:00
dungdung
0e548f8b5d Christmas mode now works with even RGBED_NUM
Added Christmas mode steps to reduce red and green colors blending into each other
Added Christmas mode interval
Increased green hue to 120
2017-02-06 14:18:20 -08:00
Jack Humbert
246d2583ff Merge pull request #1030 from SjB/refactor_register_code16
speeding up (un)register_code16
2017-02-06 17:06:53 -05:00
Jack Humbert
ee386a29d1 [skip build] testing travis script 2017-02-06 17:00:30 -05:00
Jack Humbert
cf8dac3538 [skip build] testing travis script 2017-02-06 16:56:39 -05:00
Jack Humbert
98adda34c9 [skip build] testing travis script 2017-02-06 16:54:54 -05:00
Jack Humbert
470c8436c2 [skip build] testing travis script 2017-02-06 16:46:44 -05:00
Jack Humbert
3a76f24cbd [skip build] testing travis script 2017-02-06 16:42:18 -05:00
Jack Humbert
835cacb031 fixes qmk.fm linking, tests out auto version incrementing 2017-02-06 16:04:28 -05:00
Callum Oakley
21015918b4 change cmd-l and cmd-r for actual home and end 2017-02-06 12:40:32 +00:00
Nikolaus Wittenstein
06d21009b2 Minor cleanup 2017-02-05 19:55:27 -05:00
Nikolaus Wittenstein
8cbf61c919 Add new DIODE_DIRECTION option
The previous two options were COL2ROW, ROW2COL; this adds CUSTOM_MATRIX
to disable the built-in matrix scanning code.

Most notably, this obviates the need to set MATRIX_ROW_PINS or
MATRIX_COL_PINS.
2017-02-05 19:47:33 -05:00
Nikolaus Wittenstein
d961c80df2 Remove unused matrix_raw variable in matrix.c 2017-02-05 19:41:08 -05:00
milestogo
b0dfb037dc Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2017-02-04 20:08:07 -08:00
Nikolaus Wittenstein
101465b6ed Add missing header to ergodox ordinary keymap 2017-02-03 21:09:50 -05:00
Nikolaus Wittenstein
3faf06c880 Fix compile warnings in egodox robot_test_layout
Fixes the warning "right shift count >= width of type" by adding UL to
the end of constants.
2017-02-03 21:07:24 -05:00
Nikolaus Wittenstein
e667e9f6da Fix compile warnings in light_ws2812.c
Fixes the warning "function declaration isn't a prototype" by explicitly
making the parameter list void.
2017-02-03 21:00:13 -05:00
Erez Zukerman
f0633f2540 Merge pull request #1063 from osamuaoki/master
Typo fixes
2017-02-02 18:33:04 -05:00
Erez Zukerman
404f79ef14 Merge pull request #1058 from edasque/master
Reverted Dockerfile to put the CMD back
2017-02-02 18:31:25 -05:00
Osamu Aoki
f787f4291a Typo fixes 2017-02-02 23:15:08 +09:00
Luiz Ribeiro
a3da586505 Fix V-USB bug on Windows 10 2017-02-01 21:57:44 -05:00
Erez Zukerman
45e5b32781 Merge pull request #1049 from SjB/tap_dance_save_oneshot_mods
race condition between oneshot_mods and tap_dance
2017-02-01 20:12:44 -05:00
Erez Zukerman
a5d10e8c2e Merge pull request #1054 from deadcyclo/master
Adds support for ergodox shine and unicode and emoji support to the deadcyclo layout
2017-02-01 20:11:37 -05:00
Priyadi Iman Nurcahyo
e7c4f621f1 Restrict outputselect to LUFA only for now 2017-02-01 22:30:06 +07:00
Priyadi Iman Nurcahyo
98f9a2e6df Fix wrong include 2017-02-01 20:18:52 +07:00
Priyadi Iman Nurcahyo
2bef8b5b88 Limit outputselect to AVR only for now 2017-02-01 19:37:52 +07:00
Priyadi Iman Nurcahyo
72e95809a1 Move outputselect to parent dir to satisfy non LUFA keyboards 2017-02-01 17:55:13 +07:00
Priyadi Iman Nurcahyo
c17070eca5 Add layer switcher keycodes: OUT_AUTO, OUT_USB, OUT_BT, OUT_BLE 2017-02-01 15:35:21 +07:00
Brendan Johan Lee
02a95ee08c Merge remote-tracking branch 'upstream/master' 2017-02-01 08:56:35 +01:00
lucwastiaux
467e284178 increase timeout for dual mode caps key 2017-02-01 13:46:00 +08:00
Erez Zukerman
f46c2b3ca0 Introduces ALGR_T for dual-function AltGr 2017-01-31 21:31:05 -05:00
Erik Dasque
407f949e4b Reverted Dockerfile to put the CMD back 2017-01-31 19:59:59 -05:00
Erez Zukerman
748316fc43 Merge pull request #1039 from zabereer/albert_ergodox_keymap
albert ergodox keymap
2017-01-31 19:29:19 -05:00
Erez Zukerman
0081101c30 Merge pull request #1055 from matzebond/master
update my neo2 keymap
2017-01-31 19:25:46 -05:00
Priyadi Iman Nurcahyo
d8a9c63c26 Implement runtime selectable output (USB or BT) 2017-02-01 05:07:05 +07:00
upils
f36fc1d2e5 Add reddot handwired keyboard. 2017-01-31 22:37:03 +01:00
milestogo
e8ba4838d3 fixing kinesis reboot 2017-01-30 19:39:23 -08:00
Matthias Schmitt
4c3630dc17 update my neo2 keymap 2017-01-30 23:10:28 +01:00
Brendan Johan Lee
f70758622b [deadcyclo layout] Refactoring. Use custom functions and macros 2017-01-30 19:42:27 +01:00
Brendan Johan Lee
f400ac1d7d [deadcyclo layout] fixed failing tests 2017-01-30 15:45:16 +01:00
Brendan Johan Lee
d43f4a5f57 Merge remote-tracking branch 'upstream/master' 2017-01-30 12:59:17 +01:00
TerryMathews
ef9e544a7e Let's Split: establish rev2fliphalf subproject
Subproject to accomodate second half pad built in opposite orientation
(places TRRS jacks on opposing edges for shorter cable runs)
2017-01-29 22:22:32 -05:00
SjB
5a860b71a1 race condition between oneshot_mods and tap_dance
since the keycode for a tap dance process gets process only after the
TAPPING_TERM timeout, you really only have ONESHOT_TIMEOUT -
TAPPING_TERM time to tap or double tap on the key. This fix save the
oneshot_mods into the action.state structure and applies the mods with
the keycode when it's registered. It also unregisters the mod when the
the tap dance process gets reset.
2017-01-29 13:26:31 -05:00
SjB
45e0d09414 moved oneshot cancellation code outside of process_record.
The oneshot cancellation code do not depend on the
action_tapping_process and since process_record get called via the
action_tapping_process logic moved the oneshot cancellation code into
the action_exec function just before the action_tapping_process call
2017-01-29 13:01:47 -05:00
SjB
f644b9a07a registering a weak_mods when using register_code16
Scenario:
Locking the KC_LSHIFT, and then using a tap dance key that registers a
S(KC_9) will unregister the KC_LSHIFT.

The tap dance or any keycode that is registered should not have the
side effect of cancelling a locked moditifier. We should be using a
similar logic as the TMK codes in tmk_core/comman/action.c:158.
2017-01-29 12:29:43 -05:00
Priyadi Iman Nurcahyo
3835b4bfcc Merge branch 'promethium' of github.com:priyadi/qmk_firmware into promethium 2017-01-29 18:38:15 +07:00
Priyadi Iman Nurcahyo
011811af68 minimize LEDs 2017-01-29 18:37:49 +07:00
Priyadi Iman Nurcahyo
306f43e5ee fix greek layers 2017-01-29 18:37:49 +07:00
Priyadi Iman Nurcahyo
c5ab0b2b61 Implement greek layers on my Promethium layout 2017-01-29 18:37:49 +07:00
Yale Thomas
8df30c1c56 added picture of layout 2017-01-28 18:44:14 -08:00
Yale Thomas
ad0ce40db0 usability tweaks 2017-01-28 18:44:01 -08:00
Yale Thomas
d549002d22 mouse keys added 2017-01-28 18:43:40 -08:00
Yale Thomas
4eafa86564 new 'yale' keymap 2017-01-28 18:43:40 -08:00
Stephen Tudor
1d9e0b0120 s/Bkps/Bksp 2017-01-28 20:54:34 -05:00
Luke Silva
77e54e34e1 Add luke keymap, as an example of the tapping macros 2017-01-29 11:27:38 +11:00
Luke Silva
a3357d078e Add support for various tapping macros
A macro key can now be easily set to act as a modifier on hold, and
press a shifted key when tapped. Or to switch layers when held, and
again press a shifted key when tapped.

Various other helper defines have been created which send macros when
the key is pressed, released and tapped, cleaning up the
action_get_macro function inside keymap definitions.

The layer switching macros require a GCC extension - 'compound
statements enclosed within parentheses'. The use of this extension is
already present within the macro subsystem of this project, so its use
in this commit should not cause any additional issues.

MACRO_NONE had to be cast to a (macro_t*) to suppress compiler
warnings within some tapping macros.
2017-01-28 18:42:35 +11:00
Stephen Tudor
7c24ecf580 Carry over Planck updates to my Preonic keymap 2017-01-28 01:38:58 -05:00
Stephen Tudor
321904b8e3 Improve Planck keymap
- added escape+shift mod-tap key
- replaced BRITE with backtick
2017-01-28 01:37:59 -05:00
Stephen Tudor
fa72689145 Merge branch 'master' into smt/planck
* master:
  Clarify license on abnt2 keymap (#1038)
  replace jackhumbert with qmk
  Add gitter image, start update to qmk org
  Remove COLEMAK from preonic_keycodes enum
  layer defines to enum
  Update readme for smt Preonic keymap
  Add smt keymap for Preonic
  updated all the other keymaps to support the new changes.
  fix: infinity60 keyboard was not using quantum features.
  Compare Makefile with itself instead of using `--help`
2017-01-28 00:51:07 -05:00
skullydazed
ec05f65421 Merge pull request #1043 from potz/patch-1
Clarify license on abnt2 keymap (#1038)
2017-01-27 18:40:59 -08:00
lucwastiaux
f6feee8167 eliminate references to shell_layer 2017-01-28 09:45:13 +08:00
lucwastiaux
a1c53d0f93 documented dual mode capslock 2017-01-28 09:42:55 +08:00
milestogo
cb2d4fb80b split kinesis layout into ergodox and planck style symbol layers 2017-01-27 16:45:18 -08:00
Potiguar Faga
2fe18a50ec Clarify license on abnt2 keymap (#1038) 2017-01-27 18:22:44 -02:00
folkert4
8c794d73fa Added Espynn's keymap 2017-01-27 13:51:39 -05:00
Jack Humbert
a28f689387 Merge pull request #869 from dylanjgscott/master
Use `type cmp` to test for cmp in Makefile
2017-01-27 11:23:02 -05:00
lucwastiaux
93c1bfa646 dual capslock functionality, activating shell nav or brackets 2017-01-27 23:55:33 +08:00
Brendan Johan Lee
d7aa4724fb Merge remote-tracking branch 'upstream/master' 2017-01-27 15:24:08 +01:00
Brendan Johan Lee
13fa63b192 [deadcyclo layout] Added more unicode keys and ibus unicode compose trigger keys 2017-01-27 13:53:02 +01:00
Jack Humbert
712f3de16f Merge pull request #1035 from qmk/qmk_org_changes
Updated urls due to transfer to qmk org
2017-01-27 00:28:46 -05:00
Luke Silva
cfc4149712 Add ability to use tap macros without using functions 2017-01-27 10:28:42 +11:00
Albert Pretorius
fffe76a7b7 albert ergodox keymap 2017-01-26 20:07:47 +00:00
Nic Aitch
890ecf6a2a Update readme 2017-01-26 09:31:40 -06:00
Nic Aitch
3131d65563 Add avrdude target 2017-01-26 09:31:27 -06:00
Luke Silva
87bc36253d Fix documentation for TMK actions 2017-01-26 22:44:22 +11:00
Brendan Johan Lee
8a645aa9ad Merge remote-tracking branch 'upstream/master' 2017-01-26 11:56:32 +01:00
Jack Humbert
c9ca368008 replace jackhumbert with qmk 2017-01-26 01:52:43 -05:00
Jack Humbert
aac7c0aa4d Merge pull request #1029 from SjB/qmk_infinity60
fix: infinity60 keyboard was not using quantum features.
2017-01-26 01:28:44 -05:00
Jack Humbert
0212a30aa6 Merge pull request #1033 from smt/smt/preonic
Add smt's keymap for Preonic
2017-01-26 01:27:51 -05:00
Jack Humbert
1b20243092 Add gitter image, start update to qmk org 2017-01-26 01:26:17 -05:00
Stephen Tudor
63e406eca4 Add smt keymap for Planck 2017-01-26 00:24:51 -05:00
Stephen Tudor
6546dddddb Remove COLEMAK from preonic_keycodes enum 2017-01-25 10:57:42 -05:00
Jack Humbert
7e3962f36a Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2017-01-25 10:02:06 -05:00
Jack Humbert
938422ce99 layer defines to enum 2017-01-25 10:02:01 -05:00
Brendan Johan Lee
8af48194f2 [deadcyclo layout] Added lotsof new emojis and some new unicode keys 2017-01-25 15:16:38 +01:00
Stephen Tudor
51fe4f0d34 Update readme for smt Preonic keymap 2017-01-25 01:08:51 -05:00
Stephen Tudor
b3cf96ec2e Add smt keymap for Preonic 2017-01-25 00:47:45 -05:00
Brendan Johan Lee
d0db044164 Merge remote-tracking branch 'upstream/master' 2017-01-24 21:56:18 +01:00
Brendan Johan Lee
37ed3d13a4 [deadcyclo layout] Added unicode layer 2017-01-24 21:54:34 +01:00
Brendan Johan Lee
3c32e38036 [deadcyclo layout] Added support for ergodox ez shine 2017-01-24 19:10:35 +01:00
Jack Humbert
71137deba2 Merge pull request #1014 from SjB/lcd_mods_status
added mods status bit to visualizer.
2017-01-24 00:34:55 -05:00
SjB
9111cc00f5 updated all the other keymaps to support the new changes.
qmk firmware requires the matrix_init_user and matrix_scan_user
function to be implementated. Added these function to all the existing
keymaps.
2017-01-24 00:24:01 -05:00
SjB
2b3859937b speeding up (un)register_code16
In register_code16 and unregister_code16 we call register_code and
unregister_code twice, once for the mods and once for the keycode.
The (un)register_code have many check to see that keycode we have sent
however because we know that we are sending it a mods key, why not
just skip all of it and call (un)register_mods instead. This will skip
alot of checks and should speedup the loop a little.
2017-01-23 23:16:57 -05:00
SjB
a777495683 fix: infinity60 keyboard was not using quantum features.
the quantum matrix codes where not being initialized or/and called
so no feature of the quantum firmware could be used. These codes have
been added and now we can enjoy the quantum firmware goodness.
2017-01-23 23:15:31 -05:00
Dylan Scott
245f77b863 Compare Makefile with itself instead of using --help 2017-01-24 13:53:46 +11:00
Jack Humbert
841d7e6a1d turn off rgb_midi in ez 2017-01-23 13:55:24 -05:00
Jack Humbert
6d377bcc9c Merge pull request #1026 from TerryMathews/master
Let's Split: More code cleanup
2017-01-23 00:33:29 -05:00
TerryMathews
372af5e3f6 More code cleanup
Missed a few commented out vestigal defines in revx/config.h that had
been moved to keymap/serial and i2c.
2017-01-22 22:06:53 -05:00
Jack Humbert
0026f4ec09 Merge pull request #1018 from hot-leaf-juice/master
simplified my keymap
2017-01-22 19:01:34 -05:00
Christopher Browne
89461e743e More keyboard map tweaking (#1019)
* Add HOME/END keys as upper/lower on arrow-up/down

* Reduce .hex file size by turning off unneeded options

* Put digit keypad onto left hand upon RAISE; this will sometimes be preferable to double-hits of right hand
2017-01-22 19:01:07 -05:00
Jack Humbert
79a823d802 Merge pull request #1020 from remigius42/master
Swiss German layout for Ergodox EZ & Infinity
2017-01-22 18:59:57 -05:00
Jack Humbert
a8a1fbbac8 Merge pull request #1022 from lucwastiaux/master
Improvements to Dvorak Programmer Ergodox keymap
2017-01-22 18:59:12 -05:00
Jack Humbert
a54944ac33 Merge pull request #1021 from luizribeiro/ps2avrGB
Support for ps2avrGB / winkeyless.kr boards
2017-01-22 18:58:46 -05:00
Jack Humbert
405b2ae267 Merge pull request #1023 from TerryMathews/master
Corrects Let's Split code
2017-01-22 18:57:44 -05:00
TerryMathews
99d548c4fb Missed commenting out notes at end of line 2017-01-22 15:57:30 -05:00
TerryMathews
a00957abca Fixed keymap matrix on rev2
* Fixed keymap matrix in rev2 so that left half and right half match
when in same orientation.
2017-01-22 15:50:08 -05:00
TerryMathews
efa526f570 Created lines to uncomment keyboards built upside down
* Reverses column order to fix left-to-right key order that occurs if
PCB assembled upside down.
2017-01-22 15:46:43 -05:00
TerryMathews
9d24943ec1 Refactor code to eliminate duplicate defines
* Moved duplicated defines out of inappropriate source files (matrix
pins in keymap subdirectory)
* Eliminated default keymap directory
* Hardcoded serial keymap to use serial defines and EE_CONFIG
* Hardcoded i2c keymap to use i2c defines
2017-01-22 15:37:48 -05:00
Luiz Ribeiro
84661ac44b Upgrade AVR 8-bit Toolchain to 3.5.4 on Travis 2017-01-22 12:38:42 -05:00
Andreas Schmidt
08c192caea SG Ergodox layout: Updated layout documentation
- Swiss German Ergodox layout:
    Updated layout documentation based on previous
    layout changes.
2017-01-22 12:57:58 +01:00
Andreas Schmidt
afd2c2ee9e SG Ergodox layout: Fixed ENTER key mapping
- Swiss German Ergodox layout:
    Additional ENTER key was mapped to wrong layer
    and keyboard half.
2017-01-22 12:43:46 +01:00
Andreas Schmidt
c2c8a12022 SG Ergodox layout: Minor code formatting changes
- Swiss German Ergodox layout:
    Removed unnecessary spaces.
2017-01-22 12:35:24 +01:00
Andreas Schmidt
5c4a73d788 SG Ergodox layout: Add ENTER to left keyboard
- Swiss German Ergodox layout:
    Added ENTER key to left keyboard half on media layer
    such that the enter key is available on both halves to
    be able to flash both halves without an additional keyboard.
2017-01-22 12:32:40 +01:00
Andreas Schmidt
3fd9aa3660 SG Ergodox layout: Add <br/> macro to media layer
- Added <br/> macro to media layer of Swiss German layout
    for Ergodox
2017-01-22 12:30:18 +01:00
lucwastiaux
803a861b4e document BRACKETS and SHELL_LAYER 2017-01-22 10:32:17 +08:00
Luiz Ribeiro
642d0acef5 Added a copyright header to the default keymap... ¯\_(ツ)_/¯ 2017-01-21 18:23:44 -05:00
Luiz Ribeiro
bfbab75292 Slightly saner default keymap for ps2avrGB and removed some unused code 2017-01-21 18:15:39 -05:00
Luiz Ribeiro
9ce38cbccf Simplified and polished a bit the code changes on tmk_core 2017-01-21 17:18:05 -05:00
Andreas Schmidt
eb6abb6305 Renamed JSON source of Ergodox Swiss German
- Renamed the JSON source files for the layout description of
    the Ergodox Swiss German keymap
2017-01-21 20:58:28 +01:00
Andreas Schmidt
6b5cd656fd Correct layout description of ergodox swissgerman
- Added missing HTML macros to media layer.
2017-01-21 20:55:18 +01:00
Andreas Schmidt
250628de04 Removed Ergodox EZ & Infinity specific keymaps
- Removed the keymaps for Swiss German spefic for Ergodox EZ
    and Infinity after previously merging them.
2017-01-21 20:22:24 +01:00
Andreas Schmidt
c26c81c7f3 Merged keymap for Ergodox EZ & Infinity
- Merged keymap for Ergodox EZ & Infinity into one single
    keymap using pre-processor macros.
2017-01-21 20:20:47 +01:00
Luiz Ribeiro
461dfd4462 Simplification and code polish on ps2avrGB directory 2017-01-21 13:52:23 -05:00
Luiz Ribeiro
f7462aaa61 Got ps2avrGB to work with the V-USB protocol 2017-01-21 12:55:19 -05:00
lucwastiaux
4cf0f7dd16 make shell layer more compatible with default layer 2017-01-21 23:42:23 +08:00
Andreas Schmidt
bf0b355bc8 Add Swiss German layout for Ergodox Infinity
- Add Swiss German layout for Ergodox Infinity based on default
    layout for Ergodox EZ.
- Minor changes in the event loop to prevent flashing display
    background lights.
2017-01-21 16:24:41 +01:00
Andreas Schmidt
cbb1927d6f Add Swiss German layout for Ergodox EZ
- Add Swiss German layout for Ergodox EZ based on default
    layout for Ergodox EZ.
- Minor changes in the event loop to prevent flashing of leds.
2017-01-21 16:22:40 +01:00
lucwastiaux
01e750a372 couple of changes to the shell layer 2017-01-21 23:15:37 +08:00
Callum Oakley
dc3937d485 simplify 2017-01-20 21:22:18 +00:00
lucwastiaux
072237bce8 introduce shell_layer 2017-01-19 22:45:30 +08:00
Jack Humbert
10ff962321 Merge pull request #1016 from arthurnn/patch-1
this is the atreus doc
2017-01-18 21:28:43 -05:00
Arthur Nogueira Neves
489d0ab581 this is the atreus doc 2017-01-18 21:12:02 -05:00
David Olsson
f35adb4f37 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2017-01-18 22:58:49 +01:00
SjB
9eb8d05246 added mods status bit to visualizer.
Since we can't read the real_mods and oneshot_mods static variable
directly within the update_user_visualizer_state
function (Threading and serial link). We are know storing the mods
states in the visualizer_keyboard_status_t structure. We can now
display the status of the modifier keys on the LCD display.
2017-01-17 21:57:32 -05:00
Jack Humbert
3d264adfc5 Merge pull request #1013 from mitchlloyd/mitch-keymap-update
Update mitch layout for new keymaps
2017-01-17 16:38:31 -05:00
Mitch Lloyd
0815c7ae17 Update mitch layout for new keymaps 2017-01-17 13:01:07 -08:00
David Olsson
d910b94a3c Don't change ralt to lalt, it's really not the same thing on windows. 2017-01-17 19:33:09 +01:00
lucwastiaux
1ac15e6b3a put shell nav under tab, introduce an OSL for the brackets layer 2017-01-17 20:34:05 +08:00
David Olsson
53382d9564 whitespace fixes 2017-01-16 21:31:44 +01:00
David Olsson
a37e924e36 vi style arrow keys. Live unicode switch support 2017-01-16 21:10:25 +01:00
Priyadi Iman Nurcahyo
11eb3d5491 Merge branch 'master' into promethium 2017-01-17 01:39:29 +07:00
SjB
6f44ca7a59 oneshot timeout would only timeout after an event.
After setting a ONESHOT_TIMEOUT value, the oneshot layer state would
not expire without an event being triggered (key pressed). The reason
was that in the process_record function we would return priort to
execute the process_action function if it detected a NOEVENT cycle. The
process_action contained the codes to timeout the oneshot layer state.
The codes to clear the oneshot layer state have been move just in
front of where we check for the NOEVENT cycle in the process_record
function.
2017-01-15 23:29:24 -05:00
Jack Humbert
6f44885615 Merge pull request #987 from belak/belak/whitefox-initial-support
Initial whitefox support
2017-01-15 01:14:02 -05:00
Jack Humbert
81b89f8b2b Merge pull request #996 from milestogo/master
kinesis keyboard with subdirectories for different hardware - matches pull #911
2017-01-15 01:13:15 -05:00
Jack Humbert
99d0b54e5e Merge pull request #999 from deadcyclo/master
Adds layer images to the deadcyclo layout readme
2017-01-15 01:12:21 -05:00
Jack Humbert
b2dcac9655 Merge pull request #1003 from mneme/master
Layout "Mneme" for Atreus62
2017-01-15 01:12:04 -05:00
Jack Humbert
ff76ee8377 Merge pull request #1005 from kd0kkv/patch-1
Update keymap.c
2017-01-15 01:11:38 -05:00
Jack Humbert
5036112d39 Merge pull request #1006 from Vifon/master
Update the vifon keymap
2017-01-15 01:11:04 -05:00
Jack Humbert
a896b300ec Merge pull request #1007 from bryan4887/bryan
Added Bryan's keymap
2017-01-15 01:10:39 -05:00
Jack Humbert
5521d854d0 Merge pull request #1009 from getclacking/master
Typo fix
2017-01-15 01:09:50 -05:00
Jason Milkins
b56ec38d5c Typo fix 2017-01-15 14:08:17 +08:00
Bryan Hernandez
aa0939b5ef Added Bryan's keymap 2017-01-13 21:51:55 -06:00
Erez Zukerman
0fde5a34e2 Merge pull request #1004 from jackhumbert/hf/scmd
Adds SCMD and SCMD_T
2017-01-13 21:16:10 -05:00
Jack Humbert
7288e5ab9c Update quantum_keycodes.h 2017-01-13 14:04:51 -05:00
Wojciech Siewierski
c6299a7859 Update the vifon keymap 2017-01-13 18:52:13 +01:00
kd0kkv
c660d5f814 Update keymap.c
Fixed the default querty layout to have a B button and just one F
2017-01-13 08:30:46 -06:00
David Olsson
236a0b0b60 Update makefile.
Readme.
2017-01-12 16:00:09 +01:00
David Olsson
b2419b31d3 - Change docs to match keymap.
- Switched around modifiers on the function layer to match muscle memory.
- Added support for application switching.
2017-01-12 15:36:14 +01:00
Erez Zukerman
3717cf5864 A shot at aliasing 2017-01-12 07:38:07 -05:00
Erez Zukerman
8459bb97c1 Adds SCMD and SCMD_T 2017-01-11 21:57:41 -05:00
David Olsson
ed975f2454 Remove comments and change to correct KN_PLUS instead of KC_PLUS. 2017-01-12 00:14:42 +01:00
David Olsson
1bef7bf45a Link fix in readme. 2017-01-11 23:43:13 +01:00
David Olsson
e491f5a4d0 Readme + minor change to make it match reality. 2017-01-11 23:41:07 +01:00
David Olsson
3a453a03ed Atreus62 first semi-final draft 2017-01-11 23:00:34 +01:00
Brendan Johan Lee
c4fca8b6bc Fixed incorrect layer image in deadcyclo readme 2017-01-10 19:23:59 +01:00
Brendan Johan Lee
1121753746 Merge remote-tracking branch 'upstream/master' 2017-01-10 19:21:33 +01:00
Brendan Johan Lee
db1aec159d Added layer images to deadcyclo layout readme 2017-01-10 19:20:25 +01:00
Kaleb Elwert
a55c5e3ea3 Wait for two ticks rather than 1 2017-01-10 03:00:36 -08:00
Kaleb Elwert
0b38204e62 Fix mismatched indentation 2017-01-09 11:57:44 -08:00
Kaleb Elwert
49a00a535f Update clock frequencies to match the infinity ergodox 2017-01-09 11:15:10 -08:00
Kaleb Elwert
a702f4631e Increase tick frequency for responsiveness
Based off of PR #866 which did the same thing for the infinity60
2017-01-09 10:54:36 -08:00
Kaleb Elwert
ef2ebeb3ca Remove KC_ prefix from KEYMAP macro to match other keyboards 2017-01-09 10:45:34 -08:00
Priyadi Iman Nurcahyo
87b675241a minimize LEDs 2017-01-09 23:19:34 +07:00
Priyadi Iman Nurcahyo
8c2cc30b0e fix greek layers 2017-01-09 21:24:26 +07:00
Priyadi Iman Nurcahyo
cf0650e3f0 Implement greek layers on my Promethium layout 2017-01-09 19:35:01 +07:00
milestogo
9d4cc2f3f1 removing old programmer layout, in favor of milestogo 2017-01-08 22:25:41 -08:00
milestogo
62f1c13c3a trying to clean up duplicate docs 2017-01-08 22:17:47 -08:00
milestogo
f74ff86f9c kinesis remap 2017-01-08 22:02:01 -08:00
Jack Humbert
176b93d08e Merge pull request #994 from priyadi/unicode_mods_fix
Unregister all mods before inputting Unicode, and reregister afterwards
2017-01-08 21:12:02 -05:00
Jack Humbert
18d013b25b Merge pull request #993 from priyadi/greek_layer
Greek alphabet layer
2017-01-08 21:11:32 -05:00
Jack Humbert
d8b445b03b Merge pull request #990 from replicaJunction/master
Update replicaJunction keymap
2017-01-08 21:10:42 -05:00
Priyadi Iman Nurcahyo
30b80a23f3 Unregister all mods before inputting Unicode, and reregister afterwards 2017-01-09 02:59:10 +07:00
Priyadi Iman Nurcahyo
02055406e8 Greek alphabet layer 2017-01-09 02:50:13 +07:00
Priyadi Iman Nurcahyo
3a71f3534a Merge branch 'promethium' of github.com:priyadi/qmk_firmware into promethium 2017-01-09 02:48:07 +07:00
Priyadi Iman Nurcahyo
58b2536bf1 om telolet om 2017-01-08 23:45:16 +07:00
Priyadi Iman Nurcahyo
b0a9bd319b om telolet om 2017-01-08 22:45:16 +07:00
Joshua T
cfb45027bb Removed build.bat
Make.exe is easy enough to use, and there's no real sense in having a wrapper aroung it.
2017-01-07 14:05:04 -06:00
Joshua T
8f8d104759 Merged from upstream 2017-01-07 14:01:21 -06:00
Joshua T
b7b44dc481 Updated README and images to reflect latest keymap 2017-01-07 13:57:51 -06:00
Joshua T
677ae86bde Added another Shift on Extend layer.
This moves the GUI key to the pinkie, but honestly, I never use that function anyway.
2017-01-07 13:07:55 -06:00
Joshua T
fe51724544 Updated Atreus layout to 0.4
Removed Alt on base layer, replaced with Function layer.

Moved function keys to left hand.  Added mouse keys to right hand on the function layer.

Moved middle click on gaming layer to be consistent with mouse layer.

Added macro _USER. Macro contents are not implemented yet.
2017-01-06 19:56:57 -06:00
Joshua T
5ce7ec9ea5 Increased TAPPING_TERM to 200 2017-01-06 17:08:14 -06:00
Joshua T
6fba925f41 Fixed key not matching its diagram 2017-01-06 17:07:58 -06:00
Jack Humbert
e7df488a92 Merge pull request #989 from ishigoya/master
Keymap
2017-01-06 17:28:45 -05:00
ishigoya
402e6c13a1 new file: keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-enL.png
new file:   keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-jpL.png
	new file:   keyboards/ergodox/keymaps/ishigoya-jp/img/keyboard-layout-numL.png
	modified:   keyboards/ergodox/keymaps/ishigoya-jp/keymap.c
	new file:   keyboards/ergodox/keymaps/ishigoya-jp/readme.md
2017-01-06 17:53:04 +09:00
ishigoya
0bd03d698c new file: keyboards/ergodox/keymaps/ishigoya-jp/keymap.c 2017-01-06 16:41:14 +09:00
Kaleb Elwert
ca9a3dcb71 Fix unrelated spelling error 2017-01-04 21:20:06 -08:00
Kaleb Elwert
ccde1d8b5e Add white fox to keyboards readme 2017-01-04 21:19:32 -08:00
Jack Humbert
e5c7b5d8fc Merge pull request #983 from common-nighthawk/master
adds personal keymap for ergodox optimized for macOS with Vim
2017-01-04 23:41:56 -05:00
Jack Humbert
6a59dfb4c6 Merge pull request #984 from deadcyclo/master
Added the deadcyclo layout
2017-01-04 23:41:29 -05:00
Jack Humbert
ad290946f2 Merge pull request #988 from jcowgar/master
Added Jeremy’s developers keymap for the Planck
2017-01-04 23:39:52 -05:00
Jeremy Cowgar
5fca9ff4d5 Added Jeremy’s developers keymap for the Planck 2017-01-04 10:51:00 -05:00
Kaleb Elwert
262d31c389 Add whitefox readme 2017-01-04 00:29:58 -08:00
Kaleb Elwert
300c71a023 Remove unneeded define 2017-01-04 00:05:18 -08:00
Kaleb Elwert
8377d5fdc5 Initial whitefox support 2017-01-03 23:41:52 -08:00
Brendan Johan Lee
a85aefd27a fix version macro making layer 3 sticky on deadcyclo layout 2017-01-03 15:09:25 +01:00
Brendan Johan Lee
b23a963bec Added the deadcyclo layout 2017-01-02 19:12:06 +01:00
Jack Humbert
ffc1d97672 Update config.h 2017-01-02 09:57:39 -05:00
Daniel
0de3a5d0b2 reverts change outside of personal keymap. 2017-01-01 21:02:43 -07:00
Daniel
acffbb480f adds dedicated double-quote key. 2017-01-01 20:09:30 -07:00
Jack Humbert
847377fb43 Merge pull request #980 from TerryMathews/master
Establish support for AMJPAD
2016-12-31 13:38:10 -05:00
Jonas Oberschweiber
0aa413af44 Add support for supplementary planes for OS X 2016-12-31 19:37:56 +01:00
TerryMathews
925ed44405 Establish support for AMJPAD 2016-12-31 13:19:05 -05:00
Jack Humbert
6dbcc50f56 Merge pull request #975 from fredizzimo/remove_temp_files
Remove extra file that has been commited by mistake
2016-12-30 11:12:47 -05:00
Jack Humbert
f98062081b Merge pull request #976 from fredizzimo/fix_makefile_on_cygwin
Fix makefile on cygwin
2016-12-30 11:08:02 -05:00
Jack Humbert
460bf008f5 Merge pull request #973 from Wilba6582/keycode_refactor
Keycode refactor
2016-12-30 11:07:17 -05:00
Jack Humbert
07e266bbc6 Merge pull request #971 from algernon/ergodox-ez/algernon
ergodox: Update algernon's keymap to v1.10
2016-12-30 11:06:21 -05:00
Jack Humbert
2eced29675 Merge pull request #974 from fredizzimo/remove_malloc_from_sysex
API Sysex fixes
2016-12-30 11:05:50 -05:00
Jack Humbert
8a76075ca7 Merge pull request #972 from mechkeys/rgb_compat
Add extern for 'led' global, set 'weak' attribute for rgblight_set()
2016-12-29 21:42:16 -05:00
Scott Wilson
b8e74c378b Removed errant + 2016-12-29 09:32:02 -05:00
Fred Sundvik
1d1f2b4ee2 Clean up the SKIP_GIT code 2016-12-29 15:20:43 +02:00
Fred Sundvik
2acfd2ab2b Remove extra parenthesis from Makefile
Cygwin had trouble running the tests
2016-12-29 14:56:01 +02:00
Fred Sundvik
52430ef0d6 Remove extra file that has been commited by mistake 2016-12-29 12:26:41 +02:00
Fred Sundvik
dd685eceb2 API Sysex fixes
Fix memory leaks by using stack instead of malloc
Reduce memory usage by having less temporary bufffers
Remove warnings by adding includes
Decrease code size by 608 bytes (mostly due to not linking malloc)
More robust handling of buffer overflows
2016-12-29 12:13:30 +02:00
Wilba6582
d8a608f3ff Keycode refactor 2016-12-29 18:28:48 +11:00
Scott Wilson
748181dccd Add extern for 'led' global, set 'weak' attribute for rgblight_set() 2016-12-28 16:29:02 -05:00
Gergely Nagy
eb588d630c ergodox: Update algernon's keymap to v1.10
Miscellaneous
=============

* `µ` can now be entered with UCIS.
* `™` can now be entered with UCIS.

Tools
=====

* `tools/hid-commands` can now find Banshee, and prefers it over Kodi.
* `tools/hid-commands` can now find Chrome too, not juts Chromium.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-28 19:27:48 +01:00
Jack Humbert
223cffd92f Merge pull request #968 from ofples/bugfix/right-modifiers
Fixed bug in do_code16
2016-12-28 13:07:16 -05:00
Jack Humbert
d3ec88cd07 Merge pull request #966 from Dbroqua/master
Some updates for GH60 and Satan keyboard
2016-12-28 13:04:08 -05:00
dbroqua
db48b28eeb - Updated dbroqua layout for Satan keyboard 2016-12-24 14:53:15 +01:00
dbroqua
033f0b92c4 - Added RGB layer on dbroqua GH60 layout 2016-12-24 14:43:07 +01:00
Jack Humbert
273faa4d9c add different scales for music mode 2016-12-23 20:59:00 -05:00
Ofer Plesser
01038ab54c Added check that makes sure a code is a right modifier before considering it as one 2016-12-23 21:51:11 +02:00
Jack Humbert
cae269b08b Christmas RGB light mode 2016-12-23 10:29:19 -05:00
dbroqua
6be061c6d4 - Fixed bug in dbroqua layout for Satan keyboard 2016-12-22 19:08:17 +01:00
dbroqua
46ff5f3b90 - Fixed bad typo in dbroqua layout for gh60
- Removed unused function in dbroqua layout for gh60
2016-12-22 08:26:55 +01:00
Erez Zukerman
9675e1357f Update readme.md 2016-12-21 21:09:20 -05:00
Erez Zukerman
a81279158b Update readme.md 2016-12-21 21:08:55 -05:00
Erez Zukerman
4e4f365c87 updates readme 2016-12-21 21:05:58 -05:00
Erez Zukerman
10864def46 New default firmware graphic 2016-12-21 21:03:53 -05:00
dbroqua
5ee136a36f - Renamed dbroqua_hhkb as dbroqua for gh60 layout 2016-12-21 23:12:33 +01:00
dbroqua
d6c545f471 - Rewrote dbroqua layout for Satan keyboard and adding RGB light 2016-12-21 23:08:30 +01:00
Jack Humbert
2fa36e38cf initial subatomic keymap (text) 2016-12-21 00:22:32 -05:00
Jack Humbert
438a5d685b limit voices by default, add some drums 2016-12-20 19:38:22 -05:00
dbroqua
b7696fb3b0 - Updated gh60 files 2016-12-20 18:43:06 +01:00
Jack Humbert
53ea854462 Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2016-12-19 21:01:27 -05:00
Jack Humbert
dd114e648e planck preonic update 2016-12-19 21:01:23 -05:00
Jack Humbert
29c527f0f0 Merge pull request #964 from climbalima/master
added case stl
2016-12-19 14:06:39 -05:00
climbalima
281aa1dad0 added case stl from se7en9057 2016-12-19 14:01:40 -05:00
Jack Humbert
101416eb82 Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2016-12-19 11:18:22 -05:00
Jack Humbert
06c64bbff3 rgb clean-up, api clean-up 2016-12-19 11:18:18 -05:00
Jack Humbert
ea926369b8 Merge pull request #963 from Wilba6582/fix_900
Fixes issue #900 KC_PWR not working
2016-12-19 11:07:39 -05:00
Wilba6582
a305da2bc9 Fixes issue #900 2016-12-20 02:46:50 +11:00
Erez Zukerman
29731588b7 Flips off MIDI and API_SYSEX 2016-12-19 08:27:05 -05:00
Jack Humbert
8e28bf39d8 Merge pull request #958 from pvinis/master
make a sysctl MO button so i can quickly use the arrows
2016-12-18 20:56:20 -05:00
Jack Humbert
96cc053799 Merge pull request #961 from Dbroqua/master
Updated kc60 layout for dbroqua_hhkb
2016-12-18 20:55:52 -05:00
Jack Humbert
e05fd4fc66 Merge pull request #962 from stanleylai/master
Added XD60 Support
2016-12-18 20:55:38 -05:00
Stanley Lai
5834d4b262 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-12-18 15:35:59 -08:00
Stanley Lai
91913146db Added XD60 support 2016-12-18 15:35:03 -08:00
Stanley Lai
b49d7800ae Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-12-17 13:49:13 -08:00
dbroqua
e9f69ff46e - Revert local fail o_O 2016-12-17 22:33:45 +01:00
dbroqua
c3469b8d21 Merge branch 'master' of https://github.com/Dbroqua/qmk_firmware 2016-12-17 22:28:56 +01:00
Damien
c9803f78b2 Merge pull request #14 from jackhumbert/master
Merged from jackhumbert/qmk_firmware
2016-12-17 22:28:45 +01:00
dbroqua
df50bee5a8 Merge branch 'master' of https://github.com/Dbroqua/qmk_firmware 2016-12-17 22:25:21 +01:00
dbroqua
46b93f02d5 - Added capslock key 2016-12-17 22:25:08 +01:00
Erez Zukerman
8a65c640ec Adds a troubleshooting layout for resetting the EEPROM 2016-12-16 20:53:42 -05:00
Erez Zukerman
df32d5b769 Removes alt/j dual function 2016-12-16 20:13:40 -05:00
Ofer Plesser
40abf8bc9c Moved combo processing lower down in process logic 2016-12-16 22:00:29 +02:00
Ofer Plesser
6a462c818c Merge branch 'master' into feature/combos 2016-12-16 21:52:51 +02:00
Ofer Plesser
6e7cfa83b9 Refactored as well as added support for action keys in combos 2016-12-16 21:50:28 +02:00
Pavlos Vinieratos
34d6f07d2c make a sysctl MO button so i can quickly use the arrows 2016-12-16 09:46:03 +01:00
Jack Humbert
b8e13167c8 Merge pull request #957 from priyadi/qwertz-dot-comma
Update my layouts using QWERTZ style dot & comma, move QUOT to SCLN position
2016-12-15 22:52:12 -05:00
Priyadi Iman Nurcahyo
c641e46567 QWERTZ style dot & comma, move QUOT to SCLN position 2016-12-16 01:16:55 +07:00
Jack Humbert
61ab3018c7 Merge pull request #956 from sgoodwin/master
Make keymap compile again.
2016-12-15 10:02:31 -05:00
Samuel Ryan Goodwin
826c929c49 Make keymap compile again. 2016-12-15 09:52:57 +01:00
Jack Humbert
36dddd45fb Merge pull request #949 from priyadi/promethium
Promethium firmware update
2016-12-15 00:03:18 -05:00
Jack Humbert
803040d4ee Merge pull request #952 from pvinis/master
update my keymap a bit
2016-12-15 00:03:02 -05:00
Jack Humbert
97f9b05efb Merge pull request #953 from priyadi/ibm_terminal
IBM Terminal M-122 converter support
2016-12-15 00:02:45 -05:00
Jack Humbert
2ba7f38bf4 Merge pull request #955 from askreet/powerDrawPerKeyboard
Allow power consumption to be set per-keyboard.
2016-12-15 00:02:19 -05:00
Kyle Smith
83e613ad23 Allow power consumption to be set per-keyboard. 2016-12-14 23:29:33 -05:00
climbalima
16483409cf better switch spacing in svg 2016-12-14 23:11:04 -05:00
lucwastiaux
ebe351a690 enable brackets using the - key on the right, and cleanups 2016-12-15 07:22:31 +08:00
Priyadi Iman Nurcahyo
e58304c094 My layout for M-122 terminal keyboard 2016-12-14 22:34:23 +07:00
Priyadi Iman Nurcahyo
dc49231391 Update KEYMAP macro to be consistent with the rest of QMK 2016-12-14 22:33:56 +07:00
Priyadi Iman Nurcahyo
bd5f323bec IBM Terminal M-122 converter support
Code ported from TMK to QMK.
2016-12-14 16:21:01 +07:00
Priyadi Iman Nurcahyo
e5b165c255 fine tune trackpoint initialization 2016-12-14 07:10:28 +07:00
Priyadi Iman Nurcahyo
32e952bda9 disable remote mode 2016-12-14 06:03:27 +07:00
Priyadi Iman Nurcahyo
0b54b32361 Enable Adafruit BLE support 2016-12-14 06:03:27 +07:00
Priyadi Iman Nurcahyo
9838ddcead Pretend to be Thinkpad USB Keyboard 2016-12-14 06:03:27 +07:00
Priyadi Iman Nurcahyo
a747343b61 Enable PS2 remote mode 2016-12-14 06:03:27 +07:00
Jack Humbert
20892bf706 Merge pull request #948 from climbalima/master
svg bug fix and added pilcrow to hand wire
2016-12-12 23:32:14 -05:00
climbalima
5dce74d0ff svg bug fix and added pilcrow to hand wire 2016-12-12 22:36:16 -05:00
Jack Humbert
ae95834f5a specialise music variables 2016-12-12 16:06:41 -05:00
Jack Humbert
0edfe55bfe re-enable audio and extrakeys 2016-12-12 15:39:07 -05:00
Jack Humbert
0213acbdbe Merge pull request #946 from climbalima/master
Changed lets split svg to support boston meetup pcb
2016-12-12 00:47:48 -05:00
Jack Humbert
6cd55d89e6 Merge pull request #945 from priyadi/planck_priyadi
Remove unneeded options to reduce firmware size
2016-12-12 00:47:29 -05:00
Jack Humbert
f2e5ca25db Merge pull request #944 from priyadi/negmousefix
Allow negative values for mouse movements
2016-12-12 00:46:59 -05:00
Jack Humbert
a30591cd53 Merge pull request #943 from lucwastiaux/master
Update dvorak_programmer layout
2016-12-12 00:46:32 -05:00
Jack Humbert
02fa4e3ce2 Merge pull request #942 from priyadi/cpp11
The adafruit BLE C++ code requires -std=c++11
2016-12-12 00:46:12 -05:00
climbalima
7bc1caa21c changed svg after merge 2016-12-10 23:18:46 -05:00
climbalima
73d6018296 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-12-10 23:15:47 -05:00
climbalima
56515ba503 changed svg to support proto pcb 2016-12-10 23:13:36 -05:00
Ofer Plesser
b6bf4e0dce Added support for timing out combos if a key as been pressed for longer than COMBO_TERM 2016-12-10 16:11:59 +02:00
Priyadi Iman Nurcahyo
a6db20e518 Remove unneeded options to reduce firmware size 2016-12-10 21:08:22 +07:00
Priyadi Iman Nurcahyo
434b286032 Allow negative values for mouse movements 2016-12-10 19:40:44 +07:00
lucwastiaux
75d7eb9cb5 put home/end on thumb cluster 2016-12-10 13:20:05 +08:00
lucwastiaux
a3c8949627 readme updates 2016-12-10 12:52:59 +08:00
lucwastiaux
9240f27ba9 Merge remote-tracking branch 'upstream/master' 2016-12-10 12:49:47 +08:00
lucwastiaux
dc4c8875ba use thumb cluster key to toggle brackets layer 2016-12-10 12:37:32 +08:00
Ofer Plesser
eac8fa7999 Implemented basic key combination feature 2016-12-10 00:49:11 +02:00
Priyadi Iman Nurcahyo
901f29e3aa The adafruit BLE C++ code requires -std=c++11 2016-12-10 04:08:08 +07:00
Damien
13c4080a1d Merge pull request #13 from jackhumbert/master
Merged from qmk
2016-12-09 19:44:03 +01:00
Pavlos Vinieratos
9a59fee667 tap dance for some layers. one tap sysctl, two taps mouse. 2016-12-09 16:01:11 +01:00
Pavlos Vinieratos
063ade6bb5 add light for some layers 2016-12-09 16:00:46 +01:00
Pavlos Vinieratos
be2863e56d separate sysctl and mouse layers 2016-12-09 16:00:10 +01:00
Pavlos Vinieratos
d5914a4dfe add alt key 2016-12-09 14:37:22 +01:00
Pavlos Vinieratos
5d241479f5 media keys 2016-12-09 14:37:07 +01:00
Daniel
1f52dbcac0 removes double-tab brackets and adds back quot to left cmd. 2016-12-06 14:15:23 -06:00
Jack Humbert
985a091a73 Update readme.md 2016-12-06 09:49:05 -05:00
Erez Zukerman
cd41355069 Merge pull request #936 from jackhumbert/f/shine_default
Official default factory firmware for ErgoDox EZ Shine
2016-12-06 07:57:02 -05:00
Erez Zukerman
82922a4937 A new default layout that supports Shine 2016-12-05 20:35:03 -05:00
Erez Zukerman
a05b6a72d9 Adjusts config for better mousekey support 2016-12-05 20:34:24 -05:00
Jack Humbert
c87d039839 Merge pull request #921 from Wilba6582/raw_hid
Initial version of Raw HID interface
2016-12-05 00:13:37 -05:00
Jack Humbert
1eec2b7277 Update planck.c 2016-12-04 23:11:22 -05:00
Jack Humbert
b66845ca7f Update rules.mk 2016-12-04 23:10:44 -05:00
Jack Humbert
7e4341e437 Update rules.mk 2016-12-04 23:01:07 -05:00
Jack Humbert
d15d1d3833 Merge pull request #935 from priyadi/promethium
Promethium handwired keyboard firmware update
2016-12-04 21:07:26 -05:00
Priyadi Iman Nurcahyo
c7d11fd001 Remove unnecessary build options 2016-12-05 02:15:38 +07:00
Priyadi Iman Nurcahyo
e18a75609d Merge branch 'master' into promethium 2016-12-05 02:01:20 +07:00
Jack Humbert
dd2911151b Merge pull request #932 from climbalima/master
Added ponoko svg for lets split
2016-12-04 13:53:25 -05:00
Jack Humbert
082f7ed3d3 Merge pull request #933 from priyadi/ps2_mouse_init_user2
Implemented weak ps2_mouse_init_user()
2016-12-04 13:52:17 -05:00
Priyadi Iman Nurcahyo
236c040859 syntax error fix 2016-12-05 01:38:41 +07:00
Priyadi Iman Nurcahyo
07d29b7d29 syntax error fix 2016-12-05 01:22:40 +07:00
Priyadi Iman Nurcahyo
d059624bfb Implemented weak ps2_mouse_init_user()
There are a lot of PS/2 commands, some are vendor/device specific, so we
provide a weak ps2_mouse_init_user() to be implemented in each keyboard
that need it.
2016-12-05 01:21:17 +07:00
Priyadi Iman Nurcahyo
73073f270b Trackpoint initialization 2016-12-05 01:15:04 +07:00
Priyadi Iman Nurcahyo
6ef3060b42 Implemented weak ps2_mouse_init_user()
There are a lot of PS/2 commands, some are vendor/device specific, so we
provide a weak ps2_mouse_init_user() to be implemented in each keyboard
that need it.
2016-12-05 01:07:12 +07:00
Priyadi Iman Nurcahyo
fc80aa9974 Merge branch 'master' into promethium 2016-12-04 23:57:47 +07:00
Priyadi Iman Nurcahyo
a8e5f61805 fix emoji LED indicators. 2016-12-04 23:55:06 +07:00
Priyadi Iman Nurcahyo
75b18773bd fix RGB LED order 2016-12-04 14:51:27 +07:00
climbalima
0f71c81df8 having trouble with conflicts 2016-12-03 17:37:41 -05:00
climbalima
45b7718fb1 cleaned up personal projects 2016-12-03 17:30:40 -05:00
climbalima
59c54d651b Merge https://github.com/climbalima/qmk_firmware 2016-12-03 17:15:22 -05:00
climbalima
ae66f0d702 added plate files for lets split 2016-12-03 17:09:11 -05:00
climbalima
2186e5ae85 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-12-03 17:01:26 -05:00
Jack Humbert
f39e1b5dfe cleans-up formatting of readme 2016-12-03 14:36:39 -05:00
Jack Humbert
d0c667c790 Merge pull request #931 from OferPlesser/feature/improve-ps2-mouse
Improving ps/2 mouse
2016-12-03 10:13:11 -05:00
Jack Humbert
464f7d9687 Merge pull request #916 from wez/ble_4
Connect the adafruit ble code to the lufa main loop
2016-12-03 10:12:38 -05:00
Ofer Plesser
f0768f8be9 Forgot to use define in delay instead of hardcoded number 2016-12-03 13:41:56 +02:00
Ofer Plesser
8e2732edf3 Updated ps2 mouse documentation in readme 2016-12-03 13:11:37 +02:00
Ofer Plesser
9f41544e1d Added back PS2_MOUSE_INIT_DELAY define 2016-12-03 13:09:42 +02:00
ofples
d639e08a31 Refactored and improved ps2 mouse feature 2016-12-03 13:05:02 +02:00
Wez Furlong
044fa3ff85 Connect the adafruit ble code to the lufa main loop
There are now 3 potential locations to send HID reports:

1. USB
2. The bluefruit easy key
3. Adafruit BLE

Generally speaking, if USB is connected then we should prefer to
send the reports there; it is generally the best channel for this.

The bluefruit module has no feedback about bluetooth connectivity
so the code must speculatively send reports over both USB and bluetooth.

The BLE module has connectivity feedback.  In general we want to
prefer to send HID reports over USB while connected there, even
if BLE is connected.  Except that it is convenient to force them
over BLE while testing the implementation.

This policy has been extracted out into a where_to_send function
which returns a bitmask of which of the channels should be used.
2016-12-02 22:46:23 -08:00
Jack Humbert
7f88c9506c Merge pull request #930 from cbbrowne/master
Adds warnings to Planck keymaps that exceed 0x7000 bytes in size #929
2016-12-02 15:21:04 -05:00
Jack Humbert
11d263118a Merge pull request #929 from jackhumbert/hf/size-warnings
Adds warnings to Planck keymaps that exceed 0x7000 bytes in size
2016-12-02 15:20:44 -05:00
cbbrowne
cee0cf8a6e Adds warnings to Planck keymaps that exceed 0x7000 bytes in size #929 2016-12-02 14:12:55 -05:00
Jack Humbert
245c9508bd adds warnings to 4 keymaps 2016-12-02 13:32:50 -05:00
Jack Humbert
e14b0e8e7e Merge pull request #881 from NoahAndrews/patch-1
Recommend WSL on Windows 10 [Discussion]
2016-12-02 13:22:03 -05:00
Jack Humbert
78f8fe361f Merge pull request #915 from wez/ble_3
Add support for Adafruit BLE modules
2016-12-02 13:14:04 -05:00
Jack Humbert
8f0a8cb7a6 Merge pull request #914 from wez/ble_2
Add arduino-alike GPIO pin control helpers
2016-12-02 13:12:56 -05:00
Jack Humbert
ead68248c5 Merge pull request #913 from wez/ble_1
Tidy up atomicity in timer.c and ring_buffer.h
2016-12-02 13:12:19 -05:00
Jack Humbert
4bcec04c01 Merge pull request #924 from cbbrowne/master
Keymapping revs, revisions to documentation on API_SYSEX_ENABLE
2016-12-02 13:06:31 -05:00
Erez Zukerman
555e41d9e5 Annotates nordic 2016-12-02 13:03:51 -05:00
Erez Zukerman
aa70aa3962 Tweaks Kristian's layout again 2016-12-02 13:03:39 -05:00
Erez Zukerman
5d43a2aecf Kristian's keymap 2016-12-02 12:53:18 -05:00
cbbrowne
f6e86cd2c9 I also want page-down/page-up on UPPER layer 2016-12-02 12:35:03 -05:00
cbbrowne
570e784140 I want page-down/page-up - put those on LOWER-Left/Right near bottom corner 2016-12-02 12:31:43 -05:00
cbbrowne
95a160bf92 Improve docs on memory usage 2016-12-01 16:31:51 -05:00
cbbrowne
af4c44deef Improve docs on SYSEX bit 2016-12-01 16:31:30 -05:00
cbbrowne
b787ed9dc6 More notes on .hex size protection 2016-12-01 16:24:03 -05:00
cbbrowne
1f290f6213 Make my builds smaller 2016-12-01 16:21:15 -05:00
cbbrowne
13eb2f826b Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-12-01 12:54:16 -05:00
Erez Zukerman
66b13a66e9 Better layout 2016-11-30 22:22:57 -05:00
Wilba6582
fe001d46fd Initial version of Raw HID interface 2016-12-01 00:44:54 +11:00
cbbrowne
ff1b563e85 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-29 12:20:26 -05:00
Jack Humbert
81ea909467 Merge pull request #919 from jackhumbert/hf/robot_test_layout
Test layout for ErgoDox EZ manufacturing robot
2016-11-29 11:22:31 -05:00
Erez Zukerman
4094544d41 Test layout for ErgoDox EZ manufacturing robot 2016-11-29 09:23:16 -05:00
Erez Zukerman
51ae6da99e Merge pull request #918 from jackhumbert/wu5y7
Adds Ergodox EZ RGB lights (both sides using I2C) and implements API base, Midi SysEx API
2016-11-29 08:16:04 -05:00
Erez Zukerman
7b219a7f60 Merge pull request #917 from gid0/master
keyboards/ergodox/keymaps/bepo : merge from author
2016-11-29 08:13:49 -05:00
Jack Humbert
f946d830f9 guess i didnt pull 2016-11-29 00:11:11 -05:00
Jack Humbert
efbc205efd Merge branch 'wu5y7' of github.com:jackhumbert/qmk_firmware into wu5y7 2016-11-29 00:10:06 -05:00
Jack Humbert
d0cefef946 enable rgblight by default for ez 2016-11-29 00:09:56 -05:00
Jack Humbert
06f18e95d4 enable api sysex for ez 2016-11-29 00:06:12 -05:00
Jack Humbert
6e0f994950 Merge branch 'master' of github.com:jackhumbert/qmk_firmware into wu5y7 2016-11-28 23:51:07 -05:00
cbbrowne
5776f39667 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-28 12:27:42 -05:00
Olivier
5a2501d90f Add the AZERTY compatibility layer. 2016-11-28 16:38:03 +01:00
Olivier
f02eccbb29 Change layer names (cosmetic change) and reorder them so that the "shift" layer can be accessed from the "alt" layer when in QWERTY compat mode. 2016-11-28 14:16:42 +01:00
Erez Zukerman
84735836e3 Tweaks position of TOG not to conflict with MO 2016-11-28 08:13:32 -05:00
Olivier
d2b6438e39 A little cleanup, add some comments, change others. 2016-11-28 14:10:31 +01:00
Erez Zukerman
9caf866618 Tweaks EZ Makefile 2016-11-28 07:59:01 -05:00
Erez Zukerman
2d0ada0190 Pulls LED config into common config for EZ 2016-11-28 07:55:02 -05:00
Olivier
3f1fca2eb8 Adjust comment. 2016-11-28 11:21:23 +01:00
Olivier
e26a80508f Reorganize the numeric keypad layer more like a traditional numeric keypad. 2016-11-28 11:20:00 +01:00
Wez Furlong
712476cd28 Add support for Adafruit BLE modules
This implements some helper functions that allow sending key reports
to an SPI based Bluetooth Low Energy module, such as the Adafruit
Feather 32u4 Bluefruit LE.

There is some plumbing required in lufa.c to enable this; that
is in a follow-on commit.
2016-11-27 23:49:44 -08:00
Wez Furlong
8485bb34d2 Add arduino-alike GPIO pin control helpers
Unlike the arduino functions, these don't take abstract pin numbers,
they take pin labels like `B0`.  Also, rather than taking very
generic parameter names, these take slightly more descriptive
enum values.

These improve the clarity of code that would otherwise be inscrutable
bit manipulation in tersely named port register names.
2016-11-27 22:58:34 -08:00
Wez Furlong
be4e75423a Tidy up atomicity in timer.c and ring_buffer.h
Adopt the macros for saving/restoring the interrupt state
that are provided by the avr gcc environment.

Removing intialization of the timer value; this shaves off
a few bytes because globals are default initialized to zero.
2016-11-27 22:58:34 -08:00
Olivier
d6d0b7eada Merge https://github.com/jackhumbert/qmk_firmware 2016-11-27 23:23:21 +01:00
Daniel
a94eb16bd7 removes the double actions from the metakeys. 2016-11-27 16:12:32 -06:00
dbroqua
a849bdc581 - Merged 2016-11-27 11:44:30 +01:00
Jack Humbert
7edac212c8 separated into api files/folder 2016-11-26 15:38:44 -05:00
Jack Humbert
1585fc4b61 Merge pull request #908 from priyadi/promethium
My handwired keyboard firmware
2016-11-26 13:40:42 -05:00
Priyadi Iman Nurcahyo
12c1314b02 update docs 2016-11-27 00:40:31 +07:00
Jack Humbert
b5c811bde5 Merge pull request #907 from priyadi/unicode_docs
Update Unicode documentation
2016-11-26 12:38:48 -05:00
Jack Humbert
637170d560 Merge pull request #906 from priyadi/unicode_map_fix_warning
fix strict-prototypes warning
2016-11-26 12:38:10 -05:00
Priyadi Iman Nurcahyo
a182cbc031 Update Unicode documentation 2016-11-27 00:34:29 +07:00
Priyadi Iman Nurcahyo
6fee7e178f fix strict-prototypes warning 2016-11-26 23:53:15 +07:00
Priyadi Iman Nurcahyo
a1f88bf7bf Merge branch 'promethium' of github.com:priyadi/qmk_firmware into promethium 2016-11-26 23:48:52 +07:00
Priyadi Iman Nurcahyo
0f39ab5219 remove ifdef on chip type 2016-11-26 23:48:11 +07:00
Priyadi Iman Nurcahyo
7f3c9c6a39 protocols.mk is already included in latest QMK 2016-11-26 23:48:11 +07:00
Priyadi Iman Nurcahyo
b5019bef05 change init delay to 2000ms 2016-11-26 23:48:11 +07:00
Priyadi Iman Nurcahyo
8ee389c9b6 My Promethium keyboard firmware 2016-11-26 23:48:11 +07:00
Jack Humbert
746fd15638 Merge pull request #905 from priyadi/ps2_documentation
A few addition to PS2 documentation.
2016-11-26 10:46:41 -05:00
Jack Humbert
fbd4c34c0f Merge pull request #904 from priyadi/ps2_remove_hardcoded_pins
PS2 pins configuration belongs to each keyboards config.h
2016-11-26 10:46:29 -05:00
Priyadi Iman Nurcahyo
f2214ce1cb remove define checks. didn't work because of include ordering. 2016-11-26 15:57:48 +07:00
Priyadi Iman Nurcahyo
d9d67e7b76 add macro error when a required define is missing 2016-11-26 15:26:02 +07:00
Priyadi Iman Nurcahyo
f837406ace A few addition to PS2 documentation. 2016-11-26 14:23:55 +07:00
Priyadi Iman Nurcahyo
17acde94ee Fix unterminated ifndef 2016-11-26 14:02:38 +07:00
Priyadi Iman Nurcahyo
de1df63953 PS2 pins configuration belongs to each keyboards config.h
Each keyboard might have different pin configuration. And keeping this
here will trigger redefinition warning on keyboards that have PS2
defines.
2016-11-26 13:55:41 +07:00
Priyadi Iman Nurcahyo
2cf9b93758 remove ifdef on chip type 2016-11-26 13:47:03 +07:00
Priyadi Iman Nurcahyo
6313ec7ef9 protocols.mk is already included in latest QMK 2016-11-26 13:46:05 +07:00
Priyadi Iman Nurcahyo
b94e5b2aa6 change init delay to 2000ms 2016-11-26 13:44:50 +07:00
Jack Humbert
7a1eca784f Merge pull request #903 from priyadi/ps2_init_delay
Make PS2 init delay configurable.
2016-11-26 01:34:49 -05:00
Priyadi Iman Nurcahyo
b5511b9a8a Merge branch 'master' into promethium 2016-11-26 13:31:17 +07:00
Priyadi Iman Nurcahyo
9a071f051c Make PS2 init delay configurable. Some devices are not fully powered up
after 1s.
2016-11-26 13:24:53 +07:00
Priyadi Iman Nurcahyo
4b0d16cd7b My Promethium keyboard firmware 2016-11-26 13:11:40 +07:00
cbbrowne
e3c735e400 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-25 12:06:35 -05:00
Jack Humbert
bf23ac96f6 Merge pull request #902 from OferPlesser/feature/ps2-mouse-support
PS/2 mouse support
2016-11-25 11:22:44 -05:00
ofples
97e7486d4c Added documentation for PS/2 mouse in readme 2016-11-25 12:10:44 +02:00
ofples
0c9d66eb59 Removed comment 2016-11-25 09:20:41 +02:00
ofples
03d6e165bb Added missing endif for ifdef __AVR_ATmega32U4__ and removed the unnecessary one at the end of the file 2016-11-25 09:17:40 +02:00
ofples
3be13d1ffb Added protocol.mk to build 2016-11-25 09:15:12 +02:00
Jack Humbert
98d7ad6f49 Merge pull request #899 from Wilba6582/suspend_fix
Fixed NO_SUSPEND_POWER_DOWN handling
2016-11-24 22:20:08 -05:00
Jack Humbert
f25596b8dc rgblight fixes 2016-11-23 21:28:12 -05:00
Jack Humbert
cefa8468fb travis pls 2016-11-23 20:16:38 -05:00
Jack Humbert
2e23689b8e converted to new format 2016-11-23 18:52:02 -05:00
cbbrowne
c05cbaf534 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-23 17:47:16 -05:00
Wilba6582
cf3926a8e1 Fixed NO_SUSPEND_POWER_DOWN handling 2016-11-23 19:45:50 +11:00
Jack Humbert
3d7aaa31e4 converted to 8bit messages 2016-11-23 00:30:06 -05:00
Wilba6582
5893f0fa1f Fixed NO_SUSPEND_POWER_DOWN handling 2016-11-23 16:22:57 +11:00
Jack Humbert
2b3a3ca678 Merge pull request #898 from PureSpider/backlight-fix
Set backlight status to on if it's at maximum brightness already and the brightness increase keybind is used
2016-11-22 18:41:37 -05:00
Jack Humbert
e131de3df6 Merge pull request #896 from h-youhei/jp106
Add japanese keymap
2016-11-22 18:39:54 -05:00
PureSpider
d37becc0a9 Set backlight status to on if it's at maximum brightness already and the brightness increase keybind is used
Before it was turned on but the status wasn't set to on, so you had to
push the backlight toggle bind twice to turn it off again
2016-11-22 22:12:57 +01:00
h-youhei
2febf9b9f7 Add japanese keymap 2016-11-22 20:40:12 +09:00
Jack Humbert
450a8fb5b6 Merge branch 'master' of github.com:jackhumbert/qmk_firmware into wu5y7 2016-11-21 20:17:45 -05:00
Jack Humbert
06a2677b7e fix infinity 2016-11-21 20:17:32 -05:00
Jack Humbert
6390033e86 cleaning up midid 2016-11-21 20:14:16 -05:00
Jack Humbert
af119baf71 Merge pull request #894 from dchagniot/ergodoxDvorakEmacs
Ergodox dvorak emacs
2016-11-21 20:00:40 -05:00
Jack Humbert
4bb0eaef26 Merge pull request #893 from Sihui/sh-hhkb-jp
[HHKB JP with Dvorak]
2016-11-21 20:00:13 -05:00
Jack Humbert
be265decae Merge pull request #892 from fredizzimo/disable_ergodox_lcd
Always initialize the Infinity Ergodox backlight
2016-11-21 19:59:39 -05:00
Jack Humbert
377583d9f3 Merge pull request #891 from g-sam/galson-keymap
adds galson keymap
2016-11-21 19:59:17 -05:00
Jack Humbert
132c079534 Merge pull request #890 from algernon/f/space-cadet/timeout
Add a timeout to space-cadet shift.
2016-11-21 19:58:55 -05:00
Jack Humbert
e0fc186c28 Merge pull request #888 from climbalima/master
Added pro micro to maxipad
2016-11-21 19:58:24 -05:00
Jack Humbert
ea472fb018 Merge pull request #887 from profet23/atreus62
atreus62 Keyboard Support
2016-11-21 19:58:00 -05:00
Jack Humbert
664c0a036b cleaning up new code 2016-11-21 19:50:55 -05:00
Jack Humbert
27ebacb15d merging lets_split 2016-11-21 19:18:47 -05:00
Jack Humbert
c1037b1dc0 working with helper, qmk_helper_windows@05b0105 2016-11-21 18:05:06 -05:00
Jack Humbert
b57cf3c0c8 more structure to the package 2016-11-21 12:54:06 -05:00
Sihui Huang
b75538c0bf add del to new cmd 2016-11-20 14:45:51 -08:00
Sihui Huang
390a1bda8b add space to NewCmd layer 2016-11-20 13:32:25 -08:00
Sihui Huang
ccc34851f2 add space to NewCmd layer 2016-11-20 13:31:41 -08:00
Didier Chagniot
6f24344be7 typo fix 2016-11-20 20:51:05 +01:00
Sihui Huang
23f63ed1b9 Update README.md 2016-11-20 11:18:08 -08:00
Sihui Huang
34aa59c6d5 Update README.md 2016-11-20 11:13:57 -08:00
Sihui Huang
11f17e3b23 Update README.md 2016-11-20 11:12:48 -08:00
Sihui Huang
a8b1c47f0f add sh-hhkb-jp layers 2016-11-20 11:10:26 -08:00
Fred Sundvik
c86bbf474e Always initialze the Infinity Ergodox backlight
Otherwise it will stay lit. The set_led functionality is also disabled
since it doesn't work properly for slaves.
2016-11-20 19:28:10 +02:00
Jack Humbert
3b990c08dc Merge pull request #878 from sethbc/add_sethbc_gh60_keymap
add sethbc keymap for gh60 and update macro expansion
2016-11-19 13:05:30 -05:00
Seth Chandler
df8724ce08 remove KC expansion from GH60 2016-11-19 12:19:21 -05:00
Gergely Nagy
74a1f00713 Fix the Space Cadet timeout code
Define a default TAPPING_TERM in quantum.c, for keyboards that do not
have it set. Fixes the CI failure.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-11-19 18:19:18 +01:00
Seth Chandler
620e4f74d3 move KC expansion to separate macros 2016-11-19 11:37:12 -05:00
Seth Chandler
ac7d202d4f merge upstream/master 2016-11-19 11:20:41 -05:00
samgalson@gmail.com
7f5e71d79f adds galson keymap 2016-11-19 14:21:12 +00:00
Gergely Nagy
ffa5b1e7ea Add a timeout to space-cadet shift.
When one holds a Space Cadet shift, to have it act as a shift, so that
mouse behaviour changes, when released without any other key pressed, it
still registers a paren. To remedy this, add a hold timeout: if the key
is held longer than TAPPING_TERM, it will not register the parens.

Fixes #884, with the side-effect of not being able to have parens
trigger the OS-side repeat anymore.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-11-19 11:32:09 +01:00
climbalima
102a830bbd changed readme 2016-11-19 00:49:20 -05:00
climbalima
e356de2220 added the pinout for pro micro into maxipad 2016-11-19 00:44:52 -05:00
climbalima
01736a502e just saving 2016-11-18 23:40:34 -05:00
Jack Humbert
a06115df19 don't always detect a matrix change (fixes debounce) 2016-11-18 23:20:07 -05:00
Jack Humbert
ab6557c1a0 wqMerge branch 'wu5y7' of https://github.com/jackhumbert/qmk_firmware into wu5y7 2016-11-18 22:22:29 -05:00
Jack Humbert
161bd5596b midi back and forth 2016-11-18 22:22:24 -05:00
Daniel
abee809298 moves brackets to top row. 2016-11-18 11:11:08 -06:00
Erez Zukerman
285c5a91f2 Groundwork for dedicated color keycodes 2016-11-17 20:56:36 -05:00
Erez Zukerman
9bbc9a7ce0 Initial Erez Experimental keymap tweaks 2016-11-17 19:47:08 -05:00
Jack Humbert
3774a7fcda rgb light through midi 2016-11-17 17:42:14 -05:00
Benjamin Grabkowitz
6c5fce5c1a Adding readme placeholder 2016-11-16 23:59:42 -05:00
Benjamin Grabkowitz
00d88b74ad Adding Support for atreus62 keyboard. https://github.com/profet23/atreus62 2016-11-16 23:52:36 -05:00
Jack Humbert
c38b3e3be9 Merge pull request #883 from climbalima/master
added rev2 lets split after merging with qmk
2016-11-16 21:17:51 -05:00
climbalima
b085a34506 fixed readme conflicts 2016-11-16 20:44:49 -05:00
climbalima
21b6b4e6c4 should have fixed conflixed 2016-11-16 19:49:38 -05:00
climbalima
668c739702 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-16 19:28:30 -05:00
climbalima
5cac51a773 Merge https://github.com/climbalima/qmk_firmware 2016-11-16 19:26:38 -05:00
climbalima
1dd6ceb45d Updated my repo to current qmk 2016-11-16 19:18:54 -05:00
Jack Humbert
72e78a017f Merge pull request #882 from seebs/master
dvorak/plover keyboard layout
2016-11-16 17:15:58 -05:00
cbbrowne
5b88e7ab9a Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-16 17:05:11 -05:00
Seebs
4da698fda3 dvorak/plover keyboard layout
Plover's steno support likes quasi-qwerty, and gaming likes qwerty,
and I like dvorak, so... what if I could have it all?

Signed-off-by: seebs <seebs@seebs.net>
2016-11-16 15:44:26 -06:00
Jack Humbert
9f1b27c5ba Merge pull request #880 from psyill/master
Added keymap "videck", an ErgoDox keymap for Vi(m) users.
2016-11-16 14:54:18 -05:00
Jack Humbert
e025a94bc2 Merge pull request #879 from sethbc/update_sethbc_ergodox_keymap
update sethbc ergodox keymap
2016-11-16 14:53:52 -05:00
Jack Humbert
d85f6deb9b Merge pull request #877 from sethbc/update_sethbc_satan_keymap
update sethbc keymap
2016-11-16 14:51:18 -05:00
Jack Humbert
6dde65c2a9 Merge pull request #876 from Dbroqua/master
Updated kc60/dbroqua layout and added satan/dbroqua_hhkb
2016-11-16 14:49:55 -05:00
Jack Humbert
17e1a4f825 Merge pull request #866 from fredizzimo/infinity60_clockfixes
Increase the infinity60 system tick frequency
2016-11-16 14:42:53 -05:00
Jack Humbert
7541122cad Merge pull request #860 from IBNobody/master
Improved Quantum Matrix
2016-11-16 14:41:10 -05:00
Jack Humbert
530dd3377e animations, midi, etc 2016-11-15 13:18:10 -05:00
climbalima
bce6e52391 fixed conflict 2016-11-14 23:08:10 -05:00
climbalima
dd22c787b8 fixed extra paste 2016-11-14 23:05:37 -05:00
Noah Andrews
702405f039 Recommend WSL on Windows 10
At this point, I consider the batch scripts @IBNobody and I worked on to mostly be a failure. They've proven to be unreliable, too dependent on the environment they're being run in, and I've seen far too many examples of people having frustrating issues with them that I haven't been able to help them with. They can also produce misleading and confusing error messages. I've been pointing people to use the WSL for a while now. Eventually, I think we should make a proper replacement for the batch scripts, possibly with an environment in msys2. For now, the WSL method in Windows 10 is far more reliable, and is easy to set up. 

I also cleaned up some things in the WSL instructions themselves.
2016-11-14 10:03:18 -05:00
Jack Humbert
e9f7487518 mostly working 2016-11-13 23:02:38 -05:00
Hans Ellegård
162f603b1c Added keymap "videck", an ErgoDox keymap for Vi(m) users. 2016-11-13 22:44:41 +01:00
Seth Chandler
aa76425395 oops, fixed inverted if statement 2016-11-13 01:04:10 -05:00
Seth Chandler
34bf8558cd update sethbc ergodox keymap 2016-11-13 00:56:46 -05:00
Seth Chandler
b2bc215934 add sethbc keymap for gh60 and update macro expansion in connection with same 2016-11-13 00:42:07 -05:00
Seth Chandler
28249498bc update sethbc keymap 2016-11-12 23:56:57 -05:00
Jack Humbert
33e62c080c merging 2016-11-12 20:54:37 -05:00
Damien
0a99cf300c Merge pull request #12 from jackhumbert/master
Merged from qmk
2016-11-12 19:33:07 +01:00
dbroqua
3bc51065a4 Merge branch 'master' of https://github.com/Dbroqua/qmk_firmware 2016-11-12 19:27:03 +01:00
dbroqua
19ebf6161f - Added dbroqua_hhkb layout for Satan PCB 2016-11-12 19:23:38 +01:00
cbbrowne
c609edc362 Merge branch 'master' of github.com:cbbrowne/qmk_firmware 2016-11-11 10:39:11 -05:00
cbbrowne
992ec01b5d Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-11 10:39:07 -05:00
Chris Browne
de3117f483 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-10 23:32:29 -05:00
climbalima
ec0db2933c Merge branch 'master' of https://github.com/climbalima/qmk_firmware
second try
2016-11-10 20:06:54 -05:00
climbalima
b5cecb4cc9 Added both revisions into one folder 2016-11-10 20:03:24 -05:00
Jack Humbert
631b8999a7 Merge pull request #868 from potz/master
Add brazilian ABNT2 keymap
2016-11-10 18:45:09 -05:00
climbalima
79f82d3d80 returned to o 2016-11-10 18:43:31 -05:00
climbalima
6e27f6fbde Changes to be committed:
new file:   keyboards/lets_splitv2/Makefile
	new file:   keyboards/lets_splitv2/config.h
	new file:   keyboards/lets_splitv2/i2c.c
	new file:   keyboards/lets_splitv2/i2c.h
	new file:   keyboards/lets_splitv2/imgs/split-keyboard-i2c-schematic.png
	new file:   keyboards/lets_splitv2/imgs/split-keyboard-serial-schematic.png
	new file:   keyboards/lets_splitv2/keymaps/default/keymap.c
	new file:   keyboards/lets_splitv2/lets_split.c
	new file:   keyboards/lets_splitv2/lets_split.h
	new file:   keyboards/lets_splitv2/matrix.c
	new file:   keyboards/lets_splitv2/pro_micro.h
	new file:   keyboards/lets_splitv2/readme.md
	new file:   keyboards/lets_splitv2/serial.c
	new file:   keyboards/lets_splitv2/serial.h
	new file:   keyboards/lets_splitv2/split_util.c
	new file:   keyboards/lets_splitv2/split_util.h
	new file:   keyboards/maxipad/Makefile
	new file:   keyboards/maxipad/config.h
	new file:   keyboards/maxipad/keymaps/default/Makefile
	new file:   keyboards/maxipad/keymaps/default/config.h
	new file:   keyboards/maxipad/keymaps/default/keymap.c
	new file:   keyboards/maxipad/keymaps/default/readme.md
	new file:   keyboards/maxipad/maxipad.c
	new file:   keyboards/maxipad/maxipad.h
	new file:   keyboards/maxipad/readme.md
2016-11-10 18:19:13 -05:00
Erez Zukerman
f73a378f0f Merge pull request #870 from NoahAndrews/patch-1
Add proper shortcode for KC_DELETE to keycode.txt
2016-11-10 09:43:38 -05:00
IBNobody
1803dbc6d5 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-11-08 21:11:24 -06:00
Noah Andrews
64218f0f70 Add proper shortcode for KC_DELETE to keycode.txt 2016-11-08 22:05:24 -05:00
Potiguar Faga
7aa31ad338 Add brazilian ABNT2 keymap 2016-11-08 13:32:04 -02:00
cbbrowne
83b67b0cf3 Merge branch 'master' of github.com:cbbrowne/qmk_firmware 2016-11-07 12:49:05 -05:00
cbbrowne
cdad01b57a Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-07 12:48:34 -05:00
Jack Humbert
a9e0fd410c Merge pull request #867 from fredizzimo/variable_trace
Variable trace
2016-11-07 10:55:05 -05:00
Jack Humbert
309d93184e Merge pull request #852 from J3RN/remove-z-slash-controls
Removed the control action when holding z or /
2016-11-07 10:47:32 -05:00
Fred Sundvik
0ba3e523a7 Add documentation for the variable tracing 2016-11-06 22:44:43 +02:00
Fred Sundvik
a377017c95 Add possibility to control variable trace from make 2016-11-06 22:11:24 +02:00
Fred Sundvik
f519b94be7 Add variable trace
For debugging changes to variables, either normally or as a result
of a memory corruption.
2016-11-06 21:58:34 +02:00
Jonathan Arnett
1d766c596e Removed the control action when holding z or / 2016-11-06 13:48:20 -05:00
Chris Browne
a4255664ce Merge branch 'master' of github.com:cbbrowne/qmk_firmware 2016-11-06 07:52:44 -05:00
Chris Browne
4f1cb9fd5e Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-06 07:52:21 -05:00
Fred Sundvik
c06e2486ab Increase the infinity60 system tick frequency 2016-11-05 22:45:21 +02:00
lucwastiaux
b8e204322a added more shortcut keys 2016-11-05 12:07:33 +08:00
lucwastiaux
78a1dc84dd updated readme 2016-11-05 11:58:23 +08:00
lucwastiaux
ff8b4a1d89 removed brackets anywhere but in brackets layer, added mouse layer back in, replaced all HYPR with MEH, put semicolon-newline and end-newline on symbol layer 2016-11-05 11:56:59 +08:00
Damien
7697f23538 Merge pull request #11 from jackhumbert/master
Merged from jackhumbert
2016-11-03 21:50:31 +01:00
cbbrowne
930ae4b7ff Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-11-01 13:09:27 -04:00
IBNobody
78976d8f7a Adding SKIP_GIT to speed up compiles. 2016-11-01 11:52:58 -05:00
IBNobody
9e6c57af2a Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-11-01 10:56:56 -05:00
Erez Zukerman
d5270af111 Implements dedicated text zoom keys 2016-11-01 10:03:58 -04:00
Erez Zukerman
7a9be2562d Merge pull request #851 from J3RN/momentary
Switched to momentary
2016-10-31 21:41:19 -04:00
Erez Zukerman
a6401076d5 Merge pull request #843 from lucwastiaux/master
Adding Ergodox Dvorak Programmer layout
2016-10-31 21:40:58 -04:00
Erez Zukerman
bd40844e4e Merge pull request #836 from 20lives/master
added new layout
2016-10-31 21:39:40 -04:00
cbbrowne
b90366285f Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-31 11:45:54 -04:00
Jack Humbert
964b8574ee Merge pull request #839 from priyadi/planck-priyadi-modification
Update priyadi's keymap for Planck; added readme
2016-10-30 12:26:20 -04:00
Jack Humbert
d75de44551 Merge pull request #854 from slebedev/master
Add link to article about Unicode Hex Input in readme
2016-10-30 12:25:52 -04:00
Jack Humbert
b0317abe42 Merge pull request #857 from fredizzimo/fix_makefile_too_long_bash
Run each sumbmake in a separate shell
2016-10-30 12:25:22 -04:00
Fred Sundvik
d956dd1248 Run each sumbmake in a separate shell
This will fix the situation where the commandline gets too long when
there are many keyboards and keymaps.
2016-10-30 17:03:01 +02:00
IBNobody
f403028974 added fixed debounce code 2016-10-29 16:12:58 -05:00
Sergey Lebedev
552f469dfc Add link to article about Unicode Hex Input in readme
For me it wasn't clear what is `Unicode Hex Input`, that article
  clarifies it (at least for me).
2016-10-29 22:08:11 +03:00
IBNobody
e40c33f754 Merge branch 'master' of https://github.com/IBNobody/qmk_firmware 2016-10-29 11:13:15 -05:00
IBNobody
32f88c0717 Made scanning more efficient 2016-10-29 10:39:03 -05:00
IBNobody
4c6960835c Refactoring Matrix scanning 2016-10-28 16:24:20 -05:00
IBNobody
508eddf8ba Fixing Debounce - WIP 2016-10-28 14:21:38 -05:00
IBNobody
a0fdb6b81a Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-10-28 09:28:47 -05:00
dbroqua
2082c6f110 - Fixed typo in gh60/dbroqua layout 2016-10-26 22:24:26 +02:00
cbbrowne
2a2920d92c Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-26 10:55:41 -04:00
lucwastiaux
055247f35d re-introduce brackets layer 2016-10-26 21:00:58 +08:00
Damien
41d7460f53 Merge pull request #10 from jackhumbert/master
Merge from jackhumbert/qmk_firmware
2016-10-26 07:43:58 +02:00
Jack Humbert
f44ead1462 Merge pull request #827 from Dbroqua/master
Updated dbroqua layout for HHKB keyboard and added new layout for KC60
2016-10-26 01:19:27 -04:00
Jack Humbert
67cf367a45 Merge pull request #849 from hot-leaf-juice/master
tiny keymap change
2016-10-26 00:52:13 -04:00
Jack Humbert
003cb9124c Merge pull request #848 from andrebeat/fix-dockerfile
Add subproject env var to dockerfile
2016-10-26 00:51:51 -04:00
Jack Humbert
cbb7e95284 Merge pull request #847 from yinshanyang/master
added notes on using Arduino Pro Micro 3.3V with Let’s Split
2016-10-26 00:51:39 -04:00
Jack Humbert
8d60354d5a Merge pull request #844 from priyadi/unicode_wincompose_input
Unicode WinCompose input method
2016-10-26 00:48:44 -04:00
Jack Humbert
108d0e89a6 Merge pull request #842 from priyadi/unicode_map_length
UNICODE_MAP: remove 5 char limit; ignore leading zeroes; handle OS limitations
2016-10-26 00:48:00 -04:00
Jack Humbert
3b34cf7e6c Merge pull request #841 from jacwib/master
Update jacwib keymap to version 1.2
2016-10-26 00:47:30 -04:00
Jack Humbert
f2dd125a1e Merge pull request #831 from kejadlen/master
add alphadox layouts to atreus and ergodox
2016-10-26 00:46:56 -04:00
Jack Humbert
c66c86cace Merge pull request #834 from kazufukurou/master
add programmer dvorak keymap
2016-10-26 00:45:59 -04:00
Alpha Chen
427ea7a889 [alphadox] remove tmk reset code 2016-10-25 09:00:45 -07:00
Alpha Chen
e2916f8ab1 [ergodox][alphadox] undefine tapping_term, ignore_mod_tap_interrupt 2016-10-25 09:00:45 -07:00
Alpha Chen
22cb73fad3 add alphadox layouts to atreus and ergodox 2016-10-25 09:00:45 -07:00
Callum Oakley
6bbb0b030e replace lock key with general power key 2016-10-25 11:51:32 +01:00
Callum Oakley
c0a9fa8eea switched to standard volume keys 2016-10-25 11:37:09 +01:00
Andre Silva
1557d16562 add subproject env var to dockerfile 2016-10-24 20:29:34 +01:00
Joshua T
7d698cc494 Added comments with ASCII art keymaps 2016-10-24 10:30:00 -05:00
Yin Shanyang
7550abbb7f added notes on using Arduino Pro Micro 3.3V with Let’s Split 2016-10-24 15:36:24 +08:00
IBNobody
ef8f618027 Fixing Line Terminations 2016-10-23 23:03:26 -05:00
IBNobody
17170ba76d Fixed some large keyboard bugs
Fixed some bugs relating to keyboards with more than 16 columns. Also
added the ability to mask off keyboard matrix bits.
2016-10-23 23:00:43 -05:00
IBNobody
05ceef2350 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-10-23 20:45:20 -05:00
Lior Haim
0d26320cf3 merge upstream 2016-10-23 20:22:28 +03:00
Chris Browne
6a0313ac26 Merge branch 'master' of github.com:cbbrowne/qmk_firmware 2016-10-23 10:28:47 -04:00
Chris Browne
ed8efcf86d Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-23 10:28:02 -04:00
jacwib
b7611d5037 1.2 update 2016-10-23 15:57:36 +02:00
Priyadi Iman Nurcahyo
c6f6172fd5 Use WinCompose unicode input method instead of HexNumpad 2016-10-23 19:35:06 +07:00
Priyadi Iman Nurcahyo
4a666c2010 Unicode WinCompose input method 2016-10-23 19:15:33 +07:00
lucwastiaux
919caaccb7 adding readme 2016-10-23 11:44:16 +08:00
Priyadi Iman Nurcahyo
e7d5dc89f2 UNICODE_MAP: remove 5 char limit; ignore leading zeroes; handle OS limitations 2016-10-23 05:36:26 +07:00
jacwib
dbcbd8ee3c Update readme to reflect 1.1 changes. 2016-10-22 21:32:39 +02:00
jacwib
83b2149885 Update keymap to reflect 1.1 changes. 2016-10-22 21:29:47 +02:00
jacwib
a625c2201a Update readme to reflect changes 2016-10-22 21:29:11 +02:00
lucwastiaux
14ac397d5d add up/down keys on thumb clusters 2016-10-23 00:47:58 +08:00
lucwastiaux
64ac74cab6 remove brackets layer, replace a few shortcuts on thumb cluster 2016-10-23 00:44:34 +08:00
lucwastiaux
97e3106848 type brackets in symbol layer, using bottom row 2016-10-23 00:11:16 +08:00
lucwastiaux
e0c9ec54dd add tap-dance support, make right shift double-tap=caplock 2016-10-22 22:39:24 +08:00
lucwastiaux
bc8092245c change include files 2016-10-22 22:29:05 +08:00
lucwastiaux
53a2bf9215 added dvorak programmer layout 2016-10-22 22:22:34 +08:00
Priyadi Iman Nurcahyo
5fa44c594f Update priyadi's keymap for Planck; added readme 2016-10-22 18:47:51 +07:00
twentylives
8727976a1a fixed copy-cut-paste buttons 2016-10-21 12:13:44 +03:00
cbbrowne
976136a0b2 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-20 12:03:15 -04:00
Erez Zukerman
2e2b9962cd Merge pull request #833 from h-parks/master
Win10 Writer's Block - An ErgoDox Keymap
2016-10-20 08:55:16 -04:00
Erez Zukerman
c3dee2bb66 Merge pull request #832 from PhoenixRion/master
Phoenix Layout
2016-10-20 08:53:47 -04:00
twentylives
4ebbb3c297 Merge branch 'master' of https://github.com/20lives/qmk_firmware 2016-10-20 11:07:53 +03:00
twentylives
7090c99adf fixed base layer = key 2016-10-20 11:07:14 +03:00
Artyom Mironov
6e003b1e3f add programmer dvorak keymap 2016-10-19 23:45:55 +03:00
20lives
464af700eb fix readme 2016-10-19 20:26:58 +03:00
twentylives
65c1127b49 update pics and readme 2016-10-19 20:23:10 +03:00
h-parks
f2197611c7 Win10 Writer's Block - An ErgoDox Keymap
fix for compiling on infinity:

replaced `_delay_ms()' with `wait_ms()'
included "wait.h"
2016-10-19 09:33:37 -05:00
h-parks
1688c014cc Win10 Writer's Block - An ErgoDox Keymap
This is a QWERTY layout for ErgoDox on QMK. It's designed to work well in MS Office-like environments. It's tested on Windows 7 and 10.
2016-10-18 21:58:33 -05:00
cbbrowne
729b4cdef3 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-18 18:11:54 -04:00
IBNobody
826417bfc0 Updating Vision keyboard files 2016-10-18 16:45:45 -05:00
Ryan Ascheman
fad20756e3 update header file 2016-10-18 13:58:59 -07:00
Ryan Ascheman
cabfd78309 didn't read PR comment close enough, correcting folder 2016-10-18 12:48:07 -07:00
Ryan Ascheman
60326eded2 moving keymap to new location 2016-10-18 12:44:30 -07:00
Ryan Ascheman
55b8b8477c Merge remote-tracking branch 'upstream/master'
* upstream/master: (1239 commits)
  Update ez.c
  removes planck/rev3 temporarily
  Move hand_swap_config to ez.c, removes error for infinity
  Update Makefile
  ergodox: Update algernon's keymap to v1.9
  Added VS Code dir to .gitignore
  Support the Pegasus Hoof controller.
  [Jack & Erez] Simplifies and documents TO
  add readme
  use wait_ms instead of _delay_ms
  add messenger
  init keymap
  Add example keymap
  Adding whiskey_tango_foxtrot_capslock ergodox keymap
  Unicode map framework. Allow unicode up to 0xFFFFF using separate mapping table
  CIE 1931 dim curve
  Apply the dim curve to the RGB output
  Update the Cluecard readme files
  Tune snake and knight intervals for Cluecard
  Tunable RGB light intervals
  ...
2016-10-18 12:42:02 -07:00
20lives
48eb5112b5 Update readme.md 2016-10-18 22:35:05 +03:00
20lives
31193b9cff Update readme.md 2016-10-18 22:33:42 +03:00
twentylives
28dfaa20f5 adding dvorak hebrew layout 2016-10-18 22:27:36 +03:00
Jack Humbert
04df74f636 Merge pull request #829 from r2d2rogers/master
Move hand_swap_config to ez.c, removes error for infinity
2016-10-18 15:19:00 -04:00
Jack Humbert
d8417f9f6e Merge pull request #824 from dsvensson/pegasushoof
Support the Pegasus Hoof controller.
2016-10-18 15:18:19 -04:00
Rob Rogers
75ea142d01 Update ez.c 2016-10-18 13:59:19 -05:00
Jack Humbert
b466628c0b Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-18 13:58:20 -04:00
Jack Humbert
18b5c3dccf removes planck/rev3 temporarily 2016-10-18 13:57:56 -04:00
Erez Zukerman
0d8844dcb8 Merge pull request #826 from algernon/ergodox-ez/algernon
ergodox: Update algernon's keymap to v1.9
2016-10-17 18:12:31 -04:00
cbbrowne
778dbe46d2 Merge branch 'master' of github.com:cbbrowne/qmk_firmware 2016-10-17 10:54:09 -04:00
cbbrowne
0469bd8ffa Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-17 10:53:39 -04:00
Rob Rogers
1dcee07eab Move hand_swap_config to ez.c, removes error for infinity 2016-10-17 08:04:29 -05:00
Chris Browne
62e6789ab2 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-16 20:59:52 -04:00
Jack Humbert
a889b899e2 working with power limit 2016-10-16 16:03:56 -04:00
Jack Humbert
5f91fb4136 working with power limit 2016-10-16 16:03:33 -04:00
Jack Humbert
80ac73a21c Update Makefile 2016-10-16 15:59:50 -04:00
Jack Humbert
52d7f7d277 Merge pull request #815 from priyadi/unicode_map
Allow unicode up to 0xFFFFF using separate mapping table
2016-10-16 15:49:45 -04:00
Jack Humbert
5e2b843538 Merge pull request #825 from replicaJunction/pr-vscode
Added VS Code dir to .gitignore
2016-10-16 15:49:33 -04:00
dbroqua
911b52a494 - Added HHKB like layout for KC60 pcb 2016-10-16 15:37:47 +02:00
Gergely Nagy
f9d8cf35f6 ergodox: Update algernon's keymap to v1.9
Overall changes
===============

* `F12` was replaced by an `Fx` key, that activate the **Media** layer
  as a one-shot layer, and also `Alt` as a one-shot modifier.

Base layer changes
==================

* The `Media Stop` key is now a tap-dance key, and resets the device for
  programming on the fourth tap.

Miscellaneous
=============

* `π` can now be entered with UCIS.
* `🐁` can now be entered with UCIS.

Tools
=====

* The `tools/layer-notify` tool was removed, it was an example, which I
  don't use.

`tools/hid-commands`
--------------------

* Now looks at the `DISABLE_APPSEL_START` environment value, and does
  not display an AppSel notification if it is non-empty.
* Will attempt to re-program the keyboard when receiving a `reflash`
  command.
* No longer tries to select Emacs 24 on `APPSEL_EMACS`, rather, it goes
  for any Emacs.
* The `APPSEL_MUSIC` command now includes Kodi in the list too, as the
  last choice.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-10-16 08:01:50 +02:00
Joshua T
2a918718f1 Added VS Code dir to .gitignore 2016-10-15 18:46:39 -05:00
Joshua T
d9dede476f Added VS Code dir to .gitignore 2016-10-15 18:40:26 -05:00
Joshua T
896c1e6f1e Added a bit more detail to header 2016-10-15 18:19:09 -05:00
Joshua T
a2adff94bb Reversed tilde and grave 2016-10-15 18:05:22 -05:00
Joshua T
825563f34d Moved Extend tab and ^tab 2016-10-15 17:56:09 -05:00
Joshua T
1455a44a44 Added = to match Atreus 2016-10-15 17:41:36 -05:00
Joshua T
80fe2ea676 Switched Tab and Ctrl back 2016-10-15 17:23:25 -05:00
Joshua T
0714981288 Fixed typo 2016-10-15 17:19:07 -05:00
Joshua T
c67f6ee872 Added Menu key (the rclick menu) 2016-10-15 17:03:27 -05:00
Joshua T
d9db5395b3 Updated layout to 1.2 - lots of changes
Rewrote QWERTY to make it a first-class citizen instead of just a glorified game layer.

Added a lot of keys to Extend layer to bring it in line with my Atreus.

Plenty of other changes too.
2016-10-15 16:51:40 -05:00
Joshua T
a9c8f2f5b8 Reduced TAPPING_TERM to 150
Also removed duplicate definition of PREVENT_STUCK_MODIFIERS
2016-10-15 16:44:26 -05:00
Joshua T
8ec7341fb2 Added Ctrl+` (ConEmu shortcut) 2016-10-15 15:28:16 -05:00
Joshua T
2e6a1a53d7 Merge remote-tracking branch 'upstream/master' 2016-10-15 15:14:10 -05:00
dbroqua
28ca1f5345 Merge branch 'master' of https://github.com/Dbroqua/qmk_firmware 2016-10-14 21:53:37 +02:00
Damien
2098b363ea Merge pull request #9 from jackhumbert/master
Merge from jackhumbert
2016-10-13 21:51:35 +02:00
cbbrowne
f74c560be8 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-13 13:05:33 -04:00
Daniel Svensson
b73adf0dea Support the Pegasus Hoof controller.
Replacement controller for Filco Majestouch TKL keyboards.

matrix.c ported from:
https://github.com/BathroomEpiphanies/epiphanies_tmk_keyboard

More details:
http://bathroomepiphanies.com/controllers/
2016-10-13 12:50:54 +02:00
Erez Zukerman
0a9ad8f335 Merge pull request #818 from pvinis/pvinis-keymap
pvinis keymap
2016-10-13 06:41:51 -04:00
Erez Zukerman
16e362cfc4 Merge pull request #822 from jackhumbert/hotfix/simplify_to
[Jack & Erez] Simplifies and documents TO
2016-10-13 06:41:07 -04:00
Jack & Erez
e27a754b70 [Jack & Erez] Simplifies and documents TO 2016-10-12 22:18:27 -04:00
cbbrowne
99ca59baf8 I keep mis-using UPPER|LOWER/SLASH, and getting RESET.
With RESET shifted to the UPPER+LOWER layer, it is now time to change that key to Alt-Slash, which, in Emacs, does automatic word completion
2016-10-12 12:03:54 -04:00
cbbrowne
dbb8cbac18 Merge branch 'master' of github.com:cbbrowne/qmk_firmware 2016-10-12 11:57:46 -04:00
Pavlos Vinieratos
0853227ede add readme 2016-10-11 11:25:54 +02:00
Pavlos Vinieratos
538cdda78e use wait_ms instead of _delay_ms 2016-10-11 10:34:47 +02:00
Pavlos Vinieratos
bcc0fa5c81 add messenger 2016-10-11 10:34:47 +02:00
Pavlos Vinieratos
2855de5f0f init keymap 2016-10-11 10:34:47 +02:00
Erez Zukerman
698d02122b Merge pull request #803 from coderkun/coderkun_neo2
Merge Unicode fixes for keymap “coderkun_neo2”
2016-10-10 19:59:28 -04:00
Erez Zukerman
be60c057dc Merge pull request #809 from nathanejohnson/osx_whiskey_tango_foxtrot_capslock
Adding whiskey_tango_foxtrot_capslock ergodox keymap
2016-10-10 19:58:59 -04:00
Chris Browne
92ca95641f Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-10-10 17:19:47 -04:00
Chris Browne
4b682ea63e Merge branch 'master' of github.com:cbbrowne/qmk_firmware 2016-10-10 17:18:15 -04:00
Jack Humbert
aa8aa6af75 Merge pull request #808 from npoirey/master
Altgr quick combination and updated readme
2016-10-10 00:22:12 -04:00
Jack Humbert
49fe93fbb3 Merge pull request #811 from Vifon/planck_keymap_vifon
New Planck keymap: vifon
2016-10-10 00:21:01 -04:00
Jack Humbert
0f119e09a5 Merge pull request #810 from Vifon/dynamic_macros
Reduce the default dynamic macro buffer
2016-10-10 00:20:46 -04:00
Jack Humbert
03b6fcdaf0 Merge pull request #814 from fredizzimo/rgb_tuning
Improve the RGB led effects
2016-10-10 00:20:24 -04:00
Jack Humbert
4859be084d Merge pull request #813 from fredizzimo/add_cluecard_rgb_effects
Add a Cluecard keymap for testing the RGB effects
2016-10-10 00:19:34 -04:00
Priyadi Iman Nurcahyo
932705706e Add example keymap 2016-10-10 01:35:41 +07:00
Nathan Johnson
e95c1e3f2c Adding whiskey_tango_foxtrot_capslock ergodox keymap 2016-10-09 12:58:31 -05:00
Priyadi Iman Nurcahyo
5b2e455d3b Unicode map framework. Allow unicode up to 0xFFFFF using separate
mapping table
2016-10-10 00:56:09 +07:00
Fred Sundvik
ffae9d84c5 CIE 1931 dim curve 2016-10-09 20:07:23 +03:00
Fred Sundvik
92a3a96849 Apply the dim curve to the RGB output
Just like it's supposed to be used. It now looks much better.
2016-10-09 20:04:33 +03:00
Fred Sundvik
db4dce7312 Update the Cluecard readme files 2016-10-09 19:37:47 +03:00
Fred Sundvik
02c9a99215 Tune snake and knight intervals for Cluecard 2016-10-09 19:27:11 +03:00
Fred Sundvik
9b0e21f87f Tunable RGB light intervals 2016-10-09 19:26:16 +03:00
Fred Sundvik
0ae07ae64d Tune the snake and knight effect parameters for Cluecard 2016-10-09 19:11:52 +03:00
Jonathan Arnett
f284bc6af9 Switched to momentary
Also updated the style of these lines slightly to match the style of the
default keymap
2016-10-09 11:40:08 -04:00
Wojciech Siewierski
26759e126e New Planck keymap: vifon 2016-10-09 13:34:17 +02:00
Wojciech Siewierski
70f32842e5 Reduce the default dynamic macro buffer
There have been reports of it leaving not enough free memory preventing
the keyboard from working properly.
2016-10-09 12:52:39 +02:00
Fred Sundvik
2d7b549e21 Add keymap with audio disabled but RGB effects enabled 2016-10-09 01:38:55 +03:00
Damien
811257a0c8 Merge pull request #8 from jackhumbert/master
Merge from jackhumbert
2016-10-07 22:27:36 +02:00
npoirey
628a48c788 Updated Readme to help windows users use docker for build 2016-10-07 17:21:38 +02:00
npoirey
1048a588c7 Add Altgr combination for non US layouts 2016-10-07 17:21:38 +02:00
IBNobody
973f526bb4 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-10-06 20:17:16 -05:00
Jack Humbert
a9df99b81c Merge pull request #807 from hot-leaf-juice/master
minor update to callum planck keymap
2016-10-06 19:44:53 -04:00
Jack Humbert
91d2b64850 Merge pull request #805 from SethSenpai/gamenum
Gamenum
2016-10-06 19:44:39 -04:00
Callum Oakley
387b94a6cf updated readme 2016-10-06 07:24:26 +01:00
Callum Oakley
059990e05a added lock screen button and fixed error in diagram 2016-10-06 07:23:12 +01:00
Jack Humbert
b8679bbe04 RGBW lights 2016-10-05 20:41:38 -04:00
SethSenpai
b7442999df updated the wrong makefile like a dummy 2016-10-04 07:58:28 +00:00
SethSenpai
aac3ba61a5 added rules.mk 2016-10-04 07:52:13 +00:00
IBNobody
8ed1208b42 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-10-03 18:46:10 -05:00
Erez Zukerman
d465e3f0c3 Merge pull request #804 from algernon/ergodox-ez/algernon
ergodox: Update algernon's keymap to v1.8
2016-10-03 17:49:23 -04:00
dbroqua
0320fbf6f4 - Updated dbroqua layout for HHKB keyboard (added some missing fn keys) 2016-10-03 23:30:31 +02:00
SethSenpai
0e2786e396 updated readme with images 2016-10-03 18:27:52 +00:00
Gergely Nagy
aa9c6e9f59 ergodox: Update algernon's keymap to v1.8
ADORE
-----

* Major rearrangements were made, to reduce pinky use, and to balance
  out the hand usage.

Tools
-----

* The `hid-commands` tool will now display a notification when
  the **AppSel** layer is triggered.
* The `log-to-heatmap.py` tool now treats the innermost keys on the
  bottom row as thumb keys, as far as statistics are concerned.

Miscellaneous
-------------

* Fixed the **Steno** toggle key.
* My wife is now present on the keyboard too.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-10-03 19:20:00 +02:00
coderkun
8dd69a1b05 Overwrite method hex_to_unicode() for make it compatible with Neo 2016-10-03 16:36:21 +02:00
coderkun
4c9071964b Merge branch 'master' into coderkun_neo2 2016-10-03 16:35:40 +02:00
Jack Humbert
86065dca4d Merge pull request #799 from coderkun/master
Declare Unicode method hex_to_keycode() as “weak”
2016-10-03 10:27:06 -04:00
Jack Humbert
fc86ef6c95 Merge pull request #798 from Dbroqua/master
Updated dbroqua layout for HHKB keyboard
2016-10-03 10:26:39 -04:00
Jack Humbert
37d587d62b Merge pull request #797 from hot-leaf-juice/master
Made some simplifications leveraging the LALT(), LGUI(), and S() functions.
2016-10-03 10:26:21 -04:00
SethSenpai
0f06e94d5d update readme 2016-10-03 09:07:37 +00:00
SethSenpai
468e855207 moved folder, update readme 2016-10-03 08:59:50 +00:00
SethSenpai
c0c0c579ff added gamenum handwired keyboard 2016-10-03 08:53:09 +00:00
coderkun
a3f5a4cf58 Declare Unicode method hex_to_keycode() as “weak”
Declare Unicode method hex_to_keycode() as “weak” to be able to override it in keymaps.
2016-10-02 10:37:51 +02:00
coderkun
8655677584 Merge branch 'master' into coderkun_neo2 2016-10-02 10:04:29 +02:00
coderkun
a10e100bd5 Add double arrow Unicode characters to FMU layer 2016-10-02 09:55:38 +02:00
dbroqua
6a090c5df7 - Fixed key name in default layer definition 2016-10-01 19:04:11 +02:00
dbroqua
7cd210722d Merge remote-tracking branch 'origin/master' 2016-10-01 18:28:48 +02:00
dbroqua
8747c0786e - Updated dbroqua layout for HHKB keyboard 2016-10-01 18:28:33 +02:00
Callum Oakley
633da3bdb6 Made some simplifications leveraging the LALT(), LGUI(), and S() functions. 2016-10-01 13:03:46 +01:00
Damien
7abd3b4ddd Merge pull request #7 from jackhumbert/master
Merge from jackhumbert
2016-09-30 22:55:07 +02:00
Erez Zukerman
35e6870e5c Merge pull request #788 from chwilk/kastyle-refresh
Kastyle refresh
2016-09-30 08:59:59 -04:00
Erez Zukerman
fede822fce Merge pull request #789 from cmclen/master
Contributing new keymap to Ergodox
2016-09-30 08:59:24 -04:00
Jack Humbert
7c76d36454 Merge pull request #794 from AGausmann/midi-patch
Missing ifdef statement
2016-09-29 23:32:23 -04:00
Jack Humbert
d3fdc3a00f Merge pull request #792 from hot-leaf-juice/master
Big restructure, plus mouse and some convenience keys.
2016-09-29 23:31:59 -04:00
Damien
eb0f21a984 Merge pull request #6 from jackhumbert/master
Merge from jackhumbert
2016-09-29 22:59:31 +02:00
Adam Gausmann
8d99140d1b Missing ifdef statement 2016-09-29 14:46:10 -05:00
Callum Oakley
3c7d2e765a Merge branch 'master' of https://github.com/hot-leaf-juice/qmk_firmware 2016-09-29 07:49:45 +01:00
Callum Oakley
2f07ad8e8a added en-dash and gbp keys and updated readme 2016-09-29 07:49:27 +01:00
Callum Oakley
c762ea975a big restructure now I only have to consider macOS, also added mouse, more function keys, and some neat macros 2016-09-29 07:49:27 +01:00
Callum Oakley
fa2724360b removed windows layer and updated brightness keys for macOS Sierra 2016-09-29 07:49:27 +01:00
Callum Oakley
02635e5924 changed RALT to LALT on Windows 2016-09-29 07:49:27 +01:00
Callum Oakley
b2ecd296ae fixed comments 2016-09-29 07:49:27 +01:00
Callum Oakley
c593564aca Update readme.md 2016-09-29 07:49:27 +01:00
Callum Oakley
ff09695897 Update readme.md 2016-09-29 07:49:27 +01:00
Callum Oakley
6ad8a06c73 updated readme 2016-09-29 07:49:27 +01:00
Callum Oakley
b51f51c614 added close key for alt-f4 macro 2016-09-29 07:49:27 +01:00
Callum Oakley
41227856f4 added a toggle between Mac and Windows base layers (with swapped cmd and ctrl) 2016-09-29 07:49:27 +01:00
Callum Oakley
ce57b94908 added en-dash and gbp keys and updated readme 2016-09-29 07:47:30 +01:00
Jack Humbert
f0db230c46 Merge pull request #790 from IBNobody/master
Fix #770, Fix #779, Update Vision
2016-09-28 23:57:50 -04:00
IBNobody
78767bf208 Fix #770, Fix #779 2016-09-28 20:26:41 -05:00
IBNobody
72e643998f Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-28 20:21:19 -05:00
IBNobody
3d45860dc2 Updating Vision to beta layout. 2016-09-28 20:19:28 -05:00
Callum Oakley
8fa41f1ca1 big restructure now I only have to consider macOS, also added mouse, more function keys, and some neat macros 2016-09-28 23:15:35 +01:00
Chris McLennon
cce294df86 Remove config.h 2016-09-28 14:44:41 -05:00
Chris McLennon
65b0eff6d8 Contributing new keymap to Ergodox 2016-09-28 13:24:29 -05:00
Callum Oakley
ddb8eb842d removed windows layer and updated brightness keys for macOS Sierra 2016-09-28 08:04:38 +01:00
Callum Oakley
848bb6df43 changed RALT to LALT on Windows 2016-09-28 07:28:08 +01:00
Callum Oakley
d387534687 fixed comments 2016-09-28 07:28:08 +01:00
Callum Oakley
1c1aa729b1 Update readme.md 2016-09-28 07:28:08 +01:00
Callum Oakley
65f035933b Update readme.md 2016-09-28 07:28:08 +01:00
Callum Oakley
0c243d0d5d updated readme 2016-09-28 07:28:08 +01:00
Callum Oakley
f442348e50 added close key for alt-f4 macro 2016-09-28 07:28:08 +01:00
Callum Oakley
7bca9bc402 added a toggle between Mac and Windows base layers (with swapped cmd and ctrl) 2016-09-28 07:28:08 +01:00
chwilk
32cc2f6bd9 Added description of kastyle keymap 2016-09-27 11:27:09 -05:00
chwilk
e1bfe13090 Moved hand_swap_config array so all keyboards get it defined 2016-09-26 15:49:10 -05:00
chwilk
90fd0810db Updated kastyle keymap, including swap hands feature 2016-09-26 01:05:06 -05:00
chwilk
04c0a1c3e2 Added ONEHAND_ENABLE to allow SWAP HANDS actions 2016-09-26 01:04:33 -05:00
Jack Humbert
812219e8a0 Merge pull request #786 from mannkind/patch-1
Fix lets_split.c so that audio can be disabled
2016-09-25 22:43:38 -04:00
Dustin
c40ad11615 Fix lets_split.c so that audio can be disabled
Matching the use of `#ifdef AUDIO_ENABLE` used in `matrix_init_kb()` in order to compile firmware for the Let's Split keyboard without audio enabled.
2016-09-25 19:04:20 -07:00
IBNobody
24a953ae64 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-25 16:36:30 -05:00
Jack Humbert
f24b3f4589 Merge pull request #785 from jcowgar/master
Added Jeremy’s Atreus Layout
2016-09-25 16:45:08 -04:00
Jack Humbert
a64840613f Merge pull request #784 from Dbroqua/master
Added dbroqua layout for HHKB keyboard
2016-09-25 16:44:50 -04:00
Jack Humbert
628c5bcc62 Merge pull request #781 from cbbrowne/master
Recent enhancements to keyboard map
2016-09-25 16:43:55 -04:00
Jeremy Cowgar
77099c777a Added Jeremy’s Atreus Layout 2016-09-25 12:27:29 -04:00
dbroqua
f0441f08b8 - Added dbroqua layout for HHKB keyboard 2016-09-25 16:32:06 +02:00
Damien
b75cb53c4a Merge pull request #5 from jackhumbert/master
Merge from jackhumbert
2016-09-25 14:03:27 +02:00
Erez Zukerman
6725262516 Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2016-09-23 20:57:41 -04:00
Erez Zukerman
1a96b2cdc8 Disables sleep LED by default 2016-09-23 20:57:36 -04:00
cbbrowne
3f020c0b92 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-09-23 17:51:32 -04:00
Jack Humbert
e1fa9073c2 Merge pull request #778 from TerryMathews/master
Establish support for TADA68
2016-09-23 15:27:20 -04:00
Jack Humbert
3d42d60b7f Merge pull request #776 from DidierLoiseau/issue-772
Fix issue #772 Meh and Hyper not working
2016-09-23 15:26:28 -04:00
TerryMathews
e71d4f3235 Disable RGB led support until a suitable pin is located 2016-09-23 14:20:05 -04:00
cbbrowne
888bd89ba7 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-09-23 12:05:25 -04:00
TerryMathews
fad5487266 Initial support for TADA68 2016-09-22 23:33:22 -04:00
Erez Zukerman
ce6a9a6c38 Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2016-09-22 22:05:18 -04:00
Erez Zukerman
6e5142ca3e Adds EPRM reset key 2016-09-22 22:05:12 -04:00
Erez Zukerman
545f0ca00e Merge pull request #760 from algernon/ergodox-ez/algernon
Update the ergodox/algernon keymap to v1.7
2016-09-22 21:38:59 -04:00
Didier Loiseau
d430999047 Fix issue #772 Meh and Hyper not working 2016-09-23 01:20:49 +02:00
cbbrowne
7a183b4e8b Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-09-22 16:32:29 -04:00
Jack Humbert
0f205a854f Merge pull request #771 from UnderSampled/master
Impossible Layout
2016-09-21 15:56:00 -04:00
Jack Humbert
bd57faa7bf Merge pull request #769 from pvinis/fix/tap-dance-each-tap-restore
[tap dance] restore each_tap functionality
2016-09-21 15:55:18 -04:00
Jack Humbert
3dc1f39d40 Merge pull request #768 from Dbroqua/master
Updated backlight levels for KC60
2016-09-21 15:53:27 -04:00
Jack Humbert
c1414e59c2 Merge pull request #767 from IBNobody/lets_split_reduce_hex_size
Lets split reduce hex size
2016-09-21 15:53:11 -04:00
UnderSampled
9e6a493172 Fixed Impossible Layout readme tables (again) 2016-09-21 18:55:14 +00:00
cbbrowne
3b57a35532 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-09-21 12:19:23 -04:00
Stephen Christie
073a1f21bb Corrected Impossible Layout readme tables 2016-09-21 14:45:05 +00:00
Stephen Christie
9d629719cb Filled Impossible Layout documentation 2016-09-21 14:41:37 +00:00
Pavlos Vinieratos
cda4b534fa add user_data field 2016-09-21 11:29:43 +02:00
Pavlos Vinieratos
0edc82f030 formatting 2016-09-21 11:29:34 +02:00
Pavlos Vinieratos
e1f131db8e restore each_tap callback 2016-09-21 10:23:51 +02:00
dbroqua
7a91cce869 - Updated backlight levels for KC60 2016-09-21 08:02:51 +02:00
IBNobody
b30e6c1c9e Created I2C and Serial keymaps for unit testing
Having a dedicated I2C keymap and a dedicated serial keymap will allow
the testing suite to check both conditions.
2016-09-20 21:46:33 -05:00
IBNobody
6631abc1cb Made Serial and I2C not include the Other
This saves 192 bytes
2016-09-20 21:38:59 -05:00
IBNobody
f956802f29 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-20 20:31:09 -05:00
Jack Humbert
d1d54dedac Merge pull request #765 from jakllsch/more-shifted-dvorak-keycodes
Add more shifted Dvorak key code definitions
2016-09-20 21:02:07 -04:00
Jack Humbert
4d493cd05c Merge pull request #763 from Dbroqua/master
Updated dbroqua layout for KC60
2016-09-20 21:00:47 -04:00
Stephen Christie
86e85438d3 Fixed Qwerty Fn layer to match documented design 2016-09-20 15:45:50 -04:00
IBNobody
3b1df7fb00 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-19 21:00:20 -05:00
Stephen Christie
57a6828a7a Merge branch 'master' of http://github.com/jackhumbert/qmk_firmware 2016-09-19 18:05:58 -04:00
Jonathan A. Kollasch
f0021c9cb9 Add more shifted Dvorak key code definitions 2016-09-19 14:25:44 -05:00
cbbrowne
2c3fcc6c08 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-09-19 11:13:53 -04:00
dbroqua
9a2e24fa98 - Removed HHKB like layout 2016-09-19 13:36:36 +02:00
dbroqua
21b6e4c1f3 Merge remote-tracking branch 'origin/master' 2016-09-19 13:26:18 +02:00
Damien
c438a2a265 Merge pull request #4 from jackhumbert/master
Merge from jackhumbert
2016-09-19 13:25:37 +02:00
dbroqua
94af0194dd - Updated dbroqua layout for kc60 2016-09-19 13:22:34 +02:00
Jack Humbert
5f9c2f63ff Merge pull request #761 from runcom/fix-yum-installs
util/install_dependecies.sh: fix yum packages
2016-09-19 01:22:38 -04:00
Jack Humbert
c678676e41 Merge pull request #755 from IBNobody/master
Fix USER PRINT/NO PRINT warning w/ Bootmagic
2016-09-19 01:21:25 -04:00
Jack Humbert
6282fc8dc1 Merge pull request #751 from erlandsona/master
My Atreus Layout
2016-09-19 01:20:04 -04:00
Antonio Murdaca
edc7441800 util/install_dependecies.sh: fix yum packages
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-09-18 12:42:58 +02:00
Gergely Nagy
3e128552d9 Update the ergodox/algernon keymap to v1.7
Overall changes
===============

* The number row has been completely rearranged on both the **Base** and
  the **ADORE** layers.
* The number/function key behavior was changed: function keys are now on
  the **Media**.
* The `:`/`;` and `-`/`_` keys were put back to their thumb position on
  the bottom row, on both the **Base** and **ADORE** layers.
* The bottom large keys on the inner side of each half now function as
  [tmux](http://tmux.github.io/) keys: the left to send the prefix, the
  right to send the `display-panes` key. The left also doubles as a GNU
  screen prefix key, and sends `C-a` when double tapped.
* A number of functions, such as the **AppSel** layer, now require the
  `hid-commands` tool to be running, with the output of `hid_listen`
  being piped to it.

ADORE
=====

* `Y` and `X` have been swapped again.

Media/Navigation layer
======================

* The function keys are now on this layer.
* Mouse keys have been removed.
* Media start/stop/prev/next have been removed.
* `Print screen` has been removed.
* There is only one screen lock key now.

Heatmap
=======

* Fixed a few issues in the finger-stats calculation.
* The tool now also timestamps and saves all input lines to a logfile,
  which it loads on start, allowing one to continue the collection after
  upgrading the tool.
* The heatmap tool will now colorize the stats by default.
* The periodic stats are now printed in a more compact format.

Tools
=====

* Added a new tool, `tools/layer-notify` that listens to layer change
  events on the HID console, and pops up a notification on layer
  changes.
* Another new tool, `tools/text-to-log.py` has been added that converts
  arbitrary text to a keylogger output, which can be fed to the heatmap
  generator.
* A number of features have been moved to the `tools/hid-commands`
  utility. These generally are OS dependent, and are easier to implement
  on the software side.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-09-18 11:48:47 +02:00
dbroqua
602b058b9e - Added capslock led for KC60 keyboard (based on gitbug.com/jpec/kc60 works) 2016-09-17 19:40:56 +02:00
cbbrowne
cc7604d116 Add breathing, as initial implementation with the RAISE/LOWER keys. And throw in extra macros to shorten keymaps 2016-09-16 17:15:33 -04:00
IBNobody
bbf06d516a Added notes on vagrant file fixes, UPRINT 2016-09-15 21:44:03 -05:00
IBNobody
39cbf1c221 Fixed Batch Syntax on different versions of Windows 2016-09-15 19:49:29 -05:00
Austin Erlandson
ac6125cbea Revert because the IGNORE_MOD_TAP_INTERRUPT flag didn't feel right. 2016-09-15 11:19:54 -05:00
Austin Erlandson
e50f15e360 Add IGNORE_MOD_TAP_INTERRUPT to fix overloaded mod keys sending mod on diads... 2016-09-15 10:58:28 -05:00
cbbrowne
24e8d01dc9 Move ALT... 2016-09-15 11:28:12 -04:00
cbbrowne
0db06def9b Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-09-15 11:27:37 -04:00
IBNobody
4f5f5f0103 Fixed Win_Check Verbose mode. 2016-09-15 07:59:14 -05:00
IBNobody
edb5e72605 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-15 07:52:10 -05:00
IBNobody
0d3ce58b6b Renamed to Win_Check, Removed SET for privacy. 2016-09-14 22:53:23 -05:00
Erez Zukerman
a258358b6c Merge pull request #758 from absenth/development
Absenth Ergodox Keymap Improvements
2016-09-14 22:51:41 -04:00
IBNobody
bcc4213edc Marked the Win_Check_Output.txt file as ignored 2016-09-14 21:39:19 -05:00
IBNobody
b4622eb894 Fixed a last minute format bug. 2016-09-14 21:34:28 -05:00
IBNobody
e72f8dfd7e Adding WinCheck Script for windows install help 2016-09-14 20:22:18 -05:00
Lars R. Noldan
8a01bbc422 Adding Space Cadet, And Correcting Ascii Keymap 2016-09-14 11:54:13 -05:00
Austin Erlandson
c8e7cca6ed Copy config overrides to my keymap directory... 2016-09-14 09:39:57 -05:00
IBNobody
9c574b493c Changed Docs, Moved RetroRefit to Handwired 2016-09-13 22:05:10 -05:00
cbbrowne
5d643bb7ee Got Right SHIFT + Right CTRL 2016-09-13 16:29:01 -04:00
cbbrowne
5be2795ca1 C macros for my favorite complex keystrokes 2016-09-13 16:17:51 -04:00
cbbrowne
fdeaf1d9f8 Give layers longer names 2016-09-13 15:49:46 -04:00
cbbrowne
344929e067 Give layers longer names 2016-09-13 15:48:50 -04:00
Austin Erlandson
3668b29520 Shorten TAPPING_TERM for better responsiveness of overloaded keys... 2016-09-13 11:20:59 -05:00
Austin Erlandson
6098704145 Small update 2016-09-13 10:35:59 -05:00
IBNobody
cb1ac2a3ed Fixed NO_PRINT / USER_PRINT conflict warning. 2016-09-12 20:20:31 -05:00
IBNobody
e9a093451e Clean up atomic keymap (#9)
* Added keyboard help macros

* Fixing Atomic PVC keymap / adding print help
2016-09-12 19:54:52 -05:00
IBNobody
658db40df9 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-12 18:56:16 -05:00
Austin Erlandson
cf17eb0f43 Get rid of sleep button... 2016-09-12 18:36:41 -05:00
Austin Erlandson
0c3aede09e Latest making use of overloaded modifiers... 2016-09-12 18:23:24 -05:00
Austin Erlandson
af4c25c475 My Atreus Layout 2016-09-12 15:20:51 -05:00
cbbrowne
103ba24df2 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-09-12 13:24:31 -04:00
cbbrowne
6a7ef59629 Ongoing experiment; have a special layer for RESET 2016-09-12 13:24:22 -04:00
Erez Zukerman
23faf9ec81 Merge pull request #734 from adiabatic/master
Ergodox EZ: Zweihander keyboard layout updates
2016-09-11 20:28:09 -04:00
Erez Zukerman
862d93e0cb Merge pull request #740 from absenth/development
Absenth's Layout- QWERTY with additional Media Layer Functions.
2016-09-11 20:27:12 -04:00
Erez Zukerman
fe4b379287 Merge pull request #746 from DidierLoiseau/bépo
Bépo with firmware remapping for software CSA layout
2016-09-11 20:26:23 -04:00
Jack Humbert
05b4949fd2 Merge pull request #744 from AlliedEnvy/master
Use rules.mk template in new project generator
2016-09-11 19:25:16 -04:00
Jack Humbert
ffa12f9235 Merge pull request #743 from shelaf/patch-2
Fix compiler warnings for HHKB
2016-09-11 19:24:59 -04:00
Jack Humbert
b06b8f5c18 Merge pull request #742 from dbordak/master
Update Atreus default map
2016-09-11 19:24:34 -04:00
Jack Humbert
5b4f56d6e5 Merge pull request #741 from shelaf/patch-1
fix number of NKRO keys
2016-09-11 19:24:12 -04:00
Didier Loiseau
21747cc310 Added readme.md for bepo_csa 2016-09-11 22:30:05 +02:00
IBNobody
498eddedc5 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-10 21:51:21 -05:00
Didier Loiseau
1aeb59335f Fixed compilation issues after the merge 2016-09-11 02:19:55 +02:00
Didier Loiseau
b9014c7575 Merge remote-tracking branch 'remotes/jackhumbert/master' into bépo 2016-09-11 01:26:47 +02:00
Didier Loiseau
60a826923d Added KC_APP on fn+BP_AGRV 2016-09-11 01:16:36 +02:00
Daniel K. Levy
11bcdbc1f5 Use rules.mk template in new project generator 2016-09-10 16:37:08 -05:00
shela
2a8536f00f Variables in Makefile are ignored in rules.mk 2016-09-11 02:46:06 +09:00
Daniel Bordak
475d0b23f6 Add PCBDOWN 2016-09-10 13:35:53 -04:00
Daniel Bordak
054108d1d1 Update to new default keymap 2016-09-10 13:35:53 -04:00
shela
70b4fc808d fix variable value of rules.mk 2016-09-11 02:29:32 +09:00
Daniel Bordak
a9e56186e0 Fix typo 2016-09-10 12:16:38 -04:00
shela
e25ae23287 fix number of NKRO keys
32byte report = 1byte modifiers + 31byte keys
31byte * 8bit * 1key/bit = 248keys
2016-09-10 23:47:33 +09:00
Didier Chagniot
83b6dd0cd6 readme.md updated 2016-09-10 00:20:21 +02:00
Didier Chagniot
67dfde765f typing with it 2016-09-09 21:42:35 +02:00
Jack Humbert
5010df3d8b Merge pull request #715 from profet23/master
Support for Ergodoxes with 80 keys.
2016-09-09 10:50:39 -04:00
Lars
52121cee7a Updated Image Header 2016-09-08 23:32:11 -05:00
Lars
9c2015ea7f first commit of Absenth's Ergodox Firmware 2016-09-08 23:20:17 -05:00
profet23
b83f76e1b0 Changing keymap name to "profet_80" 2016-09-08 23:34:55 -04:00
Jack Humbert
7c1b5c85b9 Merge pull request #739 from pondrejk/master
util/install_dependencies.sh made executable, fixes #738
2016-09-08 17:50:36 -04:00
Jack Humbert
55a3fb2411 Merge pull request #737 from pondrejk/patch-1
fixed typo in Linux install instructions
2016-09-08 17:50:24 -04:00
Jack Humbert
4caddd1c5b Merge pull request #736 from tong92/master
add tong92 keymap
2016-09-08 17:50:11 -04:00
Jack Humbert
02ff748132 Merge pull request #735 from romanzolotarev/patch-1
Fix typo
2016-09-08 17:49:51 -04:00
Jack Humbert
94ef7f99b8 Merge pull request #733 from cbbrowne/master
Various recent enhancements to my keyboard map
2016-09-08 17:49:35 -04:00
Jack Humbert
4a54ece468 Merge pull request #730 from IBNobody/master
Change NKRO Report Size = 32, User Print
2016-09-08 17:48:54 -04:00
Peter Ondrejka
01163b268a util/install_dependencies.sh made executable, fixes #738 2016-09-08 19:39:27 +02:00
Peter Ondrejka
08c177f00b fixed typo in Linux install instructions 2016-09-08 19:22:26 +02:00
tong92
98e43f995d add tong92 keymap 2016-09-08 23:37:13 +09:00
Roman Zolotarev
740b4bbe46 Fix typo 2016-09-08 21:12:34 +08:00
IBNobody
fe2aed0d1c Added User Print - A "light" console out option (#8)
User print disables the normal print messages in the body of QMK/TMK
code and is meant as a lightweight alternative to NOPRINT. Use it when
you only want to do a spot of debugging but lack flash resources for
allowing all of the codebase to print (and store their wasteful
strings).
2016-09-07 23:50:58 -05:00
Nathan Sharfi
273a6cc688 - Make thumb-accessible ⌥ and ⌃ into right-⌥ and right-⌃
- remove media-space and media-shift-space; put a play/pause key at media-m instead
- add print screen, scroll lock, and pause/break to the media layer

And in the readme:

- don't say we don't have any Windows-specific keys
- add mnemonics for thumb-alt and thumb-ctrl positioning
2016-09-07 20:28:31 -07:00
Nathan Sharfi
e5396ca9e5 zweihander: rename to Makefile 2016-09-07 18:23:01 -07:00
cbbrowne
54214b3abc Borrowed joint Shift/Enter idea from sgoodwin mapping 2016-09-07 13:29:29 -04:00
cbbrowne
73fdd8a769 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-09-07 13:09:14 -04:00
IBNobody
558f3ec1eb Use keyboard config for nkro (#7)
* removing nkro references - wip

* changed NKRO to be defined by keymap_config
2016-09-06 23:19:01 -05:00
Daniel
b807867f95 moves brackets from J/K to U/I to remove block of common vim sequence. 2016-09-06 21:56:27 -06:00
profet23
1406118c71 Removing separate ergodox80 project.
Created KEYMAP_80 in ez.h to support 80 key ergodoxes.
Creating default_80 keymap as ez keymap.
2016-09-06 21:59:47 -04:00
Erez Zukerman
0f111182a6 Merge pull request #732 from romanzolotarev/master
Change CTL_T(KC_ESC) to KC_LCTRL and update readme
2016-09-06 21:35:15 -04:00
Erez Zukerman
74d72c724b Merge pull request #729 from joarau/master
norwegian programmer-friendly layout
2016-09-06 21:33:55 -04:00
Roman Zolotarev
da16733e7a Change CTL_T(KC_ESC) to KC_LCTRL and update readme 2016-09-07 08:03:19 +08:00
IBNobody
f0388a5b13 Merge pull request #6 from IBNobody/fix_magic_key_binding_NKRO
Set keyboard_nkro (used by TMK) w/ MAGIC_HOST_NKRO
2016-09-06 18:07:48 -05:00
IBNobody
e571d4656c Set keyboard_nkro (used by TMK) w/ MAGIC_HOST_NKRO
If NKRO is enabled, also set keyboard_nkro with MAGIC_HOST_NKRO and
MAGIC_UNHOST_NKRO.
2016-09-06 18:02:43 -05:00
IBNobody
91e0f62417 Merge pull request #5 from IBNobody/make_nkro_report_32_bytes
Change NKRO size fron 16 bytes to 32 bytes.
2016-09-06 15:00:51 -05:00
IBNobody
16e706214f Change NKRO size fron 16 bytes to 32 bytes. 2016-09-06 14:59:12 -05:00
IBNobody
ff53e16767 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-06 14:57:12 -05:00
joar
a3e7042084 norwegian programmer-friendly layout 2016-09-06 16:00:08 +02:00
Erez Zukerman
8b0769fe5a Merge pull request #728 from fitzsim/yoruian
Add new ErgoDox EZ keymap, YORUIAN
2016-09-06 07:07:25 -04:00
Thomas Fitzsimmons
ce53c0643d Fix ergodox_yoruian XKB naming 2016-09-06 00:09:14 -04:00
Thomas Fitzsimmons
e9ce4960c1 Add new ErgoDox EZ keymap, YORUIAN 2016-09-05 20:53:35 -04:00
Erez Zukerman
5bb29136b1 Merge pull request #686 from coderkun/coderkun_neo2
Merge Ergodox keymap “coderkun_neo2”
2016-09-05 20:33:09 -04:00
Erez Zukerman
45d68486a2 Merge pull request #678 from algernon/ergodox-ez/algernon
ergodox: Update algernon's keymap to v1.6
2016-09-05 20:32:46 -04:00
Jack Humbert
0468093b12 Merge pull request #724 from sgoodwin/master
Add my keymap.
2016-09-05 13:21:24 -04:00
Jack Humbert
751832192c Merge pull request #722 from fredizzimo/fix_always_linking
Fix the ldflags.txt and obj.txt checks
2016-09-05 13:20:59 -04:00
Jack Humbert
4769b85130 Merge pull request #719 from IBNobody/master
Updated docs to show more info on backlight breathing.
2016-09-05 13:20:48 -04:00
Jack Humbert
fcc2d43943 Merge pull request #716 from MajorKoos/master
Add support for JD40 MKII PCB
2016-09-05 13:19:58 -04:00
Jack Humbert
f1b6729921 Merge pull request #711 from hot-leaf-juice/master
Updated callum's keymap
2016-09-05 13:17:14 -04:00
Jack Humbert
0301d2fdc2 Merge pull request #710 from algernon/h/tap-dance/keyup-seq-start-fix
tap-dance: Do not start a sequence on keyup
2016-09-05 13:16:58 -04:00
Samuel Ryan Goodwin
bf5941b335 Add my keymap. 2016-09-05 15:53:52 +02:00
Fred Sundvik
13f3c73386 Fix the ldflags.txt and obj.txt checks
There was a minor typo, which caused the files to not be generated
and therefore the elf files were always linked.
2016-09-04 23:26:49 +03:00
IBNobody
f16fece283 Merge pull request #4 from IBNobody/update_atomic_planck_pvc_keymaps
Added diagonal mice macros, breathing ala Atomic
2016-09-04 01:08:36 -05:00
IBNobody
f6cb08a5bd Added diagonal mice macros, breathing ala Atomic 2016-09-04 01:07:36 -05:00
IBNobody
d55a705bbb Moved breathing backlighting section in readme.md 2016-09-03 23:21:24 -05:00
IBNobody
f065652812 Updated doc to contain breathing information. 2016-09-03 20:33:34 -05:00
IBNobody
7fd5b6581a Updated readme to have better backlight breathing info. 2016-09-03 20:29:29 -05:00
IBNobody
c20540984e Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-03 11:52:55 -05:00
Major Koos
11224a00fe Add rules.mk file 2016-09-02 16:42:40 -07:00
Major Koos
295ef0d964 Add support for JD40 MKII PCB
RGB Included.
2016-09-02 16:14:40 -07:00
profet23
36e16b46e3 Removing/editing non applicable readme 2016-09-02 17:18:39 -04:00
Daniel
250f096144 adds tap dance and macro to move underscore and l- and r- brackets to base layer. 2016-09-02 14:35:15 -06:00
profet23
a485e13afe Adding 80 Key Ergodox Support 2016-09-02 16:24:05 -04:00
Callum Oakley
e4167c8c53 fixed incorrect key combination for locking screen on macOS 2016-09-02 09:03:39 +01:00
Daniel
0c598f53c1 adds Hyper key. improves media layer. first attempt at tap dance. 2016-09-01 23:37:52 -06:00
Callum Oakley
4c67ccc81e changed some of the wording in the readme 2016-09-01 18:30:49 +01:00
Callum Oakley
8b2a235c8d changed order of modifiers after experimentation, updated readme 2016-09-01 18:14:39 +01:00
Callum Oakley
9c3193f225 Merge remote-tracking branch 'upstream/master' 2016-09-01 17:55:00 +01:00
Joshua T
5520b0022f Merge remote-tracking branch 'upstream/master' 2016-09-01 07:40:46 -05:00
Gergely Nagy
acda2b793f tap-dance: Do not start a sequence on keyup
There was an odd case, which confused the hell out of tap-dance: suppose
you had a number of tap-dance keys, on a layer, and as part of the
tap-dance, you turned that layer off - or had it on one-shot to begin
with. In this case, the keydown event would trigger the tap-dance key,
but the keyup would not. This had two funky consequences:

- tap-dance did not correctly register that the dance has ended.
- pressing any other tap-dance key would interrupt the previous
  tap-dance, and potentially input unwanted characters.

To fix this, we simply do not start a tap-dance sequence on keyup, only
when it is pressed. This way the previous sequence has enough time to
time-out and finish properly, and we don't get confused.

This fixes algernon/ergodox-layout#107.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-09-01 08:32:47 +02:00
Daniel
dbac9f4954 Merge remote-tracking branch 'upstream/master' 2016-08-31 22:15:47 -06:00
Jack Humbert
e28d151a8a Merge pull request #707 from algernon/f/unicode/get-mode
process_unicode: Add get_unicode_input_mode()
2016-08-31 11:28:52 -04:00
Gergely Nagy
c9ea236fc3 process_unicode: Add get_unicode_input_mode()
There may be cases where one would like to know the current Unicode
input mode, without having to keep track of it themselves. Add a
function that does just this.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-31 08:21:52 +02:00
Jack Humbert
27f9671a3e Merge pull request #705 from VoodaGod/bone2planck
Bone2planck update
2016-08-30 23:07:24 -04:00
Jason Janse van Rensburg
fc2ca62a3b Merge branch 'master'
Conflicts:
	keyboards/planck/keymaps/bone2planck/keymap.c
2016-08-30 14:54:00 +02:00
Jack Humbert
8e00c464e6 Merge pull request #703 from jhenahan/feature/jhenahan-keymap
jhenahan Planck layout
2016-08-29 20:16:20 -04:00
Jack Humbert
3301e2219f Merge pull request #700 from algernon/h/ucis/enable-fix
build_keyboard.mk: Restore UCIS_ENABLE support
2016-08-29 20:15:46 -04:00
Damien
af24ea558a Merge pull request #3 from jackhumbert/master
Merge from jackhumbert
2016-08-29 22:33:50 +02:00
cbbrowne
fba509780e Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-29 12:32:03 -04:00
Jack Henahan
6d7637ae3e Update README 2016-08-29 11:43:06 -04:00
Jack Henahan
42f1ce08dc jhenahan layout 2016-08-29 11:35:07 -04:00
Gergely Nagy
2f0395ce72 build_keyboard.mk: Restore UCIS_ENABLE support
During the build system refactor, support for enabling UCIS seems to
have been lost. This little patch adds that back, so that keymaps using
UCIS can be compiled again.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-29 11:30:38 +02:00
IBNobody
6da0eb2b2b Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-08-28 18:50:06 -05:00
Jack Humbert
6d1e916851 Merge pull request #697 from fredizzimo/fix_gh_token_problem
Fix the .travis.yml so that GH_TOKEN works properly
2016-08-27 19:00:21 -04:00
Jack Humbert
25502277e8 Merge pull request #696 from fredizzimo/community_boards
Update list of community keyboards
2016-08-27 18:56:42 -04:00
Fred Sundvik
83eb9e4eed Fix the .travis.yml so that GH_TOKEN works properly 2016-08-28 01:10:14 +03:00
Fred Sundvik
3bdebd2270 Update list of community keyboards 2016-08-28 00:54:26 +03:00
Jack Humbert
326de65439 Merge pull request #689 from jeebak/tv44-jeebak
Port jeebak's Planck/JD45 keymap to TV44
2016-08-27 17:30:39 -04:00
Jack Humbert
2ac90ed704 Merge pull request #684 from tomb0y/kc60_workman_dead
Correct typo in kc60 workman-dead keymap
2016-08-27 17:30:05 -04:00
Jack Humbert
bade8be66c Merge pull request #695 from fredizzimo/dfu-util_instructions
Add dfu-util to the instructions
2016-08-27 17:29:35 -04:00
Jack Humbert
98bedbeb75 Merge pull request #693 from fredizzimo/infinity60
Rename infinity_chibios to infinity60, and add readme
2016-08-27 17:29:12 -04:00
Jack Humbert
a1b289c99a Merge pull request #694 from fredizzimo/keyboard_template
Fix the keyboard template with new make syntax
2016-08-27 17:07:49 -04:00
Jack Humbert
4fd5ac8326 Merge pull request #690 from fredizzimo/unit_test
Add Unit Testing support
2016-08-27 17:06:45 -04:00
Fred Sundvik
8ab9c5c55a Rename infinity_chibios to infinity60, and add readme 2016-08-27 23:55:33 +03:00
Fred Sundvik
53302328d0 Add dfu-util to the instructions 2016-08-27 23:43:49 +03:00
Fred Sundvik
1f5838a286 Fix the keyboard template with new make syntax
Also add proper link to the parent
2016-08-27 23:31:15 +03:00
Fred Sundvik
922c4ea3bc Add unit test documentation 2016-08-27 21:57:49 +03:00
Fred Sundvik
ca51457327 Another attempt to make keyboards and tests in parallel 2016-08-27 21:57:49 +03:00
Fred Sundvik
fd93a9bb29 Make tests and keyboards in two different jobs 2016-08-27 21:57:49 +03:00
Fred Sundvik
03b1d142f2 Add -p parameter to mkdir
So that it's created even when there's a deeper structure
2016-08-27 21:57:49 +03:00
Fred Sundvik
6b92b62802 Travis builds the default all target 2016-08-27 21:57:49 +03:00
Fred Sundvik
6410f0c021 The all target makes all keyboards and all tests 2016-08-27 21:57:49 +03:00
Fred Sundvik
1b963117fe Support for running and cleaning all tests 2016-08-27 21:57:49 +03:00
Fred Sundvik
42baa6cf43 Disable map file creation when building tests
It causes strange linker warnings on cygwin.
2016-08-27 21:57:49 +03:00
Fred Sundvik
7eefb34e7c Detect failures when running multiple tests
Also add better output.
2016-08-27 21:57:49 +03:00
Fred Sundvik
ffb0a126f5 Convert tirple_buffered_object_tests to GTest 2016-08-27 21:57:49 +03:00
Fred Sundvik
bcdf9ab76b Convert transport_tests to GTest 2016-08-27 21:57:49 +03:00
Fred Sundvik
b3eba797af Convert frame_validator_tests to GTest 2016-08-27 21:57:49 +03:00
Fred Sundvik
cdd0913bcc Convert frame_router_tests to GTest 2016-08-27 21:57:49 +03:00
Fred Sundvik
c692fd1d55 More common settings for unit tests and keyboards 2016-08-27 21:57:49 +03:00
Fred Sundvik
fc855cb30e Fix running multiple tests 2016-08-27 21:57:49 +03:00
Fred Sundvik
f4429ba48c Running of unit tests
But only if the compilation has succeeded
2016-08-27 21:57:49 +03:00
Fred Sundvik
0a11460175 Build actual tests, convert byte_stuffer_tests 2016-08-27 21:57:49 +03:00
Fred Sundvik
8a9aac6e32 Rules for compiling and linking google test 2016-08-27 21:57:49 +03:00
Fred Sundvik
27a673f5cf The makefile actually calls build_test 2016-08-27 21:57:49 +03:00
Fred Sundvik
6d7cd639a5 Basic framework for parsing test targets 2016-08-27 21:57:49 +03:00
Fred Sundvik
cfddec17d5 Add Google Test submodule 2016-08-27 21:57:49 +03:00
Jack Humbert
f815b4871e Merge pull request #691 from fredizzimo/fix_line_endings
Fix line endings
2016-08-27 14:54:55 -04:00
Fred Sundvik
cff26bc484 Merge branch 'master' into fix_line_endings 2016-08-27 21:01:46 +03:00
Jack Humbert
36b6a96596 Merge pull request #666 from fredizzimo/makefile_overhaul
Makefile overhaul
2016-08-27 13:49:42 -04:00
Fred Sundvik
265df7d5da Fix travis_compiled_push 2016-08-27 20:18:26 +03:00
Fred Sundvik
a5b1af4999 Normalize line endings 2016-08-27 18:40:50 +03:00
Fred Sundvik
de58ec9738 Set eep files to binary mode 2016-08-27 18:37:28 +03:00
JeeBak Kim
5fe883e74b [tv44] Port jeebak's planck keymap to tv44 2016-08-26 22:18:40 -07:00
JeeBak Kim
ff0e0ee459 [tv44] Add "jeebak" keymap folder as a copy of the "default" folder 2016-08-26 14:48:03 -07:00
Fred Sundvik
d1e4f2eb08 Merge remote-tracking branch 'upstream/master' into makefile_overhaul 2016-08-26 21:57:17 +03:00
cbbrowne
a732003bfd Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-26 12:13:50 -04:00
Erez Zukerman
2c8f6557e6 Merge pull request #664 from linsomniac/infinity_readme
Adding nicer Infinity build instructions.
2016-08-26 07:32:24 -04:00
Erez Zukerman
17511870bc Merge pull request #685 from fredizzimo/windows10_instructions_typo
Fix minor typo in the readme
2016-08-26 07:29:12 -04:00
coderkun
137eb118e3 Add box-drawing Unicode characters to keymap “coderkun_neo2” 2016-08-26 13:27:56 +02:00
coderkun
c78b44fb18 Set Unicode input mode and override unicode_input_start() method to keymap “coderkun_neo2” 2016-08-26 13:27:56 +02:00
coderkun
5b58d7d145 Disable debugging for Ergodox keymap “coderkun_neo2” 2016-08-26 13:27:56 +02:00
zs
3f0e1b3a8e Correct typo in kc60 workman-dead keymap
and rename README.md to readme.md
2016-08-26 10:42:36 +02:00
Damien
8e058135e2 Merge pull request #2 from jackhumbert/master
Merge from jackhumbert
2016-08-26 07:55:30 +02:00
Fred Sundvik
6cfdd077b5 Fix bad merge
Led should have been added to KC60, not GH60
2016-08-26 00:05:58 +03:00
Fred Sundvik
86ece64176 Fix minor typo in the readme 2016-08-25 23:54:05 +03:00
Fred Sundvik
3300203157 Remove google test submodule
It had been added for some strange reason, allthough it's supposed
to be there only in another branch.
2016-08-25 23:37:18 +03:00
Fred Sundvik
fb8365a378 Split vision_division into Makefile/rules.mk 2016-08-25 23:28:10 +03:00
Fred Sundvik
523dff3005 Merge branch 'master' into makefile_overhaul 2016-08-25 23:26:02 +03:00
Jack Humbert
4321f0af7d Merge pull request #659 from Dbroqua/master
- Updated dbroqua layout for planck keyboard
2016-08-25 15:49:50 -04:00
dbroqua
8d0aed39d1 - Added capslock led for KC60 keyboard (based on gitbug.com/jpec/kc60 works) 2016-08-25 20:39:55 +02:00
Jack Humbert
f0cb5e9e50 Merge pull request #683 from ickerwx/master
LEDs work now, fixed Kitten Paw default keymap, added my own keymap as a better example
2016-08-25 12:22:28 -04:00
Jack Humbert
8ebe9c446c Merge pull request #681 from IBNobody/vision_division_dev
Added Port A Pin Mapping / Added Vision Division (WIP)
2016-08-25 11:40:51 -04:00
Jack Humbert
6f6f745385 Merge pull request #682 from jeebak/jd45-jeebak
Port jeebak's Planck keymap to JD45
2016-08-25 11:33:14 -04:00
Jack Humbert
5728d1c9f2 Merge pull request #680 from replicaJunction/layout-atreus-replicaJunction
Added replicaJunction keymap
2016-08-25 11:27:55 -04:00
IBNobody
34eeea787c Fixed naming of Analog pins to differentiate them from DIO pins used by Quantum Matrix 2016-08-25 08:16:18 -05:00
René Werner
22ef0bbac5 Merge remote-tracking branch 'upstream/master' into kitten_paw 2016-08-25 12:27:29 +02:00
René Werner
1bbd3c1eea fixed defaulf keymap, added my own keymap
now the LEDs are working like they should
2016-08-25 12:25:57 +02:00
JeeBak Kim
94597a27c5 Make the "extra" key in the top row another backspace 2016-08-25 03:06:42 -07:00
Damien
c51862b237 Merge pull request #1 from jackhumbert/master
Merge from jackhumbert
2016-08-25 08:58:04 +02:00
dbroqua
c34399c592 - Updated kc60/readme
- Added layout examples for kc60
2016-08-25 08:29:30 +02:00
JeeBak Kim
9c0c8c307d [jd45] Port jeebak's planck keymap to jd45 2016-08-24 22:34:03 -07:00
JeeBak Kim
601feed87e [jd45] Add "jeebak" keymap folder as a copy of the "default" folder 2016-08-24 22:23:24 -07:00
IBNobody
8423601ea1 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' into vision_division_dev 2016-08-25 00:16:15 -05:00
IBNobody
936a26d04f Added pin support for A0-A7
Vision Division - It works!
2016-08-25 00:15:41 -05:00
Joshua T
a72d46d1ec Added replicaJunction keymap 2016-08-24 23:58:59 -05:00
Joshua T
b0c3d59681 Fixed getting "stuck" in gaming layer 2016-08-24 23:49:33 -05:00
Joshua T
42fa91a57d Merge remote-tracking branch 'upstream/master' 2016-08-24 23:46:52 -05:00
Joshua T
cac69cb580 Several key placement fixes.
* Switched Tab and Super on the default layout
* Moved Shift on Extend to pinky
* Moved Caps Lock to upper right corner
* Moved gaming toggle to avoid blocking Escape
2016-08-24 23:41:14 -05:00
Olivier
73d2a470ee Merge https://github.com/jackhumbert/qmk_firmware 2016-08-25 00:11:37 +02:00
cbbrowne
7c2a24b315 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-24 17:47:09 -04:00
cbbrowne
9778349c4b More notes 2016-08-24 17:47:01 -04:00
Gergely Nagy
f512179e66 ergodox: Update algernon's keymap to v1.6
Major changes include:

Base layer changes
------------------

* The parentheses & bracket keys have been merged: tapping them results
  in `[` or `{` (if it was shifted), double tapping leads to `(`.
* The `:;` and `-_` keys are now available on the base layer, on
  their **ADORE** location, too, just below `[{(`/`]})`.
* The `Apps` key has been replaced by `F12`.
* The `-`/`_` is no longer a tap-dance key.

ADORE layer changes
-------------------

* Adjustments were made to the **ADORE** layer, to separate some
  inconvenient combinations.

Miscellaneous changes
---------------------

* `LEAD u` now starts the symbolic unicode input system, instead of the
  OS-one.
* The mouse acceleration keys on the **Navigation and Media* layer have
  been turned into toggles: tap them once to turn them on, until tapped
  again. Tapping an accelerator button will turn all the others off.
* When the **ARROW** layer is on, the *red* and *blue* LEDs light up
  now.

Heatmap
-------

* The built-in keylogger has been greatly enhanced, it now outputs the
  pressed state, and the layer (Dvorak or ADORE). As such, the
  `ADORE_AUTOLOG` option has been removed, instead there is
  `AUTOLOG_ENABLE` now, which when enabled, makes the keylogger start
  when the keyboard boots. It defaults to off.
* The heatmap generator received a lot of updates.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-24 23:22:57 +02:00
dbroqua
e6dcb8de8c - Fixed layout for kc60 2016-08-24 22:22:14 +02:00
dbroqua
5979051de3 - Updated kc60.h for 2x 1u backspace (K49)
- Added dbroqua layout
2016-08-24 21:53:49 +02:00
Sean Reifschneider
0dfd1712bb Making the existing firmware link better 2016-08-24 09:30:29 -06:00
Sean Reifschneider
7debe7cd77 Changes based on @fredizzimo review, flashing Infinity details 2016-08-24 09:26:41 -06:00
Jack Humbert
ad206155aa Merge pull request #679 from algernon/h/ucis/subproject-fix
quantum: Move qk_ucis_state to process_unicode.c
2016-08-24 11:21:17 -04:00
Jack Humbert
d2990645ca Merge pull request #646 from nclundsten/master
fix ergodox ez link
2016-08-24 11:14:21 -04:00
Gergely Nagy
a058ae40e2 quantum: Move qk_ucis_state to process_unicode.c
In order to not declare the same variable in multiple objects (which
happens when building UCIS-enabled keymap for both the ErgoDox EZ and
the ErgoDox Infinity), move the declaration to the .c file, and keep
only an extern reference in the header.

Many thanks to @fredizzimo for spotting the error in Travis, and
suggesting the fix.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-24 15:39:23 +02:00
dbroqua
235d47e747 - Updated readme by adding link on kle for each layer 2016-08-24 12:57:32 +02:00
Fred Sundvik
2e3834edea Merge remote-tracking branch 'upstream/master' into makefile_overhaul 2016-08-24 10:37:02 +03:00
Fred Sundvik
7c9fff59d0 Fix slight inconsistency
When running make from either a keyboard folder or a subproject
it runs all keymaps for all subprojects and the selected subproject
respectively. Without this fix, the same doesn't happen if your
run make clean for example. As it would just provide you with an
error message. Now this will work as expected.
2016-08-24 10:29:01 +03:00
IBNobody
a902206735 Nightly
Prep for Vision build
2016-08-23 23:05:35 -05:00
IBNobody
5d685efa49 Merge remote-tracking branch 'refs/remotes/origin/master' into vision_division_dev 2016-08-23 20:53:21 -05:00
IBNobody
9263ade0fb Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-08-23 20:52:19 -05:00
IBNobody
6c2b7f359c Fixed line ending 2016-08-23 20:47:35 -05:00
IBNobody
3f8672287f Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-08-23 20:45:06 -05:00
dbroqua
d19c0d46d9 Merge remote-tracking branch 'upstream/master' 2016-08-23 20:39:01 +02:00
Jack Humbert
a920548471 Merge pull request #677 from SmackleFunky/master
Virtual Serial Port - and a Layout that uses that virtual serial port for Plover
2016-08-23 11:05:26 -04:00
dbroqua
e65252d591 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	keyboards/planck/keymaps/dbroqua/keymap.c
2016-08-23 13:39:49 +02:00
René Werner
6a61c89477 added my personal keymap
I ported my keymap from tmk to QMK.
2016-08-23 13:20:59 +02:00
René Werner
d28942f5d7 Merge branch 'kitten_paw' 2016-08-23 12:17:39 +02:00
René Werner
06c82a063b Fixed wrong keycode in default keymap
Where I used KC_MENU I should have used KC_APP instead.
2016-08-23 12:15:29 +02:00
Jason Green
7009112752 move to ergodox-ez only 2016-08-23 07:04:55 +00:00
Fred Sundvik
feebc58d32 Split kitten_paw into Makefile/rules.mk 2016-08-23 09:42:11 +03:00
Fred Sundvik
8f2af3c6bc Merge branch 'master' into makefile_overhaul 2016-08-23 09:38:05 +03:00
Jason Green
104ca8a5e1 Remove unneeded include 2016-08-23 04:49:05 +00:00
Jason Green
ec62cbe384 add missing #include 2016-08-23 04:32:40 +00:00
Jack Humbert
fb4452c2f5 Merge pull request #671 from Talljoe/one-hand
Add native one-handed support
2016-08-23 00:29:46 -04:00
Jack Humbert
57125ce790 Merge pull request #673 from coderkun/master
Add method to set Unicode input key for ISO 14755
2016-08-23 00:28:01 -04:00
Jack Humbert
3824fa0014 Merge pull request #675 from Xyverz/master
Added missing item K3A to KEYMAP() variable in tv44.h
2016-08-23 00:27:23 -04:00
Jack Humbert
9ca4c9f57f Merge pull request #676 from ickerwx/kitten_paw
Added support for the Kitten Paw controller
2016-08-23 00:26:59 -04:00
Jason Green
86656690f1 TxBolt (Steno) Serial protocol for Ergodox Ez 2016-08-23 04:17:34 +00:00
Jason Green
80d10bef07 Added USB Virtual Serial support 2016-08-23 04:16:35 +00:00
dbroqua
92fe78a5ea - Added PrintScreen key on multimedia layer 2016-08-22 21:19:03 +02:00
René Werner
a26ee57eb8 Added support for the Kitten Paw controller
This adds support for the 2016 revision of the Kitten Paw [1] replacement
controller by Bathroom Epiphanies.

[1] http://bathroomepiphanies.com/controllers/
2016-08-22 20:34:29 +02:00
cbbrowne
90abe70586 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-22 13:16:49 -04:00
Sean Reifschneider
0418ecc073 Changes from review by @fredizzimo and @Xyverz 2016-08-22 10:26:18 -06:00
IBNobody
705c775a4a Nightly
Only major change to qmk was the addition of A0-A7 pins for the AT90USB
2016-08-21 22:05:55 -05:00
Xyverz
02f4e5b064 Merge remote-tracking branch 'upstream/master' 2016-08-21 19:02:32 -07:00
Xyverz
364b77563c Added missing key K3A to KEYMAP() macro in tv44.h 2016-08-21 18:59:10 -07:00
Jack Humbert
d8c5041f0a Merge pull request #669 from fredizzimo/windows10_build_instructions
Add instructions for Windows 10 subsystem for Linux
2016-08-21 19:13:19 -04:00
Jack Humbert
fa18e62d37 Merge pull request #668 from fredizzimo/line_endings
Enforce correct line endings
2016-08-21 19:13:06 -04:00
Jack Humbert
7c140538c7 Merge pull request #674 from kyleberry/master
Fixing Dvorak
2016-08-21 19:09:26 -04:00
dbroqua
d7b6d74842 - Inverted key Tab and Esc
- Reorganised bottom row
2016-08-21 23:20:24 +02:00
Kyle Berry
30de8663a9 Fixing Dvorak
Updating with proper Dvorak layout.
2016-08-21 14:01:43 -07:00
coderkun
81594c7883 Drop method to set Unicode input key and declare start and finish methods as “weak” instead 2016-08-21 21:02:18 +02:00
coderkun
dffdeb50b7 Add method to set Unicode input key for ISO 14755
https://github.com/jackhumbert/qmk_firmware/issues/672
2016-08-21 20:27:23 +02:00
Fred Sundvik
8f16403179 Change order of variable assignment
BUILD_DIR and TARGET was assigned too late, so the dfu-util target,
which depends on them did not work.
2016-08-21 13:53:36 +03:00
Fred Sundvik
1c69acb7d5 Add longest match to the rule-checking
This fixes cases where you have several keyboards with a common
prefix, like algernon, and algernon-master
2016-08-21 13:10:34 +03:00
Joe Wasson
c20bf83afd Add one-hand key to planck/experimental keymap. 2016-08-20 18:47:06 -07:00
Joe Wasson
66adbfcab5 Add default swap configs for a couple of boards. 2016-08-20 17:46:53 -07:00
Joe Wasson
8090f6b499 Improve one-hand support by adding more actions and tap keys. 2016-08-20 17:46:53 -07:00
Joe Wasson
dd37860160 Add one-hand support.
This adds an action, `ACTION_SWAP_HANDS`, that swaps the the keys on the keyboard across a keymap-defined hemisphere in order to support one-hand typing without requiring a separate one-handed layer. See updated `doc/keymap.md` for more information.
2016-08-20 17:46:53 -07:00
IBNobody
4807feec8a In Progress Merge 2016-08-20 14:49:16 -05:00
Olivier
b5172e3afa Rename file following upstream folder rename. 2016-08-20 18:19:03 +02:00
Fred Sundvik
2a5bdd81d4 Add warning about line endings 2016-08-20 19:11:22 +03:00
Olivier
009ab77d3e Merge https://github.com/jackhumbert/qmk_firmware 2016-08-20 18:07:02 +02:00
Fred Sundvik
704cbd1d2b Add instructions for Windows 10 subsystem for Linux
Also simplify the linux instructions
2016-08-20 19:02:19 +03:00
IBNobody
5febdb0a3c Initial Commmit 2016-08-20 10:26:36 -05:00
Jack Humbert
a3f726174c Merge pull request #665 from linsomniac/keymap_jafo
Adding jafo layout.
2016-08-20 11:04:54 -04:00
Jack Humbert
a592c9dcf4 Merge pull request #658 from Xyverz/master
Got rid of all the kludge in my ErgoDox keymap.
2016-08-20 11:04:02 -04:00
Jack Humbert
7cef0f56e9 Merge pull request #630 from nrrkeene/master
The Ordinary Layout is the unsurprising layout
2016-08-20 11:01:22 -04:00
Fred Sundvik
fd2f957a1a Normalize line endings 2016-08-20 17:59:18 +03:00
Fred Sundvik
f0fd840a57 Add .gitattributes to ensure correct line endings
It also ensures that make files and shell script are checked out
with lf endings, for compability with the Windows 10 bash
2016-08-20 17:27:51 +03:00
IBNobody
462e516ad9 Merge 2016-08-20 08:34:42 -05:00
IBNobody
9e3a550840 Merge 2016-08-20 08:31:24 -05:00
IBNobody
2dfe13ac6d fixed color detection routine in makefile 2016-08-20 08:28:30 -05:00
IBNobody
e1590abea9 fixed color detection routine in makefile 2016-08-20 08:28:30 -05:00
IBNobody
6bd9235fe3 Merge 2016-08-20 08:16:06 -05:00
Fred Sundvik
b26ded3ab1 Comment the Makefile
Also move some messages to message.mk
2016-08-20 14:53:29 +03:00
Fred Sundvik
48f8ab1ae2 Fix the clean target
It now properly cleans all the outputs
2016-08-20 12:44:04 +03:00
Xyverz
70d4ea7904 Merge remote-tracking branch 'upstream/master' 2016-08-19 22:50:55 -07:00
Xyverz
e4984f65de Changed the Ergodox keymap to use the KEYMAP() macro, updated readme.md. 2016-08-19 22:45:20 -07:00
Xyverz
aff792545d Changed my keymap to match normal keymaps. 2016-08-19 22:30:34 -07:00
IBNobody
dd553d460e fixed color detection routine in makefile 2016-08-19 23:53:22 -05:00
Nicholas Keene
6a9a6b9477 The Ordinary Layout is boring because all the keys are where you expect them to be 2016-08-19 23:44:08 -05:00
IBNobody
23617779b4 Merge https://github.com/IBNobody/qmk_firmware 2016-08-19 23:39:35 -05:00
Nicholas Keene
8f78ba1f73 The Ordinary Layout is boring because all the keys are where you expect them to be 2016-08-19 23:38:13 -05:00
IBNobody
fdaae7ec88 fixed color detection routine in makefile 2016-08-19 23:37:54 -05:00
Sean Reifschneider
d98e5ddf30 Tweaks after review. 2016-08-19 21:50:04 -06:00
Sean Reifschneider
9e03517ae5 Restructuring of the ergodox README. 2016-08-19 21:47:00 -06:00
Sean Reifschneider
a25480b3b5 Bringing over changes from default map. 2016-08-19 20:55:50 -06:00
Fred Sundvik
da226e6126 Update keyboard readme files with new makefile instructions 2016-08-20 03:56:48 +03:00
Fred Sundvik
b4c75569b0 Update readme with new instructions for make 2016-08-20 03:56:47 +03:00
Fred Sundvik
e1243339ca Add diffutils to travis.yml and install_dependencies
It has been required for a while now, and now actually checked in
the makefiles. Before, if you didn't have it installed it would
just recompile everything.

The readme hasn't been updated to reflect this, I think we need
to go through that separately, and see what's really needed. Or
just instruct people to run the batch scripts.
2016-08-20 03:56:46 +03:00
Fred Sundvik
ab4d7adbb9 Fix the template for the Makefile/rules.mk split 2016-08-20 03:56:45 +03:00
Fred Sundvik
f29730da36 Better format for non-silent output 2016-08-20 03:56:44 +03:00
Fred Sundvik
03e31ef8b9 Continue on error 2016-08-20 03:56:43 +03:00
Fred Sundvik
3442e216dc Move bootloader_defs include to build_keyboard
Also fix it for subprojects
2016-08-20 03:56:42 +03:00
Fred Sundvik
9028a412ea Add output specific config file 2016-08-20 03:56:41 +03:00
Fred Sundvik
33fbd3be36 Output specific include paths 2016-08-20 03:56:40 +03:00
Fred Sundvik
3aac4e95c9 More general system for generating several outputs 2016-08-20 03:56:39 +03:00
Fred Sundvik
87bf34a5d3 Pass the target to submake 2016-08-20 03:56:38 +03:00
Fred Sundvik
d924eb591e Fix variable name clash with builtin
This caused the submake to be called several times, messing up the
build.
2016-08-20 03:56:37 +03:00
Fred Sundvik
8732265928 Options for silent compilation
A single keyboard is always by default compiled in verbose mode.
While multiple keyboards are compiled in silent mode. This can be
overriden by the silent variable from the command line
2016-08-20 03:56:36 +03:00
Fred Sundvik
e4c842de02 Don't run builtin rules for submake
To speed up the compilation
2016-08-20 03:56:35 +03:00
Fred Sundvik
881bde8258 Fix running make in parallel 2016-08-20 03:56:34 +03:00
Fred Sundvik
dd8c1a7659 Don't add VERSION as a define
To avoid full recompilation when the git commit hash changes.
2016-08-20 03:56:33 +03:00
Fred Sundvik
60c6e79ecb Move git submodule check and version generation to main Makefile 2016-08-20 03:56:32 +03:00
Fred Sundvik
cc2df445ab Remove unneded code from tmk_core/rules.mk 2016-08-20 03:56:31 +03:00
Fred Sundvik
67b294ca66 Actual compilation 2016-08-20 03:56:30 +03:00
Fred Sundvik
db5c3b74fb Add color output 2016-08-20 03:56:29 +03:00
Fred Sundvik
0dd629a990 Fix running make from various subfolders 2016-08-20 03:56:28 +03:00
Fred Sundvik
a04bb3a3ba Fixed the shortcut targets 2016-08-20 03:56:27 +03:00
Fred Sundvik
3fa6625869 Proper default goals when inside keyboard fodlers 2016-08-20 03:56:26 +03:00
Fred Sundvik
459ddaceda Add backwards compability with makefile variables 2016-08-20 03:56:25 +03:00
Fred Sundvik
4f20061f66 Proper handling for running make from a subproject or keymap dir 2016-08-20 03:56:24 +03:00
Fred Sundvik
051017c312 Split subproject make files into Makefile and rules.mk 2016-08-20 03:56:23 +03:00
Fred Sundvik
c83af54513 Support for running from keyboard directory 2016-08-20 03:56:21 +03:00
Fred Sundvik
1ad5578d11 Print error when building non-existing keyboard 2016-08-20 03:56:20 +03:00
Fred Sundvik
a6d3500024 Print error message when trying to build non-existing keymap 2016-08-20 03:56:20 +03:00
Fred Sundvik
2dd9c1edcd Proper parsing of keymaps inside subprojects 2016-08-20 03:56:19 +03:00
Fred Sundvik
44441de8ca Split keyboard makefiles into rules and Makefile 2016-08-20 03:56:08 +03:00
Fred Sundvik
0d5caead5a Add default subproject parsing 2016-08-20 03:24:40 +03:00
Fred Sundvik
091fab5103 Slight rearrange of the Makefile for easier readability 2016-08-20 03:24:40 +03:00
Fred Sundvik
286b3b8057 Slight refactoring to remove some verbosity 2016-08-20 03:24:40 +03:00
Fred Sundvik
1df6498721 Subproject parsing
Does not handle keyboards without subprojects correctly yet.
2016-08-20 03:24:40 +03:00
Fred Sundvik
9ee6d4a23d Proper looping for allkb and allkm 2016-08-20 03:24:40 +03:00
Fred Sundvik
dfe510d5b8 Refactor common rule list parsing into own function 2016-08-20 03:24:40 +03:00
Fred Sundvik
9b02e66ce0 Add keymap parsing 2016-08-20 03:24:40 +03:00
Fred Sundvik
f97ae2b199 Rule parsing to match kebyoards 2016-08-20 03:24:40 +03:00
Fred Sundvik
e6e675335d First version of rule parsing
Only handles allkb at the moment.
2016-08-20 03:24:40 +03:00
Fred Sundvik
86706de036 Parsing of makefile variables from starting dir 2016-08-20 03:24:40 +03:00
Jack Humbert
a3a312f8f4 Merge pull request #662 from toneman77/iso_satan
Satan Cleanup
2016-08-19 17:55:54 -04:00
Jack Humbert
47b670bced Merge pull request #663 from tomb0y/kc60_workman_dead
Add the workman-dead layout for kc60
2016-08-19 17:54:12 -04:00
Sean Reifschneider
30c63b1495 Noting the change directory. 2016-08-19 14:52:05 -06:00
Sean Reifschneider
b918aa6bab Adding submodule note. 2016-08-19 14:49:29 -06:00
Sean Reifschneider
50531068b3 Adding jafo layout. 2016-08-19 14:42:41 -06:00
Sean Reifschneider
32216066e7 Adding nicer Infinity build instructions. 2016-08-19 14:36:41 -06:00
zs
a1da23d827 Add the workman-dead layout for kc60 2016-08-19 21:59:08 +02:00
dbroqua
b9a284352e - Moved Insert/Del in Esc layer 2016-08-19 21:10:07 +02:00
dbroqua
11aa19a626 - Updated lower and raise layer 2016-08-19 21:00:24 +02:00
Jack Humbert
7bb9d7f0f9 Merge pull request #660 from toneman77/amj60
new keyboard: AMJ60
2016-08-19 11:19:52 -04:00
dbroqua
c6e733afce - Added readme file and layout preview 2016-08-19 14:17:07 +02:00
dbroqua
b4f23b146f - Moved Home/End/PgUp/PgDn on arrow keys 2016-08-19 14:01:37 +02:00
Toni
bc0bd11430 forgot media keys 2016-08-19 10:24:48 +02:00
Toni
225c73ed30 Merge remote-tracking branch 'origin/master' into amj60
merge with upstream
2016-08-19 09:49:56 +02:00
dbroqua
31120ed166 - Moved Brite function on esc to avoid conflict with ctrl key. 2016-08-19 09:39:25 +02:00
dbroqua
578b7e969e - Updated dbroqua layout for planck keyboard 2016-08-19 09:19:55 +02:00
Xyverz
ed1291bfbd Added compatibility for the Infinity ErgoDox to my Ergodox keymap.
Updated readme.md to reflect this change.
2016-08-18 22:43:31 -07:00
Jack Humbert
2c59f71090 Merge pull request #655 from Dbroqua/patch-1
Added dbroqua layout for planck keyboard
2016-08-18 19:25:36 -04:00
Jack Humbert
05728cad68 Merge pull request #656 from Vifon/dynamic_macros
Improve the dynamic macro documentation
2016-08-18 19:23:53 -04:00
Wojciech Siewierski
ea7115534a Improve the dynamic macro documentation 2016-08-19 00:18:45 +02:00
Damien
a5e6da7aa8 Added dbroqua layout for planck keyboard 2016-08-18 22:25:13 +02:00
Jack Humbert
6c359cabbf Merge pull request #652 from iFreilicht/master
Added S60-X keyboard
2016-08-18 10:34:22 -04:00
Jack Humbert
ca7fa07bc1 Merge pull request #651 from algernon/f/register16
Add a register/unregister_code16 pair of functions
2016-08-18 10:32:16 -04:00
Jack Humbert
8f32595820 Merge pull request #650 from Xyverz/master
Minor changes to keymaps and other files
2016-08-18 10:31:17 -04:00
Jack Humbert
6e1b89fdc8 Merge pull request #654 from algernon/h/planck-circuit-tap-dance-fix
planck/circuit: Update after the latest tap-dance change
2016-08-18 10:04:02 -04:00
Toni
21dc8381d1 made a correct default KEYMAP. moved the old one to KEYMAP_ANSI
fixed all layouts that were referencing KEYMAP to KEYMAP_ANSI
whitespace prettyfying
2016-08-18 15:57:17 +02:00
Toni
fe90653886 smyll typo fixed 2016-08-18 15:32:06 +02:00
Toni
0e86c85241 amj60 variant of the readme 2016-08-18 15:30:52 +02:00
Toni
0edf7c7cad first attempt at documentation for the amj60 board 2016-08-18 15:22:34 +02:00
Gergely Nagy
0d9d4b8658 planck/circuit: Update after the latest tap-dance change
Fixes #653.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-18 13:22:16 +02:00
Toni
068e76bbf0 uniform whitespace 2016-08-18 13:10:02 +02:00
Toni
387bd772e1 initial commit for the AMJ60 PCB 2016-08-18 13:06:16 +02:00
Felix Uhl
dbfb27326b Added info to docs 2016-08-18 12:15:10 +02:00
Felix Uhl
ed6ecff292 Merge pull request #1 from jackhumbert/master
Merging from base Repo
2016-08-18 12:02:31 +02:00
Felix Uhl
73f13c8f26 Bugfixes 2016-08-18 11:56:44 +02:00
Felix Uhl
a72dc6da70 Final link fix 2016-08-18 11:45:56 +02:00
Felix Uhl
406ae1a2eb More link fixing 2016-08-18 11:43:32 +02:00
Felix Uhl
aa71ebfbba Fixed links again
Note to self: check before commiting.
2016-08-18 11:41:52 +02:00
Felix Uhl
d34c0a2fc1 Fixed dead link 2016-08-18 11:40:05 +02:00
Felix Uhl
738151d12a Minor documentation changes 2016-08-18 11:38:04 +02:00
Gergely Nagy
0d28787c5c Add a register/unregister_code16 pair of functions
These functions register not only the 8bit keycode, but the modifiers
too. It doesn't handle the full range of the upper 8bits, just the mods,
but that's a good start.

Changed the tap-dance pair functions to use these, so one can do:

  `ACTION_TAP_DANCE_DOUBLE (KC_COLN, KC_SCLN)`

...and that will do the right thing.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-18 11:29:53 +02:00
Felix Uhl
c5f13e5836 Fixed links again 2016-08-18 11:16:10 +02:00
Felix Uhl
a865995595 Fixed pictures and links 2016-08-18 11:11:42 +02:00
Felix Uhl
2618260b34 Documentation overhaul. 2016-08-18 10:37:32 +02:00
Toni
864e26f439 cleanup, readability , shift swap in ISO_SPLIT_RSHIFT 2016-08-18 10:06:13 +02:00
Felix Uhl
07924511f3 Small changes, renamed keymap
Added MicMute
Revived all dead keys
Removed OS Shift
2016-08-18 10:01:46 +02:00
Toni
64ecb15310 corrected the split rshift key to reality
fixed my keymap in the process to adjust to that
2016-08-18 09:56:11 +02:00
Xyverz
aa37a57e0f One last change to the readme. 2016-08-18 00:38:25 -07:00
Xyverz
eb81978ecb One last formatting change 2016-08-18 00:35:32 -07:00
Xyverz
118ad691c4 more formatting changes 2016-08-18 00:34:22 -07:00
Xyverz
4dd641a128 Hopefully this fixes the layout diagrams. 2016-08-18 00:27:54 -07:00
Xyverz
035290b7d8 Added a readme, tidied up comments in the keymap. 2016-08-18 00:22:56 -07:00
Xyverz
47beb763e8 Returned RAISE and LOWER buttons to their original functions - too many inopportune ENTER inputs. :-( 2016-08-18 00:05:24 -07:00
Xyverz
67227e4c71 Merge branch 'master' of https://github.com/Xyverz/qmk_firmware 2016-08-17 23:55:58 -07:00
Xyverz
385b827c85 Merge remote-tracking branch 'upstream/master'
this merge is necessary,
2016-08-17 23:53:56 -07:00
Jack Humbert
8144ce8852 Merge pull request #648 from Vifon/dynamic_macros
Implement the dynamic macros that are recorded in runtime
2016-08-17 21:17:30 -04:00
Jack Humbert
39a95897bc Merge pull request #647 from Vifon/process_record_nocache-fix
Fix the process_record_nocache function
2016-08-17 21:16:49 -04:00
Jack Humbert
f4f80a0e3a Merge pull request #645 from algernon/f/tap-dance/buffering
tap-dance rework
2016-08-17 21:15:29 -04:00
Jack Humbert
1442a882d4 Merge pull request #640 from toneman77/iso_satan
heavily modified spacefn layout for iso boards using the satan PCB
2016-08-17 21:11:59 -04:00
Jack Humbert
f59b61332f Merge pull request #638 from premek/master
Split layout for planck
2016-08-17 21:11:02 -04:00
Jack Humbert
034bf67f2a Merge pull request #637 from mld2443/master
Circuit keymap for Planck keyboard
2016-08-17 21:10:33 -04:00
Wojciech Siewierski
950755edaf Add the dynamic macros documentation to the readme 2016-08-18 01:40:54 +02:00
Wojciech Siewierski
39e8e61258 Implement the dynamic macros that are recorded in runtime 2016-08-18 01:37:13 +02:00
Wojciech Siewierski
644c8c7927 Fix the process_record_nocache function
This function relies on checking the disable_action_cache static
variable before accessing the layer cache.
2016-08-18 01:34:05 +02:00
Xyverz
ef95c10c66 Update readme.md 2016-08-17 14:55:01 -07:00
Xyverz
e3486caf87 Create readme.md 2016-08-17 14:54:05 -07:00
Nigel Lundsten
3e1d142018 trailing slash 2016-08-17 14:01:27 -07:00
Nigel Lundsten
6bafafc18d fix ergodox link (again?)
/ergodox/ez  is a broken link, seems like the ez stuff is at /ergodox
2016-08-17 14:00:47 -07:00
Toni
c024de4a87 wring keypress for german iso fixed. prettified 2016-08-17 15:33:14 +02:00
Gergely Nagy
29f64d7a93 tap-dance: Major rework, to make it more reliable
This reworks how the tap-dance feature works: instead of one global
state, we have a state for each tap-dance key, so we can cancel them
when another tap-dance key is in flight. This fixes #527.

Since we have a state for each key, we can avoid situation where a keyup
would mess with our global state. This fixes #563.

And while here, we also make sure to fire events only once, and this
fixes #574.

There is one breaking change, though: tap-dance debugging support was
removed, because dumping the whole state would increase the firmware
size too much. Any keymap that made use of this, will have to be
updated (but there's no such keymap in the repo).

Also, there's a nice trick used in this rework: we need to iterate
through tap_dance_actions in a few places, to check for timeouts, and so
on. For this, we'd need to know the size of the array. We can't discover
that at compile-time, because tap-dance gets compiled separately. We'd
like to avoid having to terminate the list with a sentinel value,
because that would require updates to all keymaps that use the feature.
So, we keep track of the highest tap-dance code seen so far, and iterate
until that index.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-17 15:05:58 +02:00
Gergely Nagy
d78058cc75 tap-dance: Include action_tapping.h for TAPPING_TERM
Include `action_tapping.h`, so the keymap does not have to define a
`TAPPING_TERM` for us, and we can use the default.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-17 10:28:08 +02:00
Joshua T
bc1059bc1e Minor changes to Extend and Number layers.
Brought QWERTY layer in line with normal layer. Removed Undo function, as it interfered with Shift. Moved Tab and Shift-Tab, and added Insert.
2016-08-16 21:55:33 -05:00
Toni
8e142d8cbe no more warning thanks to iFreilicht's tip with undef 2016-08-16 17:35:03 +02:00
Toni
deedd2f408 in accordance to keymap_makefile_example.mk 2016-08-16 16:44:12 +02:00
Toni
03a24eb86a minor grammer fixes 2016-08-16 16:35:57 +02:00
Toni
b1ac91a040 big cleanup and minor refactoring. thanks iFreilicht. 2016-08-16 16:32:42 +02:00
Přemek Vyhnal
2ebfdcac40 Update readme.md 2016-08-16 01:07:34 +02:00
premek
a75d4bd593 premek split layout 2016-08-16 00:50:35 +02:00
premek
5abb05ca40 premek split layout 2016-08-16 00:44:58 +02:00
Matt
f5ed3e5155 Added my custom Planck layout called Circuit.
* Layout has image and readme, as well as documentation in the code.
2016-08-15 17:26:01 -05:00
Felix Uhl
faa3fd48ae Minor changes to felix keymap 2016-08-15 22:57:26 +02:00
Toni
68005ce602 grammar 2016-08-15 21:47:07 +02:00
Toni
7e1be3ae7c reference to reddit post and Terry Mathews 2016-08-15 21:44:20 +02:00
Toni
b8cbf7c9c0 script now waits for the user to press the button 2016-08-15 21:18:25 +02:00
Toni
396b59f256 readme now with picture 2016-08-15 21:12:49 +02:00
Toni
94ff9c9fa5 more prettyness 2016-08-15 21:04:11 +02:00
Toni
14de76ea80 Update readme.md
typo
2016-08-15 21:02:40 +02:00
Toni
5cf5e27dcd Update readme.md
attempt to prettify the table
2016-08-15 21:02:07 +02:00
Toni
77f3efbef6 more information. first steps in markdown 2016-08-15 20:59:50 +02:00
Toni
ca4968bc44 readme.md added 2016-08-15 20:46:38 +02:00
Toni
f89aec98ae removed my personal stuff 2016-08-15 20:32:45 +02:00
Toni
5ecebc3a66 Merge remote-tracking branch 'origin/master' into iso_split_rshift
no idea what is merged
2016-08-15 19:48:53 +02:00
cbbrowne
3cb1dce622 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-15 12:59:27 -04:00
Jack Humbert
cc7acfb416 Merge pull request #635 from algernon/f/ucis
Symbolic Unicode Input System
2016-08-15 12:19:01 -04:00
cbbrowne
8a14952e44 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-15 11:19:24 -04:00
Xyverz
5c5c3e626b Adding KC_BSPC to the LT() macro for LOWER resulted in a backspace stroke being sent if the LOWER key was used too quickly.
Switching back to original LOWER macro, but keeping the new RAISE macro.
2016-08-15 06:57:24 -07:00
Xyverz
8e2d69d5a2 Adding u/treasuredfrog's hack to use LT() with the RAISE and LOWER macros. 2016-08-15 06:28:39 -07:00
Gergely Nagy
e8845f0daf process_unicode: Introduce a slight delay
When entering unicode codes, use some delay, so the OS has time to
process the information. This is not needed on all systems, but some
seem to require it.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15 10:08:53 +02:00
Gergely Nagy
43d08629cf process_unicode: Replace register_hex32
It turns out that register_hex32 did not work reliably, and some systems
only allow 7 chars after the unicode magic sequence, while others allow
8. To remedy the situation, store the codes as strings, and type those
in instead of doing bit shifting magic.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15 10:08:53 +02:00
Gergely Nagy
a312cbf712 process_unicode: Use uint32_t for UCIS purposes
Use a single uint32_t to store the unicode of a symbol, instead of an
array of uint16_ts.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15 10:08:53 +02:00
Gergely Nagy
234dd276cf process_unicode: Make the startup overridable
Extract out the part of `qk_ucis_start` that inputs the placeholder
symbol, and make it weak, so it can be overridden.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15 10:08:53 +02:00
Gergely Nagy
857aa5bef6 process_unicode: Call process_ucis() automatically
If UCIS is enabled, call process_ucis() automatically from
process_record_quantum().

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15 10:08:53 +02:00
Gergely Nagy
0b6861827f process_unicode: Handle too long UCIS symbol names
If the symbol name being entered is longer than the max, stop recording
it, and stop processing keycodes apart from the ones that can delete,
finish or cancel the sequence.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15 10:08:53 +02:00
Gergely Nagy
fa06a16360 process_unicode: Add a way to enter unicode symbols by name
The purpose of this change is to allow keymaps to specify a dictionary
of unicode symbol name to code mappings, and let the person at the
keyboard enter unicode symbols by name.

This is done by having a way to trigger unicode symbol input mode, when
all keys are cached until Esc, Enter or Space are pressed. Once that
happens, we try to look up the symbol from our lookup table. If found,
we erase back, and type the unicode magic in to get that symbol. If not
found, we still erase back, start unicode input mode, and replay what
the user typed in.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15 10:08:53 +02:00
Gergely Nagy
63e5782d2c process_unicode: Small refactor & linux fix
This moves the unicode input start / end sequences into their own
functions, so keymaps and other functionality can build on it too.

At the same time, it changes how the Linux variant works, to match
reality: CTRL+SHIFT must be unregistered too, and we close the thing
with a Space instead.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15 10:08:53 +02:00
Xyverz
4f0bcfe724 Merge remote-tracking branch 'upstream/master' 2016-08-14 20:27:41 -07:00
Xyverz
055b887b0d Setup the bottom-row modifiers to be mac-like in their arrangement. 2016-08-14 20:25:52 -07:00
Daniel
8019a074cf minor tweaks to numpad and media layer 2016-08-14 20:43:05 -05:00
Jack Humbert
bc8976d277 Merge pull request #634 from di0ib/master
minorca handwired
2016-08-14 21:03:15 -04:00
di0ib
959c48e146 moved to handwired folder 2016-08-14 14:13:58 -10:00
di0ib
288bf4faa3 Merge branch 'master' of https://github.com/di0ib/qmk_firmware 2016-08-14 13:20:00 -10:00
di0ib
df56d742b1 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-08-14 13:19:20 -10:00
Jack Humbert
4865e6f81f Merge pull request #631 from jacwib/master
Jacwib's keymap
2016-08-14 18:50:22 -04:00
Jack Humbert
cdd7301b8b Merge pull request #627 from algernon/h/set-unicode-input-mode
process_unicode: Fix set_unicode_input_mode()
2016-08-14 18:50:03 -04:00
Jack Humbert
8bb299255b Merge pull request #624 from Xyverz/master
Added Ergodox Layout with persistent layers, Atreus corrections
2016-08-14 18:49:28 -04:00
di0ib
503ec7f9f6 Updated readme
Added link to Minorca/Sebright blog.
2016-08-14 11:15:46 -10:00
di0ib
f58a67c991 cleanup readme 2016-08-14 11:10:12 -10:00
di0ib
1eaa685872 Correct data pin to D5 2016-08-14 11:08:15 -10:00
di0ib
65060ad000 Fix list 2016-08-14 11:07:35 -10:00
di0ib
dde9ee572c clean up readnme 2016-08-14 11:06:46 -10:00
di0ib
b4218a2b3e Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-08-14 10:58:22 -10:00
di0ib
c6c2c3fc14 minorca
minirca with RGB keymap
2016-08-14 10:58:10 -10:00
Toni
5705a40320 increased readability with a defince 2016-08-14 20:06:47 +02:00
Felix Uhl
df01d502d4 Ported all keymaps
Old TMK keymaps were ported and confirmed to compile
All keymaps compiled and added to zip-archive.
Documentation was updated.
2016-08-14 13:07:03 +02:00
Felix Uhl
6774f300da Update readme.md 2016-08-14 11:48:59 +02:00
Felix Uhl
ec75c04663 Fixed links to keymap sources 2016-08-14 11:44:43 +02:00
jacwib
54e37fd2d1 Fix bug 2016-08-14 11:08:01 +02:00
jacwib
6ba27ea318 Remove pointless comments 2016-08-14 11:02:46 +02:00
jacwib
e4e13ddc54 Update readme.md 2016-08-14 10:57:47 +02:00
jacwib
26f4a0cf04 Update Makefile 2016-08-14 10:49:26 +02:00
jacwib
62004866b3 Update config.h 2016-08-14 10:49:06 +02:00
jacwib
cf91aa416a Update keymap.c 2016-08-14 10:48:52 +02:00
jacwib
1ab78110bd Update readme.md 2016-08-14 10:48:22 +02:00
jacwib
880486bd24 Jack's keymap. 2016-08-14 10:46:40 +02:00
Xyverz
049343e523 Added my own layout to the Phantom. 2016-08-14 00:33:11 -07:00
Xyverz
97fca1efff Fixing a mixup. Tidying up the keymap. 2016-08-13 20:14:27 -07:00
Xyverz
1920c290a4 Merge remote-tracking branch 'upstream/master' 2016-08-13 19:51:49 -07:00
Erez Zukerman
6323f3d1e7 Merge pull request #623 from algernon/ergodox-ez/algernon
ergodox: Update my keymap to v1.5
2016-08-13 20:12:15 -04:00
Erez Zukerman
5ef3f05215 Merge pull request #626 from tenderlove/readme-link
fix link to ErgoDox EZ
2016-08-13 20:11:34 -04:00
Felix Uhl
911cc68325 Added all original S60-X keymaps
All keymaps that were included in VinnyCordeiro's repository were ported to QMK.
Main Readme was copied over from VC's repo, slightly altered.
Main Makefile was updated to reflect VC's original configuration.
Small changes in felix keymap.
2016-08-14 00:41:09 +02:00
Nicholas Keene
ba7f2b1d3f The Ordinary Layout is the unsurprising layout 2016-08-13 15:53:03 -05:00
Ian Sterling
e87506767c Removal of old minivan44 folder. 2016-08-13 10:44:42 -07:00
Ian Sterling
2d0f585e42 Renamed minivan44 to tv44 in all occurrences per wishes of
Jack and Evan.
2016-08-13 10:36:08 -07:00
Gergely Nagy
8bdf745909 process_unicode: Fix set_unicode_input_mode()
In the header, this was defined as `set_unicode_input_mode`, but the
implementation had `set_unicode_mode` for a name. Changed the
implementation to match the header.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-13 10:37:01 +02:00
Toni
e0aa216905 Merge remote-tracking branch 'origin/master' into iso_split_rshift
update from Upstream
2016-08-13 09:24:24 +02:00
Ian Sterling
c07fe96581 Adding the MiniVan44 aka TheVan 44 by u/evangs to the repo.
Initial Commit.
2016-08-12 23:45:40 -07:00
Xyverz
3bae791372 Update keymap.c 2016-08-12 22:30:01 -07:00
Ian Sterling
458607ee5e Corrections to the Atreus Makefile and updates to my keymap 2016-08-12 22:26:30 -07:00
Aaron Patterson
477f1ad0c8 fix link to ErgoDox EZ
This just fixes the readme link to the ErgoDox EZ directory
2016-08-12 19:15:53 -07:00
Jack Humbert
098951905d forces all ergodox keymaps to be ez on qmk.fm (were infinity) 2016-08-12 20:45:43 -04:00
Daniel
558bf2ed07 completes first-pass at media layer 2016-08-12 19:27:44 -05:00
Callum Oakley
993d72b11f added a lock screen key 2016-08-12 21:05:52 +01:00
Daniel
916d12f9fa completes first-pass at symbol layer 2016-08-12 14:37:13 -05:00
Jack Humbert
11d4784d3a Merge pull request #622 from shelaf/master
My HHKB layout
2016-08-12 14:43:04 -04:00
Jack Humbert
c6ec63eac3 Merge pull request #621 from shelaf/fix
Fix typo
2016-08-12 14:42:42 -04:00
Toni
cafa528b88 only aesthetics 2016-08-12 19:14:48 +02:00
cbbrowne
c21a882ec9 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-12 11:17:34 -04:00
Gergely Nagy
b98d47abe5 ergodox: Update my keymap to v1.5
Major changes include:

* The **1HAND** layer has been removed.
* A `Delete` key is now available on the right thumb cluster.
* The **ADORE** layer received a major update, see the updated layout
  image.
* It is now possible to enable automatic logging for the **ADORE**
  layer, by setting the `ADORE_AUTOLOG` makefile variable to `yes` when
  compiling the keymap. It is off by default.
* The `~` key and the `Media Next/Prev` key have been swapped on
  the **base** layer.
* On the **ARROW** layer, `Backspace` has been replaced by `Enter`.
* There is some experimental support for entering Unicode symbols.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-12 16:36:07 +02:00
shela
11e23fd3fd add new line 2016-08-12 21:45:36 +09:00
shela
c9272fee08 add new line 2016-08-12 21:33:32 +09:00
shela
1c8d64d3b3 add my keymap 2016-08-12 21:24:43 +09:00
shela
e692ebf86a fix typo 2016-08-12 20:38:26 +09:00
Jack Humbert
97cd7afc32 Merge pull request #618 from denolfe/master
Add denolfe satan keymap
2016-08-11 21:34:34 -04:00
Jack Humbert
a0ed238c12 Merge pull request #617 from iFreilicht/patch-2
Fix dead link in keycode.txt
2016-08-11 21:34:09 -04:00
Jack Humbert
bad77bf4e9 Merge pull request #614 from iFreilicht/patch-1
Update TMK_README.md
2016-08-11 21:33:55 -04:00
Jack Humbert
a087a207f1 Merge pull request #608 from finleye/master
Adds keymap based on Kinesis advantage
2016-08-11 21:32:32 -04:00
Felix Uhl
4725942dc7 Small changes
Enabled Bootmagic and ISO layouts on felix keymap
Added unused pins
2016-08-11 21:49:10 +02:00
Xyverz
71e1bb2e1c Delete keymap.c
Not ready to submit this one just yet.
2016-08-11 11:04:57 -07:00
Xyverz
eeade4af84 Update keymap.c
Changed right-hand F-key layout in order to add KC_PLUS to _L2.
2016-08-11 09:48:23 -07:00
Xyverz
d1f418d85d Update Makefile
Corrected spelling of "ATREUS" in all locations. (ATRUES -> ATREUS)
2016-08-11 09:46:05 -07:00
Elliot DeNolf
56f86413e0 Add denolfe satan keymap 2016-08-11 09:54:02 -06:00
Felix Uhl
38766dbc82 Minor changes to keymaps
Clarified extra keys
Made ISO-keys non-dead in default layout
Added non-US backslash on felix layout
2016-08-11 09:36:37 +02:00
Felix Uhl
a41a53baad Fix dead link in keycode.txt
The link to the HID Usage tables was outdated and dead, so I replaced it.
2016-08-11 09:13:38 +02:00
Daniel
fe7b46579c completes first-pass at base layer 2016-08-10 19:37:59 -05:00
Felix Uhl
aa1a90af66 Added S60-X to keyboards with two layouts. 2016-08-11 00:54:55 +02:00
cbbrowne
83913f9197 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-10 11:36:37 -04:00
Felix Uhl
6975135f54 updated reference
Build setup links to main readme now.
2016-08-10 11:40:51 +02:00
Ian Sterling
0d60355241 Added braces using LSFT(KC_LBRC) and LSFT(KC_RBRC) since the normal RBCR and LBCR didn't work for me. 2016-08-09 23:56:21 -07:00
Ian Sterling
6f700f1eb0 Adding my own layouts for the Phantom and Ergodox. My Ergodox layout adds persistent layers
based on the Planck and Preonic setup. The layout arrays are pulled directly from the
ergodox/ez/ez.h keymap definition starting at line 81.
2016-08-09 23:49:27 -07:00
Joshua T
6a24bac9c4 Moved Shift keys to Z and ?
Instead of using a thumb shift, I was given the idea of using the pinky keys as dual-role keys that also send the Shift keypress.

This gives me a Shift key on each hand again, but it will make me learn to Shift with opposite hands after all.
2016-08-09 22:16:21 -05:00
Joshua T
82223aec6c Created build.bat
Helper batch file for building the keyboard.
2016-08-09 21:34:55 -05:00
Joshua T
ec67d32bd4 Merged branch master into master 2016-08-09 21:30:31 -05:00
Joshua T
ea8638b944 Changed left thumb back to Ctrl/Alt
Removed Shift from left thumb
2016-08-09 21:29:22 -05:00
Joshua T
fdb8a4cd65 Created keymap-specific config.h 2016-08-09 21:28:31 -05:00
Joshua T
5d78311612 Reverted Ergodox config.h
I will create a separate config.h for my keymap
2016-08-09 21:27:38 -05:00
Joshua T
daa83afe2b Created keymap local config.h file
Reverted the Atreus config.h to default and added one specific to this keymap.
2016-08-09 20:51:22 -05:00
Callum Oakley
2a160bbbe3 Update keymap. (#616)
* changed order of bottom row of symbol layer to ease acess to brackets

* updated readme.md to reflect keymap changes
2016-08-09 12:33:07 -04:00
Xyverz
ca3278cc35 adds Xyverz's keymaps (#615)
* Adding my own keymaps to the following keyboards:

Planck, Preonic, Atreus, Ergodox

* Delete dvorak.png

Not reflective of my layout.

* Delete readme.md

file cleanup, removing file that doesn't apply to my layout.

* Delete old_keymap.c

file cleanup

* Delete README.md

file clean up.

* Delete README.md

file cleanup

* Delete keymap.c

file cleanup

* Changed behavior of _DVORAK layout's KC_RSFT to SFT_T(KC_ENT) for flexibility's sake.
Updated the rest of the keymap to reflect the current (as of 19:37 on 08 Aug 2018) default
layout and default makefile.
2016-08-09 12:31:56 -04:00
cbbrowne
6a618fd44d Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-09 12:10:48 -04:00
Callum Oakley
49fbcb3e7c Merge remote-tracking branch 'upstream/master' 2016-08-09 12:39:59 +01:00
Callum Oakley
725dd7328f updated readme.md to reflect keymap changes 2016-08-09 11:09:52 +01:00
Callum Oakley
5f37b11f2c changed order of bottom row of symbol layer to ease acess to brackets 2016-08-09 11:03:12 +01:00
Ian Sterling
78a6fae453 Merge branch 'master' of https://github.com/Xyverz/qmk_firmware 2016-08-08 19:40:41 -07:00
Ian Sterling
39dd3d674c Changed behavior of _DVORAK layout's KC_RSFT to SFT_T(KC_ENT) for flexibility's sake.
Updated the rest of the keymap to reflect the current (as of 19:37 on 08 Aug 2018) default
layout and default makefile.
2016-08-08 19:35:13 -07:00
Xyverz
c062b6a13d Delete keymap.c
file cleanup
2016-08-08 18:52:48 -07:00
Xyverz
4e030313f7 Delete README.md
file cleanup
2016-08-08 18:51:34 -07:00
Xyverz
1493836762 Delete README.md
file clean up.
2016-08-08 18:48:36 -07:00
Xyverz
c060afe68e Delete old_keymap.c
file cleanup
2016-08-08 18:47:13 -07:00
Xyverz
bf93fa510b Delete readme.md
file cleanup, removing file that doesn't apply to my layout.
2016-08-08 18:46:34 -07:00
Xyverz
de1db144d0 Delete dvorak.png
Not reflective of my layout.
2016-08-08 18:44:09 -07:00
Ian Sterling
552399df4c Adding my own keymaps to the following keyboards:
Planck, Preonic, Atreus, Ergodox
2016-08-08 18:34:08 -07:00
skullY
adad05c3fb Add support for the cluecard 2016-08-08 16:11:54 -07:00
skullY
d561f63bd1 Clueboard: Fix the title in keymaps/skully/readme.md 2016-08-08 13:46:55 -07:00
skullY
e85bf50e1a Clueboard: Add some readme.md files and do some minor cleanup. 2016-08-08 13:43:24 -07:00
Corey Finley
76cd7c5444 Adds keymap based on Kinesis advantage 2016-08-08 15:17:10 -04:00
cbbrowne
6ce0195e24 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-08 13:50:01 -04:00
Jack Humbert
55ca218634 Merge pull request #613 from di0ib/master
Convert hex to bin
2016-08-08 12:10:49 -04:00
Jack Humbert
1f4277fe6b Merge pull request #612 from kuel/master
Added file for software implementation of Russian, gave keymap_cyrillic.h a better name.
2016-08-08 12:09:48 -04:00
Jack Humbert
a3167bdc09 Merge pull request #609 from sethbc/fix_clueboard_orphaned_files
remove orphaned clueboard files
2016-08-08 12:09:14 -04:00
Jack Humbert
9866c23bff Merge pull request #607 from jeebak/jeebak
Update Jeebak's keymap, w/ KC_COPY, etc. workaround.
2016-08-08 12:07:39 -04:00
Felix Uhl
f41c2e6863 Update TMK_README.md
updated link to non-existent build.md file
2016-08-08 17:53:08 +02:00
di0ib
8fab141a02 Convert hex to bin
For flashing via alternative methods like LUFA MassStorage bootloader.
2016-08-07 20:58:59 -10:00
di0ib
a36b2a0756 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-08-07 20:20:16 -10:00
Joshua T
6df31120a1 Merge remote-tracking branch 'upstream/master' 2016-08-07 23:28:59 -05:00
JeeBak Kim
ef83f1d04f Tap for ;, hold for GUI, tap for ", hold for Alt 2016-08-07 12:44:45 -07:00
JeeBak Kim
3d86e5b7a7 Tap for Tab, hold for Hyper 2016-08-07 11:05:10 -07:00
kuel
2a0121a786 Removed unnecessary comment 2016-08-07 11:07:38 -05:00
kuel
c5ee24a6c3 Add keymap_russian.h, a software implementation of Russian
rename keymap_cyrillic.h to keymap_unicode_cyrillic.h
changed CY_RUBLE and CY_NUMERO to CY_RUBL and CY_NMRO in
 keymap_unicode_cyrillic.h
2016-08-07 11:01:12 -05:00
Toni
b5fcb5a744 new variant with the curly braces on tab layer 2016-08-07 11:37:28 +02:00
JeeBak Kim
68e287013b Add Tab Close, New, Reopen macros to TouchCursor layer 2016-08-06 13:36:46 -07:00
JeeBak Kim
bda4d15ffa Add Virtual Desktop Switching macros to TouchCursor layer 2016-08-06 12:00:37 -07:00
JeeBak Kim
57218827cb Move KC_ACL1 button 2016-08-06 00:08:59 -07:00
JeeBak Kim
96ed96f924 Fix KC_ALT_TAB/KC_CMD_TAB logic 2016-08-06 00:01:12 -07:00
JeeBak Kim
6483a2a04b Mouse layer updates
- Rename to MOUSECURSOR
- Use "d" key, since middle finger is stronger than pinky
- Shuffle some mouse buttons around
2016-08-05 23:32:00 -07:00
Seth Chandler
545925fb1b remove orphaned clueboard files 2016-08-05 23:19:12 -04:00
Toni
dcf672223f enterfn / enterisctrl on hold added 2016-08-05 20:53:58 +02:00
JeeBak Kim
36abd4463f Revert swapp of AltTab/CmdTab in readme. Layout did not change 2016-08-04 14:26:03 -07:00
cbbrowne
64e051652b Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-08-04 11:10:41 -04:00
JeeBak Kim
7db1d7902b Workaround for KC_COPY, etc. based on current AG_NORM/AG_SWAP setting 2016-08-03 21:21:28 -07:00
JeeBak Kim
9a4e72fa71 Add CmdSlash to TouchCursor Layer 2016-08-03 19:19:18 -07:00
JeeBak Kim
16f4a31784 Number layer tweaks 2016-08-03 19:19:18 -07:00
JeeBak Kim
fdd89e7f0d Add Alt-Tab, Cmd-Tab, and Ctl-Tab Macros to TouchCursor layer, swap LGUI and LSFT 2016-08-03 19:19:18 -07:00
JeeBak Kim
abc3cd4d72 Update readme.md 2016-08-03 19:19:18 -07:00
kuel
8d8709fb79 Merge pull request #1 from jackhumbert/master
Update
2016-08-03 11:24:29 -05:00
Jack Humbert
213cb2c243 Merge pull request #605 from kuel/master
Add keymap_cyrillic.h, lots of cyrillic characters
2016-08-03 00:11:02 -04:00
Jack Humbert
301e46c529 Merge pull request #599 from Depariel/master
Fixed compiling errors and updated keymaps for infinity_chibios
2016-08-03 00:10:41 -04:00
Jack Humbert
e62c588921 Merge pull request #561 from 0xdec/patch-1
Clean up formatting & tiny refactor in rgblight.c
2016-08-03 00:08:02 -04:00
Stephen Christie
bf2b260429 Merge branch 'master' of http://github.com/jackhumbert/qmk_firmware 2016-08-02 22:51:30 -04:00
Stephen Christie
0acb394ac4 Moved Insert, PrtSc, Pause to Adjust; Corner enter 2016-08-02 22:32:27 -04:00
kuel
c70b276b1b Add keymap_cyrillic.h, lots of cyrillic characters 2016-08-02 14:09:01 -05:00
Erez Zukerman
79a9e04706 Merge pull request #592 from sethbc/ez-sethbc
Ez sethbc
2016-08-02 08:03:09 -04:00
Erez Zukerman
8c52327aa6 Merge pull request #593 from J3RN/master
Updated the J3RN ErgoDox keymap
2016-08-02 08:02:27 -04:00
Erez Zukerman
6eab4ecd7e Merge pull request #600 from adiabatic/master
zweihander-osx: add left-hand-thumb tab key
2016-08-02 08:01:56 -04:00
Jack Humbert
461f973c2b correct file name 2016-08-01 23:46:50 -04:00
Jack Humbert
25f138c0d3 fix mkdir cmd 2016-08-01 22:59:25 -04:00
Erez Zukerman
56aa51664e Updates ErgoDox readme 2016-08-01 21:15:01 -04:00
Stephen Christie
76ef37e72d Corrected Qwerty/Fn Mismatch. 2016-08-01 18:54:25 -04:00
Jack Humbert
f422f442cf automatically forward ergodox ez 2016-08-01 14:51:26 -04:00
Jack Humbert
bb249fb239 Merge pull request #597 from Jiehong/feature/basic_keyboard_doc
feature: add basic doc about how a keyboard works on USB
2016-08-01 02:25:20 -04:00
Jack Humbert
d5baa4773d Merge pull request #596 from fredizzimo/rid_of_quick
Fix the makefile dependencies and remove quick targets
2016-08-01 02:24:53 -04:00
Depariel
a675c1aee0 added support for Infinity 1.1a (4th drop) matrix, no LED support yet 2016-07-31 23:12:16 -04:00
Stephen Christie
4b74c90cdb Added quote key. 2016-07-31 22:39:25 -04:00
Nathan Sharfi
07a631bd5a Thumb ⌫ into ⇥, numpad & into :, yank home/end
Also: add (back?) in the light-shine disabler
2016-07-31 14:21:08 -07:00
Nathan Sharfi
c2419ffecc Remove /keyboard/* files 2016-07-31 14:10:03 -07:00
Nathan Sharfi
d889648d53 Merge branch 'master' of github.com:jackhumbert/qmk_firmware
# Conflicts:
#	keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
#	keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex
2016-07-31 14:02:25 -07:00
Depariel
0c4177e077 fixed typo in hasu/keymap.c 2016-07-31 15:16:55 -04:00
Depariel
ceecb7c819 fixed compiling bugs in infinity_chibios.h, updated keymaps, added depariel keymap 2016-07-31 14:25:25 -04:00
Jiehong Ma
d9bef1658e feature: add basic doc about how a keyboard works on USB
This comes from the discussion on #520
2016-07-31 16:49:31 +02:00
Fred Sundvik
fda29be3e7 Travis calls the normal build target, instead of quick 2016-07-31 14:18:51 +03:00
Fred Sundvik
87a1a095d0 Fix the readme for the removed quick target 2016-07-31 14:18:00 +03:00
Fred Sundvik
a0dc622199 Remove the quick commands and add proper clean 2016-07-31 14:17:32 +03:00
Fred Sundvik
d5a947b324 Also depend on the gcc version 2016-07-31 13:49:04 +03:00
Fred Sundvik
97817a773e Generate version information to version.h
So that only the files that really needs a version are recompiled.
2016-07-31 13:42:05 +03:00
Fred Sundvik
84bfb19554 Force compilation and linking when options changes 2016-07-31 13:42:04 +03:00
Fred Sundvik
e58e9af2ab More reliable .d file generation
Also generated inside the obj dir instead of separate deps folder.
2016-07-31 13:36:30 +03:00
Fred Sundvik
abdf42573a Put the build output inside the root/.build directory 2016-07-31 13:25:49 +03:00
Fred Sundvik
f11a0275a8 Enable vpath seraching for source files only 2016-07-31 13:24:25 +03:00
Fred Sundvik
79067662c8 Better "include guards" for the makefiles
Checking for ARCH is not good enough, since some subprojects define it.
Ergodox Ez for example. The leads to running the make from
keyboards/ergodox/ez failing. The keyboard makefile will not be included
in that case, and therefore not the CUSTOM_MATRIX either.

Furthermore the output files are read from many different .build
directories, so it doesn't fail deterministically. For example on the
Travis CI the compilation passes, since there's no outdated objects that
needs recompilation.
2016-07-31 13:22:18 +03:00
Jack Humbert
b25dbc484d Merge pull request #594 from jeebak/jeebak
Jeebak's keymap for planck
2016-07-31 01:30:31 -04:00
Jack Humbert
7e000ff476 Merge pull request #590 from jeebak/in-like-flint
Add IN_LIKE_FLINT song
2016-07-31 01:30:09 -04:00
JeeBak Kim
230d313dbd Update readme.md 2016-07-30 17:30:10 -07:00
JeeBak Kim
a2ed7ce795 Add additional shortcut keymaps to TOUCHCURSOR layer 2016-07-30 12:52:51 -07:00
JeeBak Kim
db8ad8204e Add additional maps for [, and ], to LOWER 2016-07-30 12:52:51 -07:00
JeeBak Kim
b54a58859f Make RAISE layer an all numbers/arithmatic layer 2016-07-30 12:52:51 -07:00
JeeBak Kim
216efe6c99 Move reset to a less accessible location 2016-07-30 12:52:51 -07:00
JeeBak Kim
e0dd9d6af0 Add -, +, and . to RAISE 2016-07-30 12:52:51 -07:00
JeeBak Kim
6a2c681ae9 Change calls from persistant_default_layer_set() to default_layer_set() 2016-07-30 12:52:51 -07:00
JeeBak Kim
eb9416a67d PrintScreen and RGUI replace BACKLIT and Ctrl. Move BACKLIT to LOWER/RAISE layers 2016-07-30 12:52:46 -07:00
Jonathan Arnett
1876e100be Updated readme with recent changes 2016-07-30 14:37:54 -04:00
Jack Humbert
17bd4ac062 Updated my keymap 2016-07-30 14:07:27 -04:00
JeeBak Kim
984fc2b630 Media keys for all the "regular" layers 2016-07-30 10:13:50 -07:00
JeeBak Kim
7209310d1b Add mouse layer, and remove default arrow keys (touchcursor only, now) 2016-07-30 10:13:50 -07:00
JeeBak Kim
a6bae9fb07 Add numbers to _RAISE 2016-07-30 10:13:49 -07:00
JeeBak Kim
6baf77d8fb Move _RAISE symbols to _LOWER 2016-07-30 10:13:49 -07:00
JeeBak Kim
ad7e4af45c Tap for Enter, hold for Shift 2016-07-30 10:13:49 -07:00
JeeBak Kim
b5d77440b6 Add personalized TouchCursor layer 2016-07-30 10:13:49 -07:00
JeeBak Kim
eb1a06d3ae Tap for Esc, hold for Control 2016-07-30 10:13:44 -07:00
Seth Chandler
a6ec5fa74a rebase 2016-07-30 10:46:13 -04:00
Seth Chandler
694567f799 update makefile 2016-07-30 10:42:57 -04:00
Seth Chandler
a01d703a58 initial commit of sethbc keymap 2016-07-30 10:42:57 -04:00
Joshua T
cf795a6f93 Moved PREVENT_STUCK_MODIFIERS to config.h 2016-07-30 09:19:17 -05:00
Joshua T
0064f1f84c Moved my Ergodox keymap to match upstream changes 2016-07-30 08:46:01 -05:00
Joshua T
e9a501d447 Merge remote-tracking branch 'upstream/master' 2016-07-30 08:41:22 -05:00
JeeBak Kim
7d0345ef25 Add IN_LIKE_FLINT song 2016-07-30 01:52:33 -07:00
JeeBak Kim
f78a994355 Add "jeebak" keymap folder as a copy of the "default" folder 2016-07-30 00:16:04 -07:00
Jack Humbert
7775f3e4b3 Merge pull request #589 from algernon/h/ergodox_ez-vs-ergodox
Update some obsolete references
2016-07-30 02:53:29 -04:00
Gergely Nagy
8a9bf1f165 Update some obsolete references
Some links were still pointing to `/keyboards/ergodox_ez`, while the
directory is `/keyboards/erdogox` now.

Not all references have been updated, and some of the text here and
there may need updating to mention the ErgoDox Infinity too, but that's
out of the scope for this quick fix.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-30 08:37:30 +02:00
Stephen Christie
5f2d3f27de Moved CapsLk, ScrollLk, and NumLk to Adjust layer 2016-07-30 00:56:43 -04:00
Jack Humbert
0b7557b60f Merge pull request #587 from fredizzimo/documentation_quick_fix
Fix the quick aliases documentation section
2016-07-29 22:33:29 -04:00
Jack Humbert
063983639d Merge pull request #503 from fredizzimo/ergodox_subproject
Add both Ergodox EZ and Infinity Ergodox as sub-projects of Ergodox
2016-07-29 22:32:27 -04:00
Fred Sundvik
7d55951050 Fix the quick aliases documentation section
Also move all keyboard customization documentation under the
"Going Beyond the keycodes" heading.
2016-07-29 22:47:35 +03:00
Fred Sundvik
566c79554e Small fix for infinity include guard 2016-07-29 21:09:42 +03:00
Fred Sundvik
6e8a5aca9d Fix typo in the readme. 2016-07-29 21:09:41 +03:00
Fred Sundvik
401dd09077 A couple of more Ergodox readme fixes 2016-07-29 21:09:40 +03:00
Fred Sundvik
c65da1f208 Unify the ErgoDox EZ and Infinity documentation 2016-07-29 21:09:39 +03:00
Fred Sundvik
44cefcb40a Refer to the right path in the readme 2016-07-29 21:09:38 +03:00
Fred Sundvik
349f189e83 Move Ergodox readme from ez subfolder to parent 2016-07-29 21:09:37 +03:00
Fred Sundvik
ad416fb1a3 Include the main Makefile before including Ergodox infinity drivers 2016-07-29 21:09:37 +03:00
Fred Sundvik
592ef7c6f0 Move Infinity Ergodox drivers to subproject, and fix makefile 2016-07-29 21:09:36 +03:00
Fred Sundvik
37052a53f1 Remove the Infinity Ergodox default keymap 2016-07-29 21:09:35 +03:00
Fred Sundvik
650298cec3 Cleanup the townk_osx config.h and make files 2016-07-29 21:09:34 +03:00
Fred Sundvik
fd7f20b029 Rename supercoder config_user to config.h
Also fixup the include path of parent config
2016-07-29 21:09:33 +03:00
Fred Sundvik
426e9ecc6f Fix config.h include guards 2016-07-29 21:09:32 +03:00
Fred Sundvik
a6577b272e Define weak matrix user function for Infinity Ergodox
So that a few keyboards, which don't use them, links properly.
2016-07-29 21:09:31 +03:00
Fred Sundvik
bf1c865c7a Speed up ChibiOS keymap compilation
By sharing the external library object files between the whole
keyboard, instead of re-compiling them for each keymap.
2016-07-29 21:09:30 +03:00
Fred Sundvik
1641743b9d Change _delay_ms to wait_ms in algernon keymap 2016-07-29 21:09:21 +03:00
Fred Sundvik
e7670f6d19 Move some of the Ergodox config settings to shared 2016-07-29 20:48:22 +03:00
Fred Sundvik
e0f28c2b10 Add empty led control functions to Infinity Ergodox
So that most keymaps compiles and links
2016-07-29 20:48:21 +03:00
Fred Sundvik
e01b4c3fd9 Most ergodox keymaps compiles on Infinity
There are linker errors due to missing led funcitonality though
2016-07-29 20:48:20 +03:00
Fred Sundvik
b0376687f4 All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
Fred Sundvik
9af995c59b Initial structure for Ergodox as subprojects
Only the EZ default keymaps compiles at the moment though.
2016-07-29 20:48:04 +03:00
Erez Zukerman
30003d48f9 Merge pull request #584 from algernon/ergodox-ez/algernon
ergodox_ez: Upgrade my keymap to v1.4
2016-07-29 08:11:37 -04:00
Erez Zukerman
64e76f6ed3 Merge pull request #583 from coderkun/coderkun_neo2
Ergodox EZ: update keymap “coderkun_neo2”
2016-07-29 08:10:46 -04:00
Erez Zukerman
3c235b4bf9 Merge pull request #580 from MatsLanGoH/patch-1
Fixed a typo
2016-07-29 08:09:05 -04:00
Gergely Nagy
f82437f08e ergodox_ez: Upgrade my keymap to v1.4
* When toggling the key logging on or off, the LEDs will do a little dance.
* The keylogger is now optional, but enabled by default. Use `KEYLOGGER_ENABLE=no` on the `make` command line to disable it.
* The `TAB`/`ARRW` key was turned into a tap-dance key, allowing one to toggle the **ARROW** layer on by double-tapping, and as such, avoid the need to hold the key.
* The `-`/`_` key was turned into a tap-dance key too.
* There is now a way to travel time with the keyboard, toggle the feature on by hitting `LEAD t`.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-29 12:24:33 +02:00
coderkun
3ace37271b disable sleep LED 2016-07-29 11:28:37 +02:00
coderkun
70755d6614 complete labels for modifiers in keymap schema 2016-07-29 11:07:50 +02:00
coderkun
08239aadea use Ergodox EZ’s third LED for “scroll lock” 2016-07-29 11:07:50 +02:00
coderkun
61fbb47eb6 fix grave (GRV) and acute (ACUT) accents 2016-07-29 11:06:18 +02:00
Stephen Christie
c018743729 Connected all layers through Adjust layer 2016-07-29 00:08:48 -04:00
Matthias
e8f7038959 Fixed a typo
Fixed a typo in line 738 'void martix_init' to 'void matrix_init'
2016-07-29 10:02:59 +09:00
Jack Humbert
7559edc6e6 Merge pull request #578 from 0xdec/master
0xdec Preonic keymap
2016-07-28 16:34:34 -04:00
Jack Humbert
9b5edbdce9 Merge pull request #577 from hot-leaf-juice/master
Pull request to include my keymap if you want it!
2016-07-28 16:34:16 -04:00
Jack Humbert
16f8426fe2 Merge pull request #573 from algernon/f/make-all-stop-on-error
tmk_core/rules.mk: Make PRINT_ERROR* stop on error
2016-07-28 16:32:37 -04:00
Jordi Orlando
3b39910cb9 Create 0xdec Preonic keymap
An ergonomically optimized Colemak keymap for the grid-layout Preonic
2016-07-28 14:36:20 -05:00
Stephen Christie
6567fa1ebe Fixed Function keys (Impossible layout) 2016-07-28 14:57:45 -04:00
Stephen Christie
a4e5a4d566 Modified Qwerty, created Qwerty with numbers 2016-07-28 13:49:25 -04:00
Christopher Browne
2d59c97ec1 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-07-28 12:42:21 -04:00
Jack Humbert
80667e898a Merge pull request #572 from algernon/f/tap-dance-debug
tap-dance: Add some debugging support
2016-07-28 12:28:30 -04:00
Jack Humbert
e5ac0e8369 Merge pull request #570 from sethbc/fix_bone2planck_build
Fix bone2planck build
2016-07-28 12:27:46 -04:00
Jack Humbert
a6d279a343 Merge pull request #569 from sethbc/fix_stanleylai_warnings
kill warnings filling up travis buildlog
2016-07-28 12:27:11 -04:00
Jack Humbert
36df9fd3fd Merge pull request #568 from sethbc/fix-colemak-osx-pc-no
update NO_AMP to NO_AMPR
2016-07-28 12:26:43 -04:00
Jack Humbert
f96a2a74ea Merge pull request #566 from SmackleFunky/master
Allow toggling out of plover layer
2016-07-28 12:26:11 -04:00
Jack Humbert
9171ce1d17 Merge pull request #559 from Talljoe/fix-compiler-warning
Fix compiler warning when PREVENT_STUCK_MODIFIERS is enabled.
2016-07-28 12:24:42 -04:00
Jack Humbert
8d98f37fbb Merge pull request #564 from mazinbokhari/master
Move to keyboards
2016-07-28 12:24:03 -04:00
Callum Oakley
1eeceee355 Added readme.md for custom layout. 2016-07-28 12:15:55 +01:00
Toni
684d869fab added homerow-ish brackets 2016-07-28 11:58:53 +02:00
Callum Oakley
9822b9f743 Added custom keymap.
Added custom keymap.
2016-07-27 21:18:19 +01:00
Toni
6ff8a81520 first try ar adding the parenthesis mess for german iso 2016-07-27 21:11:55 +02:00
Toni
9f21c0aa06 Merge remote-tracking branch 'origin/master' into iso_split_rshift
merge with master
2016-07-27 20:35:13 +02:00
Christopher Browne
911d0a040e Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-07-27 12:57:54 -04:00
Gergely Nagy
b21e8b97ac tap-dance: Add some debugging support
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-27 14:49:19 +02:00
Gergely Nagy
dd77054790 tmk_core/rules.mk: Make PRINT_ERROR* stop on error
Instead of `&& false`, explicitly `exit 1` to make the rules using these macros
fail. This fixes #571, and likely breaks Travis badly.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-27 08:53:05 +02:00
Seth Chandler
180a3da44d remove unnecessary includes 2016-07-27 02:32:15 -04:00
Seth Chandler
95ef3f864e fix numerous errors in bone2planck keymap 2016-07-27 02:30:17 -04:00
Seth Chandler
368d0bdf68 kill warnings filling up travis buildlog 2016-07-27 02:21:09 -04:00
Seth Chandler
13bb3a7379 update NO_AMP to NO_AMPR 2016-07-27 02:06:19 -04:00
SmackleFunky
fdd07991de Allow toggling out of plover layer 2016-07-27 04:44:24 +00:00
Mazin Bokhari
3fd1c9d72b Move to keyboards 2016-07-26 22:43:04 -05:00
Stephen Christie
57952949fe General table cleanup. 2016-07-26 23:33:21 -04:00
Erez Zukerman
93f366fa7d Merge pull request #562 from michaelklos/doc
Added Tap Dance Example
2016-07-26 21:54:10 -04:00
Erez Zukerman
685c8ba64c Merge pull request #533 from mazinbokhari/master
Add my layout optimized for working in emacs, vim, command line, etc.
2016-07-26 21:52:39 -04:00
Michael Klos
7e69de061a Added Tap Dance Example
Added (simple) Tap Dance example implementation steps.
2016-07-26 18:41:35 -04:00
Stephen Christie
ff8136b883 Modified Plover layer for Impossible's home position. 2016-07-26 17:39:21 -04:00
Stephen Christie
465cf08c63 Removed unused layers (keeping QWERTY for later/reference) 2016-07-26 17:37:56 -04:00
Stephen Christie
fb2a7d787a Removed unused layers (left QWERTY for later use/reference) 2016-07-26 17:29:19 -04:00
Christopher Browne
2a349e96bb Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-07-26 16:35:44 -04:00
Jordi Orlando
ea2d2f5d58 Simplify HSV->RGB calculation
De-dupe repeated code
2016-07-26 15:31:22 -05:00
Jack Humbert
b66131eeb5 disable midi by default 2016-07-26 15:59:26 -04:00
Jordi Orlando
899c88cd8b Increament -> increment 2016-07-26 14:46:30 -05:00
Jordi Orlando
3a860c4bc2 Clean up rgblight.c
Fix formatting issues, clarify comments
2016-07-26 14:43:45 -05:00
Jason Janse van Rensburg
a41a7a9100 include base config.h instead of copying it 2016-07-26 16:19:34 +02:00
Jason Janse van Rensburg
8244fa40cc added config.h, and missing Ins of filpped navigation layer 2016-07-26 14:58:17 +02:00
Joshua T
5607b716ba Merge remote-tracking branch 'upstream/master' 2016-07-26 01:49:24 -05:00
Joshua T
876a6bdd4c Modified Atreus extend and Ergodox.
Atreus: Removed home row Shift. It's under the thumb anyway. Also replaced dual modifier keys with macro keys (cut, copy, paste, undo).

Ergodox: Made Colemak the default layer instead of Dvorak. Also began the process of bringing it in line with the Atreus layout I've been working on.
2016-07-26 01:44:57 -05:00
erlo muvman
26510e6de8 Delete default.png 2016-07-25 20:16:11 -05:00
erlo muvman
3779e1988e Delete default_highres.png 2016-07-25 20:16:07 -05:00
erlo muvman
97efac0f1c Update readme.md 2016-07-25 20:14:19 -05:00
erlo muvman
6e2d7ebd80 Update readme.md 2016-07-25 20:12:48 -05:00
erlo muvman
048e8b7849 Update readme.md 2016-07-25 20:06:58 -05:00
Jason Janse van Rensburg
27d27b179b Merged branch master into bone2planck 2016-07-25 22:55:28 +02:00
Jason Janse van Rensburg
3e462fac31 added missing F keys in flipped layer 2016-07-25 20:21:32 +02:00
Christopher Browne
17a7570e08 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-07-25 12:55:46 -04:00
Jack Humbert
f9aadd17e8 Merge pull request #558 from lindhe/master
Fix misspelled command in Norwegian helper
2016-07-25 11:16:54 -04:00
Andreas Lindhé
283ebbe142 Change Nordic ampersand code to match the English
Changed from "NO_AMP" to "NO_AMPR" since the KC one is "KC_AMPR"
2016-07-25 12:50:56 +02:00
Toni
5e2e8c89e8 Merge remote-tracking branch 'origin/master' into iso_split_rshift
whatever
2016-07-25 12:49:38 +02:00
Andreas Lindhé
b6fa762234 Fix misspelled command in Norwegian helper 2016-07-25 11:29:54 +02:00
Jack Humbert
8b94e26d7c Fixes midi functionality 2016-07-24 22:07:43 -04:00
Jack Humbert
4aa7d2e206 Merge pull request #554 from robertdale/music-recording-documentation
Added music recording/playing doc
2016-07-24 21:58:23 -04:00
Jack Humbert
24bd931962 Merge pull request #552 from robertdale/music-play-fix
Fixes issue #551 - ensure there's a recording to play before playing
2016-07-24 21:58:01 -04:00
Jack Humbert
41f15d8c34 Merge pull request #550 from Darthabel/fix_bepo
Fix some errors in bepo mapping
2016-07-24 21:57:38 -04:00
Jack Humbert
46f84157ce Merge pull request #549 from locksmithdon/patch-1
Added LEADER_EXTERNS() call to readme.
2016-07-24 21:57:15 -04:00
Jack Humbert
670327f1d0 Merge pull request #548 from CommandLineDesign/CMD-Preonic
CMD keymap for Preonic
2016-07-24 21:56:50 -04:00
Jack Humbert
384d9cd6bb Merge pull request #546 from sethbc/satan-cleanup
Satan cleanup
2016-07-24 21:56:23 -04:00
Erez Zukerman
4885225159 Merge pull request #534 from willwm/teckinesis
Teckinesis for ErgoDox EZ
2016-07-24 18:04:59 -07:00
Will Wolff-Myren
f4cb84c940 Remove images, per @ezuk request. =) 2016-07-24 14:33:17 -07:00
Joe Wasson
f9956c2aac Fix compiler warning when PREVENT_STUCK_MODIFIERS is enabled. 2016-07-24 12:56:28 -07:00
Erez Zukerman
1e944a4991 Merge pull request #542 from algernon/f/hold-the-dance
Tap-dance: support for holding keys
2016-07-24 11:36:05 -07:00
Erez Zukerman
36f2e22283 Merge pull request #535 from algernon/ergodox-ez/algernon
ergodox_ez: Update my keymap to v1.3
2016-07-24 11:34:33 -07:00
Robert Dale
812007a241 added music recording/playing doc 2016-07-24 10:23:33 -04:00
Robert Dale
3ea738e450 ensure there's a recording to play before playing; also enables the LGUI button to play a tone 2016-07-24 10:00:39 -04:00
Vivien Alger
7b4d30ee50 Fix some errors in bepo mapping 2016-07-24 10:57:49 +02:00
Don Smith
a4034b75c0 Added LEADER_EXTERNS() call.
This seems to be needed in most cases.
2016-07-24 19:18:22 +12:00
Jonathan Lucas
e6a41e43aa Updated Readme 2016-07-23 21:26:01 -07:00
commandlinedesign
c826bcfc39 Did a derp and forgot to set Trans on Arrow layer 2016-07-23 21:08:00 -07:00
commandlinedesign
4480a74a4b Arrow key fn layer shouldnt overwrite Ctrl key. Better Print Screen position 2016-07-23 21:02:23 -07:00
Jason Janse van Rensburg
4e0bf283f6 added readme 2016-07-24 05:11:07 +02:00
commandlinedesign
c1fb82623c Tested, resolved Mouse issue, resolved numpad issue 2016-07-23 20:02:45 -07:00
Jason Janse van Rensburg
1bfd57e234 moved insert 2016-07-24 05:02:06 +02:00
Jason Janse van Rensburg
58f092cf87 moved ctrl 2016-07-24 04:52:35 +02:00
commandlinedesign
fbafb9449e Resolved errors 2016-07-23 19:32:02 -07:00
Jason Janse van Rensburg
34bce6f206 fixed stupid errors 2016-07-24 04:08:40 +02:00
Jason Janse van Rensburg
62d4ce73ec Merged branch master into bone2planck 2016-07-24 04:08:01 +02:00
Jonathan Lucas
9b3708f830 Init Readme
This needs a better description.
2016-07-23 18:52:52 -07:00
Jonathan Lucas
3c7075011b Create Makefile
This is untested, use caution.
2016-07-23 18:50:41 -07:00
Jonathan Lucas
b5761df57b Create CMD-Preonic Keymap
This is very Alpha-Mode, and has not been tested or even Made yet.
2016-07-23 18:47:36 -07:00
Jonathan Lucas
4059a16118 Merge pull request #1 from jackhumbert/master
Update from parent
2016-07-23 18:44:01 -07:00
Seth Chandler
75f0922711 fix typo in readme and satan.h 2016-07-23 20:55:20 -04:00
Seth Chandler
ef533be2d6 cleanup default layout 2016-07-23 20:52:27 -04:00
Seth Chandler
81fe3d962c update sethbc keymap 2016-07-23 20:37:41 -04:00
Stephen Christie
723857bf8a Table for Fn
layer.
2016-07-22 18:19:07 -04:00
Stephen Christie
a39eaa7fb5 Switched to natural arrows, put ENTER on middle Fn, swapped Shift and CTRL. 2016-07-22 17:46:23 -04:00
Toni
5631f1436c converted funtions to QMK aliases 2016-07-22 11:17:57 +02:00
Gergely Nagy
13385f5691 readme.md: Update the tap dance docs
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-22 09:10:17 +02:00
Gergely Nagy
fca34e2ad6 readme.md: algernon is strictly lowercase
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-22 09:10:17 +02:00
Gergely Nagy
44e16ffc80 tap-dance: Code cleanup
Removes a number of duplicated code, by passing actions around instead
of keycodes, so the various dance action functions do not have to look
up the action, but the caller does that for them.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-22 09:10:17 +02:00
Gergely Nagy
ce8cc9219f tap-dance: Support user_data for the callbacks
Refactored the code a little, so all callbacks now receive a `user_data`
pointer, which can be anything. As an example, the key pairs from
`ACTION_TAP_DANCE_DOUBLE` now use this, and custom, built-in functions.

This makes it easier to extend the tap dance functionality, and also
simplifies the code a little.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-22 09:10:17 +02:00
Gergely Nagy
70e42489de tap-dance: Support for holding keys
With this change, tap dance will now store the pressed state of the
tap-dance key, and allow one to make an action sooner, while the key is
still held, and only unregister when the key is released.

The registration must happen in the `on_dance_finished` callback, while
unregistering goes to `on_reset`. The surrounding code makes sure not to
call either multiple times.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-22 09:10:17 +02:00
Toni
197244e47f more cosmetic changes (whitespace) 2016-07-22 08:14:08 +02:00
Toni
c1f014b1dd purely cosmetic changes 2016-07-22 08:13:06 +02:00
Jack Humbert
8e1d96983a Merge pull request #543 from VoodaGod/bone2planck
updated bone2planck
2016-07-21 21:29:54 -04:00
Jack Humbert
66fed12c98 Merge pull request #541 from milestogo/master
initial kinisis advantage build
2016-07-21 21:05:06 -04:00
Jack Humbert
5249b4451c Merge pull request #540 from replicaJunction/feature-atreus-keymapFunction
Adjusted Atreus KEYMAP() function.
2016-07-21 21:04:45 -04:00
Jack Humbert
fb0bba5981 Merge pull request #538 from robertdale/preonic-map-correction
Preonic: Corrected the ascii layout to match the coded layout
2016-07-21 21:03:56 -04:00
Jack Humbert
d5d2eb8b5a Merge pull request #536 from pvinis/debug-doc
add some debugging doc, after i found out how to print debug messages
2016-07-21 21:02:37 -04:00
Jack Humbert
6f9f9baff4 Merge pull request #530 from sethbc/master
Misc. fixes from sethbc
2016-07-21 21:01:35 -04:00
Jack Humbert
26546f995f Merge pull request #529 from CommandLineDesign/CMD60-newKeymap
Added CMD60 keymap
2016-07-21 20:59:02 -04:00
Jack Humbert
2bed835a33 Merge pull request #525 from edasque/master
Added Docker as a simple way to build firmwares
2016-07-21 20:58:39 -04:00
Jack Humbert
fc9f128648 Merge pull request #522 from exiva/extrakey-macfix
Fix OS X Recognizing keyboard as Mouse/Tablet
2016-07-21 20:57:54 -04:00
Jack Humbert
fc4ab870f5 Merge pull request #521 from exiva/makefile-wait
Make DFU wait for bootloader
2016-07-21 20:57:32 -04:00
Jack Humbert
940358ed4f Merge pull request #518 from jakllsch/upstream
keymap_extras changes
2016-07-21 20:56:54 -04:00
Jack Humbert
62a6d3a6f5 Merge pull request #516 from pvinis/tap-dance-anyway
Tap dance anyway
2016-07-21 20:56:24 -04:00
Stephen Christie
eeb100f87d First draft of the 'impossible' layout. 2016-07-21 18:19:08 -04:00
milestogo
24e4e6dd18 adding traveller keyboard 2016-07-20 21:12:00 -07:00
Jason Janse van Rensburg
b0e9dbecee fixed include paths 2016-07-20 17:05:23 +02:00
Jason Janse van Rensburg
32f5b34ad2 reformat 2016-07-20 16:58:10 +02:00
Jason Janse van Rensburg
3d7244e604 updated bone2planck 2016-07-20 16:42:09 +02:00
Joshua T
15ee180f0e Created readme and added screenshots 2016-07-20 00:38:56 -05:00
milestogo
1984861338 initial kinisis advantage build 2016-07-19 22:35:38 -07:00
Joshua T
8ee9c486fd Adjusted Atreus KEYMAP() function.
This change adjusts the KEYMAP() function to provide a more visual representation of the key positions on the keyboard. Previously, keymaps have been defined directly using arrays for the Atreus keyboard. While this works, it doesn't utilize the helpful KEYMAP() function at all to allow the user to visually position the key codes for ease of editing. See the Ergodox-EZ KEYMAP() function and layouts for a great example of how this can work.

This change should not break any existing Atreus layouts. At the time of this commit, there are two existing layouts for the Atreus board, and neither use the KEYMAP() function.
2016-07-19 17:46:03 -05:00
Joshua T
2a4947b28b Modified Atreus layout to account for keymap() function 2016-07-19 17:39:15 -05:00
Joshua T
8cb2cf375b Adjusted Atreus KEYMAP() function.
This change adjusts the KEYMAP() function to provide a more visual representation of the key positions on the keyboard. Previously, keymaps have been defined directly using arrays for the Atreus keyboard. While this works, it doesn't utilize the helpful KEYMAP() function at all to allow the user to visually position the key codes for ease of editing. See the Ergodox-EZ KEYMAP() function and layouts for a great example of how this can work.

This change should not break any existing Atreus layouts. At the time of this commit, there are two existing layouts for the Atreus board, and neither use the KEYMAP() function.
2016-07-19 17:33:10 -05:00
Joshua T
377bcb00fb Added Gaming layer and removed Dvorak
Also added tap/hold functions on central keys
2016-07-19 17:01:21 -05:00
Pavlos Vinieratos
4e6a8627d8 add a couple of comments 2016-07-19 18:18:57 +02:00
Pavlos Vinieratos
d5daec2a58 on_each_tap_fn is called on tap down and tap up 2016-07-19 18:18:57 +02:00
Pavlos Vinieratos
2e815ad9a2 add link to hid_listen 2016-07-19 17:34:23 +02:00
Robert Dale
9c26498f49 added Midi On/Off; Enter is actually transparent 2016-07-19 08:43:41 -04:00
Robert Dale
47223ebee4 Corrected the ascii layout to match the coded layout 2016-07-19 08:00:03 -04:00
Toni
5cd6d607fc changed ctrl back to enter. "j" interfered with my vimming 2016-07-19 09:17:31 +02:00
Toni
1988c180e3 small cosmetic change 2016-07-19 09:16:55 +02:00
Pavlos Vinieratos
6eb21d2680 add some debugging doc, after i found out how to print debug messages 2016-07-19 00:07:50 +02:00
Pavlos Vinieratos
d8a979b6d5 add a bit of documentation 2016-07-19 00:01:11 +02:00
Pavlos Vinieratos
dda2fd6ff3 in the default case, it should be called if there is actually a tap
dance happening, and in the normal case, it should be called when the
tap down is happening.
2016-07-18 23:34:02 +02:00
Christopher Browne
82f768e6c0 Notes about changes 2016-07-18 16:07:00 -04:00
Toni
4b32a161d0 renamed keymap 2016-07-18 10:50:45 +02:00
Toni
36242d5ac5 reduced makefile size. not so much needed due to "inheritance" 2016-07-18 10:50:19 +02:00
Gergely Nagy
53eb36c085 ergodox_ez: Update my keymap to v1.3
This updates my ErgoDox EZ layout to v1.3, which has the following
noteworthy changes:

* Added support for logging keys, by pressing `LEAD d`. Also included is
  a tool to generate a **heatmap** out of the logs.
* The arrow and navigation keys were rearranged again, and now require
  an additional key being held to activate. See the **base layer** for
  an image that shows where arrows are.
* The **experimental** layer has been redone, and is now
  called **ADORE**, and as such, can be enabled by `LEAD a` now.
* Switching between Dvorak and ADORE is now persisted into EEPROM, and
  survives a reboot.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-18 08:57:30 +02:00
Will Wolff-Myren
3c4620bf81 Update readme.md
* Markdown cleanup
2016-07-17 15:08:04 -07:00
Will Wolff-Myren
8fb4074578 Update readme.md
* Updated layout images, json from Keyboard Layout Designer
* Added links to Keyboard Layout Designer templates.
* Added images of TECK, Kinesis layouts.
2016-07-17 15:04:50 -07:00
Will Wolff-Myren
ea2b1670f6 Update description comment. 2016-07-17 14:56:37 -07:00
Will Wolff-Myren
5bf40bfb36 [MEDIA]: Remove Power, Sleep, Mail, MyComp
I kept hitting these on accident while attempting to move the cursor or
mouse. =P
2016-07-17 14:19:22 -07:00
Will Wolff-Myren
ecc0fce210 [BASE]: Meh, Hyper now have symbols on both sides
Left: MEH_T(KC_BSLS),ALL_T(KC_SLSH)
Right: ALL_T(KC_LBRC),MEH_T(KC_RBRC)
2016-07-17 14:16:31 -07:00
Toni
11bf8355cf new modifier "J" is crtl 2016-07-17 23:13:49 +02:00
Will Wolff-Myren
e9453b3fdc Update Base Layer comment to match new layout. 2016-07-17 14:08:22 -07:00
Will Wolff-Myren
11f8d167ec [BASE]: KC_MINS -> KC_GRV 2016-07-17 14:07:14 -07:00
Will Wolff-Myren
e900c39669 RSpec: KC_EQL -> KC_MINS 2016-07-17 14:01:41 -07:00
Will Wolff-Myren
973ea2f917 LSpec: KC_GRV -> KC_EQL 2016-07-17 13:58:43 -07:00
Mazin Bokhari
b9102b4bfa Update readme. My layout optimized for emacs & vim 2016-07-17 15:57:23 -05:00
Mazin Bokhari
964c064123 Update readme. My layout optimized for emacs & vim 2016-07-17 15:53:42 -05:00
Will Wolff-Myren
abe8bfa3a6 Update .gitignore to include VSCode setting. 2016-07-17 13:50:36 -07:00
Mazin Bokhari
6cd2b48fed Merge branch 'master' of https://github.com/mazinbokhari/qmk_firmware 2016-07-17 15:35:05 -05:00
Mazin Bokhari
1336b0198c Add caps lock; sucks that there is no light for it... 2016-07-17 15:32:53 -05:00
Mazin Bokhari
cb25f1ad93 Remove more keys 2016-07-17 14:56:32 -05:00
Mazin Bokhari
cfa5a475d0 Move dot in symbol layer 2016-07-17 14:44:37 -05:00
Mazin Bokhari
7a5b7233f2 Move modifier kyes around 2016-07-17 14:43:21 -05:00
Mazin Bokhari
266eacc9ec Remove more unnecessary buttons 2016-07-17 14:29:37 -05:00
Mazin Bokhari
76b5dc84af Add page up/down and home/end to arrow 2016-07-17 14:11:08 -05:00
Mazin Bokhari
f83591cff0 Change visual 2016-07-17 14:02:46 -05:00
Mazin Bokhari
742d6dbdc2 Reorganize media keys 2016-07-17 13:55:10 -05:00
Mazin Bokhari
ec505d07d2 Remove unnecessary modifiers 2016-07-17 13:35:47 -05:00
Mazin Bokhari
d7b1cee2df Edit visual keymap 2016-07-17 13:19:11 -05:00
Mazin Bokhari
f76f5af853 Add arrow keys to layer 2016-07-17 13:14:04 -05:00
Mazin Bokhari
6dc5aba315 Minor changes 2016-07-17 13:09:54 -05:00
Mazin Bokhari
8c8f2f898b Add empty arrow layer, reorder some keys in media, map layer keys 2016-07-17 13:02:54 -05:00
Seth Chandler
d40d18ab1a don't believe the hex files are posted to qmk.fm 2016-07-17 10:37:45 -04:00
Toni
db7aa91e76 helper file for me to stay up-to-date with master 2016-07-17 15:10:14 +02:00
Toni
de96513ff2 changes needed for a ISO satan PCB including a split right-shift key 2016-07-17 14:57:56 +02:00
Seth Chandler
f6aeaac5b5 update more non-existent readmes for QMK.fm 2016-07-17 03:53:34 -04:00
Seth Chandler
0a2653bac8 update broken link 2016-07-17 03:38:53 -04:00
Seth Chandler
68b1affbbd update audio links 2016-07-17 03:32:02 -04:00
Seth Chandler
45414fed7b update tmk link 2016-07-17 03:28:48 -04:00
Seth Chandler
a95ab37162 update link to Vagrant docfile 2016-07-17 03:24:36 -04:00
Seth Chandler
38508180c7 update readmes in certain directories to work with qmk.fm 2016-07-17 03:24:00 -04:00
Pavlos Vinieratos
d3091faf36 change naming, and remove extraneous definition 2016-07-17 08:28:03 +02:00
Seth Chandler
6289332759 add custom makefile for sethbc keymap 2016-07-16 23:52:02 -04:00
Seth Chandler
f954223749 update makefile to default to no virtual dip switches 2016-07-16 23:51:27 -04:00
Seth Chandler
dddaebfa98 update readme images 2016-07-16 23:41:20 -04:00
Jonathan Lucas
2877b858d3 Fix erroneous character
Must have been keeb testing :)
2016-07-16 20:38:55 -07:00
Jonathan Lucas
f13f48a35e Added CMD60 keymap 2016-07-16 20:24:14 -07:00
Joshua T
0642126720 Merge branch 'master' of https://github.com/replicaJunction/qmk_firmware 2016-07-15 18:02:38 -05:00
Joshua T
243ae75256 Added default layer switch QWERTY to Colemak 2016-07-15 18:02:23 -05:00
Joshua T
c5768a5f32 Added default layer switch QWERTY to Colemak 2016-07-15 17:49:14 -05:00
Joshua T
77377e2784 Fixed a merge conflict 2016-07-15 17:44:39 -05:00
Pavlos Vinieratos
f3b56701ed add an anyway and a reset callback
when using tap dance, we have the `regular` callback that is called on
the last tap. this commit adds an `anyway` callback that is called on
every tap, and a `reset` callback that is called on reset of the tap
dance taps.
2016-07-16 00:04:12 +02:00
Pavlos Vinieratos
1a7e954f9f in case its NULL 2016-07-16 00:04:12 +02:00
Erik Dasque
aa2a79bbfa Further simplyfying the docker usage
We'll be able to change the image user name if we set up the initial repo to trigger Docker images rebuilds on hub.docker.com
2016-07-15 13:26:34 -04:00
Erik Dasque
0446263935 Adding Docker build system & documentation 2016-07-15 12:55:40 -04:00
Christopher Browne
ba0d81f270 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-07-15 11:19:52 -04:00
Travis La Marr
d48a4cf1eb Fix OS X Recognizing keyboard as Mouse/Tablet
Modified the LUFA USB HID Descriptor to change the logical/usage
minimums for System Control from 0x01 (Mouse) to 0x81 (System Power
Down), this fixes OS X recognizing the Planck as having a mouse and
tablet, even with mousekeys off.
2016-07-15 10:41:32 -04:00
Travis La Marr
0b8c448b30 Make DFU wait for bootloader
Added a loop for waiting for the keyboard to be put in bootloader mode,
rather than failing out. Makes building keymaps easier.
2016-07-15 10:28:23 -04:00
Joshua T
42843d9b62 Merge remote-tracking branch 'upstream/master' 2016-07-15 01:01:19 -05:00
Jonathan A. Kollasch
4278d88615 keymap_dvorak.h: add missing shifted keys, fix whitespace 2016-07-14 11:32:43 -05:00
Jonathan A. Kollasch
25938a09a6 extra_keymaps: use RALT() instead of 0x1400 for AltGr 2016-07-14 11:13:35 -05:00
Jonathan A. Kollasch
010dd13084 keymap_extras: add newline at end of files 2016-07-14 11:10:05 -05:00
Jack Humbert
9ecf9073b9 Merge pull request #489 from Skrymir/master
New ergodox-ez layout
2016-07-14 10:59:23 -04:00
Jack Humbert
8bbbbcddf9 Merge pull request #515 from pvinis/reset-function
extract reset keyboard into a function
2016-07-14 10:53:51 -04:00
Will Wolff-Myren
76469ebbcf Replaced ordinary-media.{png|json} with new media layout 2016-07-14 01:22:15 -07:00
Will Wolff-Myren
1b776f0f33 Replaced ordinary-symbol.{png|json} with new base layout. 2016-07-14 01:03:45 -07:00
Will Wolff-Myren
b587245430 Replaced ordinary-base.{png|json} with new base layout. 2016-07-14 00:39:01 -07:00
Will Wolff-Myren
825aead3bd Replaced readme.md with stub
(incl. reference to original layout)
2016-07-14 00:38:00 -07:00
Joshua T
92e7291ad7 Corrected merge conflict 2016-07-13 22:41:02 -05:00
Joshua T
f90d89458c Created replicaJunction keymaps. 2016-07-13 22:37:34 -05:00
Will Wolff-Myren
8f3cdea357 Created "teckinesis" keymap folder
(Based on "ordinary" keymap by Nicholas Keene)
2016-07-13 13:17:55 -07:00
Pavlos Vinieratos
a28a6e5b79 extract reset keyboard into a function
that makes it easy to call reset_keyboard() from a function in a keymap
2016-07-13 16:38:02 +02:00
Joshua Colbeck
68ceffe53e Merge pull request #2 from jackhumbert/master
Pull from upstream
2016-07-12 23:14:30 -05:00
Christopher Browne
f4fbfe6e54 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-07-12 11:57:15 -04:00
Christopher Browne
477ed703c8 I did not like Space Cadet paren; it jumps in in way too many extra cases 2016-07-12 11:57:05 -04:00
Joshua T
32725dae5b Created replicaJunction keymaps. 2016-07-11 17:49:12 -05:00
Jack Humbert
a998a48673 Merge pull request #477 from Smilliam/master
Canceling Space Cadet state with opposite shift key
2016-07-11 09:14:43 -04:00
Jack Humbert
076de6fa75 Merge pull request #506 from stanleylai/master
Added my custom keymap for Satan
2016-07-11 09:14:11 -04:00
skullydazed
d5102c7715 Merge pull request #507 from ruiqimao/master
fixed clueboard LED pin assignments and matrix documentation
2016-07-11 02:01:17 -07:00
Ruiqi Mao
cb0e102adb fixed clueboard LED pin assignments and matrix documentation 2016-07-11 01:18:35 -07:00
Smilliam
5e58e2281a amended extraneous file edits 2016-07-10 19:10:00 -07:00
Smilliam
b12fe6abb2 Made rollover behavior for space cadet optional 2016-07-10 19:04:01 -07:00
Stanley Lai
753cbee5c0 Added my custom keymap for Satan 2016-07-10 12:07:56 -07:00
Jack Humbert
4081fc4d8f Merge pull request #505 from fredizzimo/documentation_fix
Remove out of place documentation, caused by ChibiOS merge
2016-07-10 14:02:10 -04:00
Fred Sundvik
c7728780de Remove out of place documentation, caused by ChibiOS merge 2016-07-10 20:00:04 +03:00
Jack Humbert
b0300d8d8f Merge pull request #502 from robotmaxtron/master
Adding robotmaxtron's GH60 Keymap
2016-07-09 20:55:58 -04:00
Max Whittingham
df958a2dbc Update keymap.c 2016-07-09 18:58:16 -05:00
Jack Humbert
9dc6dfbf96 Merge pull request #500 from TerryMathews/master
Establish Poker clone keymap for Satan
2016-07-09 19:19:05 -04:00
TerryMathews
4decdd2b18 Merge pull request #1 from jackhumbert/master
Catch up with jack's master
2016-07-09 16:46:00 -04:00
TerryMathews
979a0d25f0 Establish Poker clone keymap for Satan
Maps all of the side-print legends on the stock Poker II keycaps that
are feasible (doesn't support repeat rate toggling, Pmode recording).
2016-07-09 16:42:26 -04:00
Max Whittingham
1ab527a4db Cleaning up repo 2016-07-09 03:20:58 -05:00
Erez Zukerman
c444f4f702 Documents tap dance 2016-07-08 21:40:57 -04:00
Jack Humbert
4139841e9d Merge pull request #498 from fredizzimo/fix_make_dependencies
Fix make dependencies
2016-07-08 16:44:18 -04:00
Fred Sundvik
6911ead027 Use order only prerequisites to avoid re-linking
The prerequisites at the start of the build process are order-only
so that the trget don't link again. Also added as a dependency to
the compilation to force the messages to be printed at the start
2016-07-08 23:19:48 +03:00
Fred Sundvik
e8e300d5c4 Fix name of makefile dep files
The files can't start with a .dot, as the wildcard function wont
find them. So this is fixed by removing the BUILD_DIR from the
name.
2016-07-08 22:59:09 +03:00
Jack Humbert
8610481c37 Merge pull request #496 from fredizzimo/makefile_optimization
Makefile optimization
2016-07-08 12:01:32 -04:00
Fred Sundvik
1e3db59097 Fix the link target 2016-07-08 18:18:33 +03:00
Fred Sundvik
ccebceeb6f Don't run git describe for ever file that is built 2016-07-08 17:44:41 +03:00
Fred Sundvik
b86b0480d5 Speed up compilation by not using recusive make
The cleaning is done outside the targets, by checking the
requested target name.
2016-07-08 17:20:37 +03:00
Jack Humbert
b6e47f7a5f Merge pull request #494 from robbiegill/master
Port support for hhkb-jp from tmk
2016-07-08 08:35:24 -04:00
Jack Humbert
a9979c6f42 Merge pull request #493 from TerryMathews/master
Create keycodes for RGB control functions
2016-07-08 08:34:27 -04:00
TerryMathews
564c743aa0 Fix a function mismatch that was causing LEDs to not properly initialize
See #430. Name of function being called at init was updated to
led_init_ports(), but the call itself wasn't renamed.
2016-07-08 03:40:05 -04:00
TerryMathews
f7a8682226 Move return out of event if block
According to Jack, this makes the return case not be processed. Doesn't
break anything in the firmware.
2016-07-08 03:32:28 -04:00
Robbie Gill
66ffb1cb3a port missing support for hhkb-jp from tmk 2016-07-07 21:03:20 -07:00
TerryMathews
e2ec45a755 Fix cluepad and planck 2016-07-07 23:57:11 -04:00
TerryMathews
ccfa7351ad Fix compile error on Clueboard 2016-07-07 23:50:04 -04:00
TerryMathews
50c686587e Create keycodes for RGB control functions
Moves RGB controls out of the macro function and assigns them their own
keycodes:
RGB_TOG (toggle on/off)
RGB_MOD (mode step)
RGB_HUI (increase hue)
RGB_HUD (decrease hue)
RGB_SAI (increase saturation)
RGB_SAD (decrease saturation)
RGB_VAI (increase brightness)
RGB_VAD (decrease brightness)
2016-07-07 23:34:33 -04:00
Jack Humbert
e8719e10c4 Merge pull request #491 from fredizzimo/keycode_fixes
Some fixes for keycode processing
2016-07-07 13:57:39 -04:00
Fred Sundvik
a2eae81927 Fix IS_CONSUMER macro 2016-07-07 20:04:27 +03:00
Fred Sundvik
0bfb608615 Remove unhandled KC_BTLD, RESET should be used instead 2016-07-07 19:56:55 +03:00
Fred Sundvik
9870082a06 Fix the range for consumer keys 2016-07-07 19:48:39 +03:00
Jack Humbert
c1dfb636ef fixes quantum template (actually) 2016-07-07 12:22:10 -04:00
Jack Humbert
57e08eb8ba updates rgblight implementation, makes non-timer stuff compatible with audio 2016-07-07 11:33:34 -04:00
Christopher Browne
97dfbd1afc Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-07-07 11:13:22 -04:00
Jack Humbert
ad43d450ca Merge pull request #490 from fredizzimo/integrate_visualizer
Integrate visualizer for ChibiOS and Infinity Ergodox
2016-07-07 09:59:33 -04:00
Jack Humbert
589df84d6c corrects quantum template 2016-07-07 09:58:44 -04:00
Fred Sundvik
caedec92d2 Move the visualizer_user file to keymap folder
Also rename it to visualizer.c
2016-07-07 14:42:16 +03:00
Fred Sundvik
aaac254ebc Delete lcd_backlight_hal.c
The functionality can now be found in the infinity_erogodox.c file
instead.
2016-07-07 14:29:53 +03:00
Fred Sundvik
bcbd8f1c50 Add suspend support to the ChibiOS visualizer 2016-07-07 14:22:45 +03:00
Fred Sundvik
dae7c9bfb3 Fix the SERIAL_LINK_ENABLE macro in Visualizer
Rename from USE_SERIAL_LINK -> SERIAL_LINK_ENABLE
2016-07-07 14:12:56 +03:00
Fred Sundvik
7229751ba9 Fix visualizer crash at startup
Visualizer and serial link initialized in the wrong order.
The LED_ENABLED define wasn't set properly
uGfx is always initialized
2016-07-07 14:01:20 +03:00
Fred Sundvik
07d0d5cbe4 Makefile fixes and update of Visualizer 2016-07-07 12:46:10 +03:00
Fred Sundvik
9772e697a0 Add Infinity Ergodox display drivers 2016-07-07 12:45:34 +03:00
Josh Colbeck
ac978a50a2 Merge branch 'master' of https://github.com/Skrymir/qmk_firmware 2016-07-06 23:38:58 -05:00
Jack Humbert
21e443101f Merge pull request #484 from jackhumbert/lets-split-support
Add Let's Split support
2016-07-06 23:44:22 -04:00
Jack Humbert
a4bf46f9b1 default keymap, reset sorted out for now, added serial to makefile 2016-07-06 22:48:19 -04:00
Joshua Colbeck
e0e1c119f0 Merge pull request #1 from Skrymir/patch-1
add ergodox layout
2016-07-06 20:29:29 -05:00
Josh Colbeck
5ed673d82d Changed layer switching to momentary
corrected macro
2016-07-06 20:24:57 -05:00
Jack Humbert
c88207884b Merge branch 'master' into lets-split-support 2016-07-06 18:05:50 -04:00
Fred Sundvik
70797bb8f2 Makefile changes and files to compile Visualizer 2016-07-07 00:20:20 +03:00
Fred Sundvik
10f3a1b621 Add ugfx submodule 2016-07-07 00:17:32 +03:00
Jack Humbert
5baaf871bb Merge pull request #488 from fredizzimo/add_visualizer
Add visualizer library
2016-07-06 15:02:51 -04:00
Fred Sundvik
6c29655790 Merge commit '73d890a2c9c34b905cd5e74e7146fdd4578dcb96' into add_visualizer 2016-07-06 20:30:58 +03:00
Fred Sundvik
f727801bc6 Delete .gitmodules from visualizer 2016-07-06 20:17:16 +03:00
Fred Sundvik
9f33a5593c Add 'quantum/visualizer/' from commit 'bde869aa7ec8601459bc63b9636081d21108d1be'
git-subtree-dir: quantum/visualizer
git-subtree-mainline: 19f480992c
git-subtree-split: bde869aa7e
2016-07-06 20:15:45 +03:00
Jack Humbert
19f480992c Merge pull request #487 from fredizzimo/serial_link_ergodox
Integrate serial link support for ChibiOS and Infinity Ergodox
2016-07-06 09:48:58 -04:00
Fred Sundvik
e5726b017a Add setting of the master side to the makefile 2016-07-06 16:06:53 +03:00
Fred Sundvik
4b45deb652 Enable serial_link support for ChibiOS 2016-07-06 16:06:53 +03:00
Fred Sundvik
a7e3e4e652 Add serial_link compilation to Infinity Ergodox 2016-07-06 16:06:53 +03:00
Jack Humbert
eb6e17be6f adds eep, removes usbconfig.h 2016-07-06 09:04:04 -04:00
Jack Humbert
c6d671e54c Merge pull request #482 from fredizzimo/serial_link
Add serial link library
2016-07-06 08:56:57 -04:00
Fred Sundvik
d5e7603d55 Remove extra serial_link subdirectory 2016-07-06 13:26:20 +03:00
Fred Sundvik
c5bf090d16 Remove CGreen make files 2016-07-06 13:10:30 +03:00
Fred Sundvik
3ac52b2e76 Remove serial_link .gitignore and .gitmodules 2016-07-06 13:09:51 +03:00
Jack Humbert
3577e26fd9 fix/annotate wait_us lines 2016-07-06 00:24:31 -04:00
Jack Humbert
cb410729e6 remove uno_slave for now, even though it's freakin cool 2016-07-05 23:56:42 -04:00
Jack Humbert
dd2522ba8b add options to config.h 2016-07-05 23:52:18 -04:00
Jack Humbert
22ad6459b1 Merge branch 'master' into lets-split-support 2016-07-05 23:40:58 -04:00
Jack Humbert
ce01f88c43 images, docks, clean-up [skip ci] 2016-07-05 23:40:54 -04:00
Jack Humbert
d707738616 i2c working 2016-07-05 23:27:10 -04:00
Jack Humbert
96f44e1202 one half working 2016-07-05 18:36:02 -04:00
Fred Sundvik
639cdd363e Add 'quantum/serial_link/' from commit 'a20d513e3cdacbf6e0e70a80402497ad10166434'
git-subtree-dir: quantum/serial_link
git-subtree-mainline: 7d28d6a7bc
git-subtree-split: a20d513e3c
2016-07-05 23:27:47 +03:00
Jack Humbert
7d28d6a7bc Merge pull request #480 from fredizzimo/add_infinity_ergodox
Add infinity ergodox
2016-07-05 13:12:01 -04:00
Fred Sundvik
f9a6e34c28 Add dfu-util command for programming
Also add .bin generation, which is needed for dfu-util.
2016-07-05 19:28:17 +03:00
Jack Humbert
421ff74e0c Merge pull request #471 from Chipairon/patch-1
Fix for '~' in spanish layout
2016-07-05 11:05:14 -04:00
Jack Humbert
99846b10e8 Merge pull request #478 from fredizzimo/chibios_subprojects
Suprojects for ChibiOS testing
2016-07-05 11:04:54 -04:00
Fred Sundvik
b4cd0cfd15 Infinity Ergodox - Add matrix.c and led.c 2016-07-05 16:50:30 +03:00
Fred Sundvik
74847a84f8 First version of Infinity Ergodox
Mostly just adding the files from the fredizzimo repository. Still
needs some fixing until it works
2016-07-05 16:45:29 +03:00
Fred Sundvik
cf6cd15920 Fix typo in teensy_lc_onkey.h 2016-07-05 15:54:59 +03:00
Fred Sundvik
6e4f2e18e6 Don't include common_config.h for ChibiOS test 2016-07-05 15:53:40 +03:00
Fred Sundvik
0a040a89e8 Move ChibiOS test board and ld
Move the ChibiOS test subproject board and ld files to the kebyoard
folder, so that the build system can find them
2016-07-05 15:34:35 +03:00
Fred Sundvik
b11657d1c8 Suprojects for ChibiOS testing 2016-07-05 14:56:34 +03:00
Josh Colbeck
74d848c942 Merge remote-tracking branch 'jackhumbert/master' into patch-1 2016-07-04 22:44:26 -05:00
Smilliam
6b0c9cc905 fixed indentation. 2016-07-04 19:58:26 -07:00
Smilliam
1412076df6 Allow Space Cadet state to be canceled by alternate Shift key
Allows you to press RSHIFT to cancel the insertion of a "(" when holding down LSHIFT. Alternatively, allows you to press LSHIFT to cancel the insertion of a ")" when holding down RSHIFT. This change enables you to renege from outputting a character should you press a shift key erroneously.
2016-07-04 19:56:08 -07:00
Jack Humbert
94d3159d9d correct break/return order for planck and preonic defaults 2016-07-04 22:06:22 -04:00
Josh Colbeck
a5fb2b58a5 Merge remote-tracking branch 'jackhumbert/master' into patch-1 2016-07-04 15:41:58 -05:00
Josh Colbeck
497b92c3bd Added macro and readme
macros to for often used eclipse shortcuts
2016-07-04 15:22:13 -05:00
Josh Colbeck
1650adf29a Added new keymap 2016-07-04 12:00:06 -05:00
Christopher Browne
2e1cfaf73f Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-07-04 12:32:08 -04:00
Jack Humbert
9e01b219f3 Fixes typos in keycode.txt 2016-07-04 12:19:01 -04:00
Jack Humbert
86a7b060ef Adds wait to i2c (debounce) 2016-07-04 12:13:41 -04:00
Jack Humbert
eafaba6b53 Improves debounce 2016-07-04 12:01:10 -04:00
Pavlos Vinieratos
df25033fc6 fix typos 2016-07-04 17:55:32 +02:00
Jack Humbert
8e88d55bfd reverts #343 for the most part (#474) 2016-07-04 11:45:58 -04:00
Josh Colbeck
62a92a71d0 Revert "Changed layout of left hand main layer"
This reverts commit 8149924399.
2016-07-03 21:50:04 -05:00
Olivier
4cfb262faa Spellchecking. 2016-07-04 01:10:40 +02:00
Joshua Colbeck
8149924399 Changed layout of left hand main layer 2016-07-03 12:24:44 -05:00
Olivier
703dc26853 Merge https://github.com/jackhumbert/qmk_firmware 2016-07-03 16:58:09 +02:00
Olivier
82edc37238 Move Escape and Insert keys, Escape is now easier to reach (useful for vi). Change the layer switching used to keep a bepo layout on US keyboards. 2016-07-03 16:44:57 +02:00
Olivier
6d195dc60c Add a Makefile for the keymap to disable command mode (to keep the keyboard from going into command mode when both Shift keys are hold at the same time) and to allow issuing a simple "make" in the keymap folder to compile it. 2016-07-03 16:27:08 +02:00
Olivier
9aceaaed4c Replace the "Ctrl+Alt+Fx" macro I was using to switch terminals without moving hands by a numeric layer switch key like on the left half, for consistency. 2016-07-03 15:51:55 +02:00
Olivier
17a3dbc159 Integrate mouse keys into function layer, delete mouse layer. 2016-07-03 14:38:03 +02:00
Jack Humbert
21ee3eb569 Merge pull request #472 from Wigguno/master 2016-07-02 22:19:33 -04:00
Richard
f4febd2cf7 Fix other KC60 Keymap Makefiles so they compile properly 2016-07-03 13:49:10 +12:00
Richard
54209dc672 Add my keymap to KC60 2016-07-03 13:44:24 +12:00
Rubén Díaz-Jorge
132c047469 Fix for '~' in spanish layout 2016-07-02 10:26:04 +02:00
Seth Chandler
27354ae877 add HHKB support to satan (#470)
* add HHKB support

* fix indentation
2016-07-01 23:50:51 -04:00
fredizzimo
1b319151aa Add warning when submodules are not updated (#469)
* Add warning when submodules are not updated

* Sh compatible syntax for dirty submodule check
2016-07-01 21:57:59 -04:00
fredizzimo
c30aba0bce Add ChibiOS packages to the avr_setup script (#468)
* Add ChibiOS packages to the avr_setup script

* Add git as a dependency

* Rename avr_setup.sh -> install_dependencies.sh

Also fix the Vagrant welcome message to reflect the new directory
structure.
2016-07-01 17:22:09 -04:00
fredizzimo
4d4f7684e6 Add ChibiOS support for QMK (#465)
* Modularity and gcc warnings fixes.

* Add ChibiOS support (USB stack + support files).

* Make usb_main more USB_DRIVER #define independent.

* Move chibios to tool.

* Implement jump-to-bootloader.

* Small updates.

* Fix bootloader-jump compiling.

* Move AVR specific sleep_led.c into avr.

* Add basic sleep_led for chibios.

* Update chibios README.

* NKRO fixes.

* Rename some Makefile defines.

* Move STM32 bootloader address config to separate .h file.

* Add ARM Teensies bootloader code.

* Fix chibios/usb_main GET_REPORT handing.

* Add missing #include to keymap.c.

* Make bootmagic.c code portable (_delay_ms -> wait_ms).

* Move declaration of keymap_config.

Should really not declare variables in .h files - since it's included
in different .c files, a proper linker then complains that the same
variable is declared more than once (once for each .c file that the
offending .h is included in).

* Add eeprom support for chibios/kinetis.

* Rename chibios example keyboard.

* Move chibios/cortex selection to local Makefiles.

* Chibios: use WFI in idle. WIP suspend stuff.

* ChibiOS/kinetis: sending remote wakeup.

* ChibiOS/STM32: send remote wakeup.

* Fix report size of boot protocol.

* Fix drop key stroke

Keyboard report should be checked if its transfer finishs successfully.
Otherwise key stroke can be missing when other key event occurs
before the last report transfer is done.

Boot protocol 10ms interval probably causes this problem in case
it receives key events in a row within the period. NKRO protocol
suffers less or nothing due to its interval 1ms.

* Chibios/usb_main: rename a variable for clarity.

* Add correct chibios/bootloader_jump for infinity KB.

* ChibiOS: make reset request more CMSISy.

* Chibios: Add breathing sleep LED on Kinetis MCUs.

* ChibiOS: Update infinity bootloader code to match updated ChibiOS.

* ChibiOS: prettify/document sleep_led code.

* Chibios: Remove the wait in the main loop.

* Add maple mini code.

* Do timeout when writing to CONSOLE EP queue.

Fixes TMK bug #266.

* Chibios: add 'core/protocol' to the makefiles' search path.

* Chibios: Update to new USB API.

* Chibios: add more guards for transmitting (fix a deadlock bug).

* Add update for chibios in README

* Chibios: Fix a HardFault bug (wait after start).

* Chibios: cleanup usb_main code.

* Chibios: Revert common.mk change (fix AVR linking problem).

* core: Fix chibios user compile options

Compile options can be defined in project Makefile such as UDEFS, UADEFS, UINCDIR, ULIBDIR and ULIBS.

* Sysv format for ChibiOS arm-none-eabi-size

Some new patches to ChibiOS puts heap as it's own section. So the
berkeley format is now useless, as the heap will be included in the
BSS report. The sysv format displays the bss size correctly.

* Fix hard-coded path of CHIBIOS

* Add support for new version of ChibiOS and Contrib

The Kinetis support has moved to a separate Contrib repository in
the newest version of Chibios. There has also been some structure
changes. So this adds support for those, while maintaining back-
wards compability.

* Update ChibiOS instructions

* Chibios: implement sleep LED for STM32.

* Chibios: Update the main chibios README.

* Chibios: fix STM32_BOOTLOADER_ADDRESS name.

* Chibios: make the default bootloader_jump redefinable (weak).

* Chibios: disable LTO (link-time optimisation).

With LTO enabled, sometimes things fail for mysterious reasons
(e.g. bootloader jump on WF with LEDs enabled), just because the
linker optimisation is too aggressive.

* Chibios: add default location for chibios-contrib.

* ChibiOS: update mk to match chibios/master.

* ChibiOS: update instructions.md.

* Add chibi_onekey example.

* Add comments to chibi_onekey Makefile.

* Rename some Makefile defines.

* Move STM32 bootloader address config to separate .h file.

* Rename chibios example keyboard.

* Move chibios/cortex selection to local Makefiles.

* Add Teensy LC onekey example.

* Chibios: use WFI in idle. WIP suspend stuff.

* Update chibi/teensy instructions.

* Update chibios/Teensy instructions.

* Add infinity_chibios

* Add keymap_hasu.c

* Infinity_chibios: select correct bootloader_jump.

* Infinity_chibios: improve comments.

* Add generic STM32F103C8T6 example.

* Add maple mini code.

* STM32F103x fixes.

* Add maple mini pinout pic.

* Chibios: updates for 3.0.4 git.

* Chibios: rename example stm32_onekey -> stm32_f072_onekey.

* Chibios: add makefiles for Teensy 3.x examples.

* Chibios: update Teensy 3.x instructions.

* Chibios: Tsy LC is cortex-m0plus.

* Chibios: add more guards for transmitting (fix a deadlock bug).

* Change README for chibios

* Chibios: update examples to current chibios git.

Match the changes in mainline chibios:
 - update chconf.h
 - update supplied ld scripts structure
 - update Teensy instructions (switch to official
    chibios and introduce contrib)

* Add ChibiOS and ChibiOS-Contrib submodules

Also fix the makefile path for them.

* Moves chibios keyboards to keyboards folder

* First version of ChibiOS compilation

Only the stm32_f072_onkey keyboard is ported at the moment. It
compiles, but still doesn't link.

* More chibios fixes

It now compiles without warnings and links

* Move the teensy_lc_onekey to the keyboards folder

* Clean up the make file rule structure

* Remove keymap_fn_to_action

* Update more ChibiOS keyboards to QMK

Most of them does not compile at the moment though.

* Use older version of Chibios libraries

The newest ones have problems with compilation

* Remove USB_UNCONFIGURED event

It isn't present in the older version of ChibiOS

* Fix the infinity_chibios compilation

* Fix potentially uninitialized variable

* Add missing include

* Fix the ChibiOS makefile

* Fix some Chibios keyboard compilation

* Revert the rules.mk file back to master version

* Combine the chibios and AVR makefiles

With just the required overrides in the respective platform
specific one.

* Slight makefile restrucuring

Platform specific compiler options

* Move avr specific targets out of the main rules

* Fix ChibiOS objcopy

The ChibiOS objcopy needs different parameters, so the parameters
are moved to the corresponding platform rule file

* Fix the objcopy for real this time

The comands were moved around, so chibios used avr and the ohter
way around.

Also change the objsize output format

* Fix the thumb flags

* Fix the infinity hasu keymap

* Per platform cpp flags

* Add gcc-arm-none-eabi package to travis

* Add arm-none-eabi-newlib to travis

* Fix the name of the libnewlib-arm-none-eabi lib

* Fix the ChibiOS paths

So that they are properly relative, and builds don't generate
extra folders

* Fix the board path of stm32_f103_onekey

* Only consider folders with Makefiles as subproject
2016-07-01 10:04:53 -04:00
Christopher Browne
44a5f7630f Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-30 12:38:48 -04:00
Jack Humbert
a8b55f8c85 Test all subprojects with travis (#464)
* tests all subprojects

* too many paren
2016-06-30 09:51:45 -04:00
Robbie Gill
bfd673fbae initial version of handwired/fivethirteen (#462) 2016-06-30 09:13:08 -04:00
TerryMathews
fbf697b9ff Fix CAPS_LED logic in Satan (#461)
Needed to invert for proper operation. Previous code had LED on when off
and vice versa.
2016-06-29 22:33:09 -04:00
Jack Humbert
2d80eee6b8 test handwired boards 2016-06-29 21:21:02 -04:00
Jack Humbert
ba6fb23f07 adds handwire and onekey example 2016-06-29 20:21:05 -04:00
Jack Humbert
7db2ec1509 updates planck experimental, width of color output 2016-06-29 18:47:53 -04:00
Jack Humbert
8125cdb88c gets rid of rand warning [skip ci] 2016-06-29 18:36:52 -04:00
Jack Humbert
60fd885a6e rand supports other chips 2016-06-29 18:35:29 -04:00
Jack Humbert
197f152dee adds random base64 character generator 2016-06-29 18:29:20 -04:00
Jack Humbert
65faab3b89 Moves features to their own files (process_*), adds tap dance feature (#460)
* non-working commit

* working

* subprojects implemented for planck

* pass a subproject variable through to c

* consolidates clueboard revisions

* thanks for letting me know about conflicts..

* turn off audio for yang's

* corrects starting paths for subprojects

* messing around with travis

* semicolon

* travis script

* travis script

* script for travis

* correct directory (probably), amend files to commit

* remove origin before adding

* git pull, correct syntax

* git checkout

* git pull origin branch

* where are we?

* where are we?

* merging

* force things to happen

* adds commit message, adds add

* rebase, no commit message

* rebase branch

* idk!

* try just pull

* fetch - merge

* specify repo branch

* checkout

* goddammit

* merge? idk

* pls

* after all

* don't split up keyboards

* syntax

* adds quick for all-keyboards

* trying out new script

* script update

* lowercase

* all keyboards

* stop replacing compiled.hex automatically

* adds if statement

* skip automated build branches

* forces push to automated build branch

* throw an add in there

* upstream?

* adds AUTOGEN

* ignore all .hex files again

* testing out new repo

* global ident

* generate script, keyboard_keymap.hex

* skip generation for now, print pandoc info, submodule update

* try trusty

* and sudo

* try generate

* updates subprojects to keyboards

* no idea

* updates to keyboards

* cleans up clueboard stuff

* setup to use local readme

* updates cluepad, planck experimental

* remove extra led.c [ci skip]

* audio and midi moved over to separate files

* chording, leader, unicode separated

* consolidate each [skip ci]

* correct include

* quantum: Add a tap dance feature (#451)

* quantum: Add a tap dance feature

With this feature one can specify keys that behave differently, based on
the amount of times they have been tapped, and when interrupted, they
get handled before the interrupter.

To make it clear how this is different from `ACTION_FUNCTION_TAP`, lets
explore a certain setup! We want one key to send `Space` on single tap,
but `Enter` on double-tap.

With `ACTION_FUNCTION_TAP`, it is quite a rain-dance to set this up, and
has the problem that when the sequence is interrupted, the interrupting
key will be send first. Thus, `SPC a` will result in `a SPC` being sent,
if they are typed within `TAPPING_TERM`. With the tap dance feature,
that'll come out as `SPC a`, correctly.

The implementation hooks into two parts of the system, to achieve this:
into `process_record_quantum()`, and the matrix scan. We need the latter
to be able to time out a tap sequence even when a key is not being
pressed, so `SPC` alone will time out and register after `TAPPING_TERM`
time.

But lets start with how to use it, first!

First, you will need `TAP_DANCE_ENABLE=yes` in your `Makefile`, because
the feature is disabled by default. This adds a little less than 1k to
the firmware size. Next, you will want to define some tap-dance keys,
which is easiest to do with the `TD()` macro, that - similar to `F()`,
takes a number, which will later be used as an index into the
`tap_dance_actions` array.

This array specifies what actions shall be taken when a tap-dance key is
in action. Currently, there are two possible options:

* `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when
  tapped once, `kc2` otherwise.
* `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in
  the user keymap - with the current state of the tap-dance action.

The first option is enough for a lot of cases, that just want dual
roles. For example, `ACTION_TAP_DANCE(KC_SPC, KC_ENT)` will result in
`Space` being sent on single-tap, `Enter` otherwise.

And that's the bulk of it!

Do note, however, that this implementation does have some consequences:
keys do not register until either they reach the tapping ceiling, or
they time out. This means that if you hold the key, nothing happens, no
repeat, no nothing. It is possible to detect held state, and register an
action then too, but that's not implemented yet. Keys also unregister
immediately after being registered, so you can't even hold the second
tap. This is intentional, to be consistent.

And now, on to the explanation of how it works!

The main entry point is `process_tap_dance()`, called from
`process_record_quantum()`, which is run for every keypress, and our
handler gets to run early. This function checks whether the key pressed
is a tap-dance key. If it is not, and a tap-dance was in action, we
handle that first, and enqueue the newly pressed key. If it is a
tap-dance key, then we check if it is the same as the already active
one (if there's one active, that is). If it is not, we fire off the old
one first, then register the new one. If it was the same, we increment
the counter and the timer.

This means that you have `TAPPING_TERM` time to tap the key again, you
do not have to input all the taps within that timeframe. This allows for
longer tap counts, with minimal impact on responsiveness.

Our next stop is `matrix_scan_tap_dance()`. This handles the timeout of
tap-dance keys.

For the sake of flexibility, tap-dance actions can be either a pair of
keycodes, or a user function. The latter allows one to handle higher tap
counts, or do extra things, like blink the LEDs, fiddle with the
backlighting, and so on. This is accomplished by using an union, and
some clever macros.

In the end, lets see a full example!

```c
enum {
 CT_SE = 0,
 CT_CLN,
 CT_EGG
};

/* Have the above three on the keymap, TD(CT_SE), etc... */

void dance_cln (qk_tap_dance_state_t *state) {
  if (state->count == 1) {
    register_code (KC_RSFT);
    register_code (KC_SCLN);
    unregister_code (KC_SCLN);
    unregister_code (KC_RSFT);
  } else {
    register_code (KC_SCLN);
    unregister_code (KC_SCLN);
    reset_tap_dance (state);
  }
}

void dance_egg (qk_tap_dance_state_t *state) {
  if (state->count >= 100) {
    SEND_STRING ("Safety dance!");
    reset_tap_dance (state);
  }
}

const qk_tap_dance_action_t tap_dance_actions[] = {
  [CT_SE]  = ACTION_TAP_DANCE_DOUBLE (KC_SPC, KC_ENT)
 ,[CT_CLN] = ACTION_TAP_DANCE_FN (dance_cln)
 ,[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg)
};
```

This addresses #426.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>

* hhkb: Fix the build with the new tap-dance feature

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>

* tap_dance: Move process_tap_dance further down

Process the tap dance stuff after midi and audio, because those don't
process keycodes, but row/col positions.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>

* tap_dance: Use conditionals instead of dummy functions

To be consistent with how the rest of the quantum features are
implemented, use ifdefs instead of dummy functions.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>

* Merge branch 'master' into quantum-keypress-process

# Conflicts:
#	Makefile
#	keyboards/planck/rev3/config.h
#	keyboards/planck/rev4/config.h

* update build script
2016-06-29 17:49:41 -04:00
Jack Humbert
215c2119af Implements subprojects and updates projects for this (#459)
* non-working commit

* working

* subprojects implemented for planck

* pass a subproject variable through to c

* consolidates clueboard revisions

* thanks for letting me know about conflicts..

* turn off audio for yang's

* corrects starting paths for subprojects

* messing around with travis

* semicolon

* travis script

* travis script

* script for travis

* correct directory (probably), amend files to commit

* remove origin before adding

* git pull, correct syntax

* git checkout

* git pull origin branch

* where are we?

* where are we?

* merging

* force things to happen

* adds commit message, adds add

* rebase, no commit message

* rebase branch

* idk!

* try just pull

* fetch - merge

* specify repo branch

* checkout

* goddammit

* merge? idk

* pls

* after all

* don't split up keyboards

* syntax

* adds quick for all-keyboards

* trying out new script

* script update

* lowercase

* all keyboards

* stop replacing compiled.hex automatically

* adds if statement

* skip automated build branches

* forces push to automated build branch

* throw an add in there

* upstream?

* adds AUTOGEN

* ignore all .hex files again

* testing out new repo

* global ident

* generate script, keyboard_keymap.hex

* skip generation for now, print pandoc info, submodule update

* try trusty

* and sudo

* try generate

* updates subprojects to keyboards

* no idea

* updates to keyboards

* cleans up clueboard stuff

* setup to use local readme

* updates cluepad, planck experimental

* remove extra led.c [ci skip]

* disable power up for now

* config files updates

* makefile updates

* .h file updates, config tuning

* disable audio for yang
2016-06-29 16:21:41 -04:00
Christopher Browne
c9f509f016 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-28 14:46:50 -04:00
Jack Humbert
755b17f8fc Merge pull request #453 from NoahAndrews/update-docs 2016-06-27 14:32:55 -04:00
Noah Andrews
b2d1ff7570 Update readme to direct people to using the MHV AVR Shell 2016-06-27 14:00:48 -04:00
Noah Andrews
1b04e9d01e Long overdue fixes and improvements to environment setup scripts (#448)
* Update setup script 1 for new folder structure

* Improve script 1 output

* Launch elevate if run without admin privileges

* Improve MinGW error message

* Improvements and fixes to second script

* Log elevate output in first script
2016-06-27 09:52:01 -04:00
Anand Babu (AB) Periasamy
57066b1246 zoom and undo keys for ab's planck keymap (#446) 2016-06-27 09:51:12 -04:00
Erez Zukerman
e9f5c87207 Merge pull request #447 from abperiasamy/ergo-browser-zoom
zoom and undo keys for ab's beginners ergodox-ez keymap
2016-06-27 09:01:51 -04:00
Anand Babu (AB) Periasamy
7712d55215 zoom and undo keys 2016-06-26 20:24:43 -07:00
Jack Humbert
e5d1e4b8ce Preonic keymap update 2016-06-26 16:16:21 -04:00
Jack Humbert
0058c33815 updates preonic default layout 2016-06-26 14:20:57 -04:00
Jack Humbert
00dcac7270 updates planck macros to keycodes, prototype fn_actions 2016-06-26 14:08:11 -04:00
Anand Babu (AB) Periasamy
0314620d26 Swap up and down on ab's layout to match default (#441) 2016-06-24 13:43:12 -04:00
Christopher Browne
4d79e22438 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-24 12:19:34 -04:00
Erez Zukerman
40bfc7231e Merge pull request #440 from abperiasamy/ergo-ab-swap-up-down
Swap up and down keys to match default layout
2016-06-24 08:57:06 -04:00
Erez Zukerman
d2fc24d2a0 Merge pull request #438 from tkuichooseyou/master
Added tkuichooseyou keymap; for vim and macOS users
2016-06-24 08:56:01 -04:00
Anand Babu (AB) Periasamy
512a68c0ec Swap up and down to match default layout 2016-06-23 20:17:04 -07:00
Jack Humbert
b68b722325 updates ez's matrix to spec 2016-06-23 23:14:21 -04:00
Jack Humbert
13bb6b4b7f Backlight abstraction and other changes (#439)
* redoes matrix pins, abstracts backlight code for B5,6,7

* slimming down keyboard stuff, backlight breathing implemented

* don't call backlight init when no pin

* cleans up user/kb/quantum calls, keyboard files

* fix pvc atomic

* replaces CHANNEL with correct var in breathing

* removes .hexs, updates readmes, updates template

* cleans-up clueboards, readmes to lowercase

* updates readme
2016-06-23 22:18:20 -04:00
Peter
ba116ceb49 Add OS specific layers that can be switched with macros (#436) 2016-06-23 20:06:13 -04:00
Teddy Ku
b9d29cc355 Added tkuichooseyou keymap; for vim and OSX users 2016-06-23 15:09:04 -04:00
Christopher Browne
a4bdb0ac0e Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-23 11:34:50 -04:00
Anand Babu (AB) Periasamy
bab6a8fde5 AB's practical planck keymap (#435) 2016-06-22 23:36:30 -04:00
Jack & Erez
7e584439ee Updates overall readme 2016-06-22 23:24:47 -04:00
Jack & Erez
2443234555 Adds a Readme for the keyboards subdirectory 2016-06-22 23:17:15 -04:00
Mazin Bokhari
aea8d43716 Update readme.md 2016-06-22 21:32:51 -05:00
Mazin Bokhari
ce5e41d362 Update readme.md 2016-06-22 21:31:37 -05:00
Mazin Bokhari
c72c9a7375 Update readme.md 2016-06-22 21:21:27 -05:00
Mazin Bokhari
b43b8bdd17 Update readme.md 2016-06-22 21:20:19 -05:00
Mazin Bokhari
521a56f5eb Update readme.md 2016-06-22 21:05:59 -05:00
Mazin Bokhari
5988820c99 Update readme.md 2016-06-22 21:03:01 -05:00
Christopher Browne
0cd017d485 Use Space Cadet parens on LSFT 2016-06-22 16:51:25 -04:00
Christopher Browne
7eee1526bd Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-22 16:42:58 -04:00
Jack Humbert
935f0de55d well that didn't work 2016-06-22 14:33:59 -04:00
Jack Humbert
56bb5b51bc adds author block to readme 2016-06-22 14:30:47 -04:00
Christopher Browne
b0caf32741 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-22 11:26:26 -04:00
Erez Zukerman
8c1bfdf0bd Merge pull request #433 from algernon/ergodox-ez/algernon
ergodox_ez: Update the algernon keymap to v1.2
2016-06-22 09:01:51 -04:00
Gergely Nagy
2278956412 ergodox_ez: Update the algernon keymap to v1.2
Noticeable changes since the last pull request:

* The forced NKRO mode can be easily toggled off at compile-time, to
  make the firmware compatible with certain operating systems.
* The `:;` key has changed behaviour: to access the `;` symbol, the key
  needs to be double-tapped, instead of shifted.
* The `=` and `\` keys were swapped, `=` moved to the home row, on both
  the **base** and the **experimental** layers.
* The arrow and navigation keys were redone, they are now more
  accessible, but the navigation keys require an extra tap to access.
* The **Emacs** layer is gone, replaced by a simplified
  **navigation and media** layer.
* `LEAD v` types the firmware version, and the keymap version.
* On the **experimental** layer, the `L` and `Q`, and the `K` and `G`
  keys were swapped.
* The **Steno** layer gained a few more `#` and `*` keys, to make it
  easier on my fingers.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-06-22 08:41:38 +02:00
Jack Humbert
98f0807359 increase leader seq size to 5 2016-06-21 22:55:54 -04:00
Jack Humbert
649b33d778 Renames keyboard folder to keyboards, adds couple of tmk's fixes (#432)
* fixes from tmk's repo

* rename keyboard to keyboards
2016-06-21 22:39:54 -04:00
Jack Humbert
464c8e274f adds backlight levels to the satan keyboard (#431)
* enable 4 levels

* remove breathing stuff

* update channels, comments, hex
2016-06-21 22:09:41 -04:00
Jack Humbert
e329729d3a adds fuse settings for atmega32u4, fixes keymap_extras includes 2016-06-21 18:32:28 -04:00
Christopher Browne
ee3c7892ad Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-21 17:54:12 -04:00
Jack Humbert
1a0bac8bcc Warning reductions (#430)
Warning reductions
2016-06-21 17:42:29 -04:00
dragon788
758a8c64e9 Change base box to avoid breakage in Arch box (#429)
I haven't had a chance to update the Arch base box in a while so using the Ubuntu one is far more likely to succeed for a new user (I did test that box recently as I traded my ErgoDox EZ to a friend and needed to reprogram it for him).
2016-06-21 15:29:54 -04:00
fredizzimo
a69d002506 Fix the make all-keyboards command (#422)
Unfortunately the supported targets, like "quick", "all", "clean",
and so on has to be repeated two extra times, but this is the best
I can do with my makefile skills.
2016-06-21 13:31:26 -04:00
Christopher Browne
2d31481008 More notes 2016-06-21 12:55:24 -04:00
Jack Humbert
80c8705419 reduces rgblight warnings, integrates completely (#428) 2016-06-21 12:53:21 -04:00
Christopher Browne
28942b3ba7 Improve docs a bit 2016-06-21 12:45:38 -04:00
Christopher Browne
f404124c26 Add filler to make layering clearer;
KC_TRNS gets used a lot; have the blank _______ mnemonic for it
2016-06-21 12:36:26 -04:00
Christopher Browne
a6e109caa1 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-21 12:30:17 -04:00
Jack Humbert
a8375fa15a updates all config.h and Makefiles to correct references, text 2016-06-21 10:21:43 -04:00
Stanley Lai
c976c03547 Added stanleylai's personal keymap (#420)
* Added WS2812 support for KC60

* Reorganized WS2812 support into its own keymap

* Fixed relative link in README

* Moved WS2812 mention in README to the bottom

* Fixed titling in WS2812 README

* Reverted KC60 Makefile and default keymap back

* Moved RGB specific config.h to ws2812 keymap folder

* Added my personal keymap

* Updated compiled hex

* Reverted KC60 files to 3f6fac47 before pull request #419
2016-06-21 00:49:54 -04:00
Jack & Erez
650e77c657 Fresh hes for experimental layout 2016-06-20 22:37:31 -04:00
Jack & Erez
76076db725 [Jack & Erez] Fixes Space Cadet right shift 2016-06-20 22:36:36 -04:00
Erez Zukerman
f77df7e356 Adapts experimental layout file format 2016-06-20 22:27:17 -04:00
Erez Zukerman
eda5e84164 Adds compiled default firmware 2016-06-20 22:00:51 -04:00
Erez Zukerman
b85d2f2988 [Jack & Erez] Adds dedicated Version key 2016-06-20 21:59:20 -04:00
Erez Zukerman
881eb8d5f3 [Jack & Erez] Tweaks makefile for sanity 2016-06-20 21:58:58 -04:00
Erez Zukerman
5961de0ce2 Removes .gitattributes 2016-06-20 21:47:04 -04:00
Erez Zukerman
cebe08fcd3 [Erez & Jack] Updates build guide 2016-06-20 21:44:37 -04:00
Christopher Browne
f6d1ce7863 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-20 12:20:52 -04:00
Jack Humbert
44e098ef2d endline normalisation, treat .hex as bin, updates kc60 hex files 2016-06-19 23:41:10 -04:00
Stanley Lai
3302258abd Added WS2812 support for KC60 (#419)
* Added WS2812 support for KC60

* Reorganized WS2812 support into its own keymap

* Fixed relative link in README

* Moved WS2812 mention in README to the bottom

* Fixed titling in WS2812 README

* Reverted KC60 Makefile and default keymap back

* Moved RGB specific config.h to ws2812 keymap folder
2016-06-19 23:29:42 -04:00
fredizzimo
3f6fac4721 Add quick version of the all-* makefile targets (#417) 2016-06-18 18:09:21 -04:00
Jack Humbert
db32864ce7 Cleans up quantum/keymap situation, removes extra lufa folders (#416)
* sorts out keycodes

* move midi around

* remove mbed

* replaces keymap with qmk/keymap_common

* fixes keymap.h

* keymap, config, quantum rearrange

* removes unneeded lufa stuff
2016-06-18 14:30:24 -04:00
Jack Humbert
1923cffd41 allow overriding of TARGET 2016-06-17 22:50:41 -04:00
Jack Humbert
008c8d54a0 adds power_up to quantum's matrix file 2016-06-17 22:09:59 -04:00
Jack Humbert
de326d078d prevents ergodox_ez from waking up machine (#375) 2016-06-17 22:06:58 -04:00
Jack Humbert
b70248fa21 addresses #369 2016-06-17 21:42:59 -04:00
Jack Humbert
c4ea06d255 fix for parent folders with spaces (#403) 2016-06-17 21:10:17 -04:00
Eric Tang
e175b8d56f removes extra dfu erase (#415) 2016-06-17 20:25:58 -04:00
Christopher Browne
2cf26915e3 Sample of using build info to generate keystrokes (#412)
* More documentation

* Saving crontab for user  on host

* Restructuring in keeping with recent changes to conventions

* Simplify submitting my fave cbbrowne keystroke by using SEND_STRING()

* Local change, not apropos to have in this repo

* Simplify logic; no need to return so much

* Add in a version key

* Add docs

* Split build date into a separate DEFINE

* Ensure there is a value even if not working within a git repo

* Should not include the compiled code in the repo

* compiled.hex files should not be included in the repo; they represent generated compiled code

* Fix spelling in comment

* Remove more generated files

* Add rule to ignore contents of .build directories; their contents are generated

* Revert removals of compiled files
2016-06-16 17:16:51 -04:00
Christopher Browne
f566125c6e Revert removals of compiled files 2016-06-16 16:51:19 -04:00
Christopher Browne
b2cc1ff0de Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-16 16:43:27 -04:00
Jack Humbert
91b469d88f correctly test to see if awk exists 2016-06-16 15:48:54 -04:00
Jack Humbert
33e83aaaca make awk optional (uses cat) 2016-06-16 10:42:00 -04:00
Christopher Browne
ce1742a31f Add rule to ignore contents of .build directories; their contents are generated 2016-06-15 18:42:30 -04:00
Christopher Browne
e7b50feee4 Remove more generated files 2016-06-15 18:42:05 -04:00
Christopher Browne
39cde91475 Fix spelling in comment 2016-06-15 18:39:57 -04:00
Christopher Browne
10fe3f001b Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-15 18:38:30 -04:00
Christopher Browne
6d485b0ecd compiled.hex files should not be included in the repo; they represent generated compiled code 2016-06-15 18:35:38 -04:00
Christopher Browne
6e0270b52f Should not include the compiled code in the repo 2016-06-15 18:34:47 -04:00
Christopher Browne
90d0576355 Ensure there is a value even if not working within a git repo 2016-06-15 18:29:27 -04:00
Jack Humbert
77d083ed98 updates experimental planck keymap, adds basic layout 2016-06-15 15:43:40 -04:00
Christopher Browne
bb0e0c7eba Split build date into a separate DEFINE 2016-06-15 11:36:27 -04:00
Christopher Browne
4e1bc2d298 Add docs 2016-06-15 11:25:08 -04:00
Christopher Browne
211ebe8734 Add in a version key 2016-06-15 11:19:51 -04:00
Christopher Browne
e32b0960af Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-15 11:13:29 -04:00
Gergely Nagy
1d1ced53c7 Update the ergodox-ez/algernon keymap (#409)
Compared to the previous version, the following noteworthy changes have
been made to the keymap:

* The keyboard starts in NKRO mode, bootmagic and other things are
  disabled.
* A STENO layer was added, to be used with Plover.
* An experimental layout was added, something halfway between Dvorak and
  Capewell-Dvorak. A work in progress.
* `LEAD y` types \o/.
* Some keys on the BASE layer have been moved around:
  - `?` moved to the left pinky, left of `Q`.
  - `=` shifted one row down, but `F11` stayed where it was.
  - `-` on the left half was replaced by `Tab`.
  - `Tab`'s original position is taken by a `Media Next`/`Media Prev`
     key.
  - `:` now inputs `;` when shifted.
* `ESC` cancels the **HUN** layer too, not just modifiers.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-06-14 11:28:54 -04:00
Gergely Nagy
4815b97add Makefile: Add QMK_VERSION & co to OPT_DEFS (#408)
This adds the keyboard and keymap built, along with the QMK firmware's
git hash (or a timestamp), to OPT_DEFS. That, in turn, allows keymaps to
make use of these information, and do whatever they want with it. For
example, one could print them on `LEADER v` like this:

```c
SEQ_ONE_KEY (KC_V) {
  SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
```

This addresses #366.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-06-14 11:26:42 -04:00
Samuel Goodwin
fad5a57156 Add sgoodwin keymap for the KC60 (#410)
* Don't save the ctags file in the repo.

* Initial support for the KC60 board. Only 5x5 working so far.

* Rename because this isn't the same KC60 as others.

* Add in some generic layout.
Pins seem to be in the right order except the 6th column spews
gibberish.

* Don't need this for now.

* Move this to some other folder.

* Trying again to start over.

* Don't need to start over because I figured out why the 'broken' stuff wasn't working.

* Attempt to enable backlighting. It's on on pin B7 like other boards.

* Fix last port changes and fix LED control in keymap.

* Trying some other LED code.

* Bootloader needs to be bigger. Disabling backlight for now.

* Simplify LED code while I try to figure it out.

* Turn back on backlighting.

* Backlighting works now. Just need to get levels or breathing working.

* Trying to allow for turning off the LEDs before I get to brightness levels.

* The missing link: need to run the init_ports function for LEDs to work properly.

* Removing breathing stuff since it bricks the board.

* Clean up default layer.

* Cleanup keymap, KC60 doesn't support a 5th right bottom-row button.

* Add in the keymap I want for now.

* Back to escape by default.

* Move my personal keymap to the new place for keymaps.

* Add the version number for clarity.
2016-06-14 11:21:55 -04:00
TerryMathews
1c5a6733ff adds support for GH60 Satan keyboard (#407)
* adds support for GH60 Satan keyboard

ANSI 125 layout, capslock and backlight implemented, support for
WS2812LED strip included

* added Phantom and GH60 Satan to travis
2016-06-13 21:59:22 -04:00
Christopher Browne
498455403e Renaming planck/cbbrowne in keeping with recent naming conventions (#405)
* More documentation

* Saving crontab for user  on host

* Restructuring in keeping with recent changes to conventions

* Simplify submitting my fave cbbrowne keystroke by using SEND_STRING()

* Local change, not apropos to have in this repo

* Simplify logic; no need to return so much
2016-06-13 19:06:32 -04:00
Christopher Browne
c5a034f984 Simplify logic; no need to return so much 2016-06-13 17:59:26 -04:00
Christopher Browne
de2f95bc6f Local change, not apropos to have in this repo 2016-06-13 17:33:26 -04:00
Christopher Browne
2fe06e4ef5 Simplify submitting my fave cbbrowne keystroke by using SEND_STRING() 2016-06-13 17:22:45 -04:00
Christopher Browne
3fe26d47a6 Restructuring in keeping with recent changes to conventions 2016-06-13 16:27:33 -04:00
Christopher Browne
dc9bf78f2b Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-06-13 16:06:03 -04:00
TerryMathews
25d4772754 adds support for Phantom TKL keyboard (#399)
ANSI 125 layout, capslock and scrolllock implemented, support for
WS2812LED strip included.
2016-06-12 22:26:47 -04:00
Eric Tang
6955719075 Move LED strip initialization (#397) 2016-06-12 18:01:55 -04:00
Jack Humbert
92759be322 change to relative paths instead of absolute 2016-06-12 15:55:05 -04:00
Jack Humbert
42b40e6fde no more cc error on windows 2016-06-11 22:54:34 -04:00
IBNobody
1c2705eea5 fixed color detection routine in makefile 2016-06-11 17:24:28 -05:00
IBNobody
50621a2e6a Merge remote-tracking branch 'remotes/jackhumbert/master' 2016-06-11 13:28:27 -05:00
Jack Humbert
d9e4dad0a8 Makefile redo & other features (#395)
* .build containment implemented

* no destructive variable setting - builds in either folder

* make from 3 places

* cleans before each build
* make from root with keyboard=keyboard, keymap=keymap
* make from keyboard/keyboard with keymap=keymap
* make from keymaps/keymap
* only implemented on planck

* adds color diag to avr-gcc

* makefiles for all plancks, clean-up

* quick build-all makefile for plancks

* reformatting of make output (colors)

* color toggle, tmk path corrections

* correct if statement for color

* move config.h to main makefile, updates preonic, atomic

* format update, all keyboards targets

* makefile optional for build all target, alps and arrow_pad updated

* alps updated

* make planck default, trying out travis recipe for all-keyboards

* all-keymaps target, different travis recipe

* updates alps64

* updates keyboards to new format

* updates clue* projects

* all projects updated, specialise EZ .hex, let .hex through

* updates travis

* automatically find root, keyboard, keymap

* silent echo, cleaned-up mass make output

* updates all keyboards' .hex files except EZ

* Rename Bantam44.c to bantam44.c

* Rename Bantam44.h to bantam44.h

* nananana

* adds six key keyboard

* does same to ez as rest

* updates send_string example

* brings ergodox_ez up to date

* updates template/new project script

* adds sixkeyboard

* adds readme for sixkeyboard

* adds sixkeyboard to travis

* filenames, gitignore mess

* define clock prescaler stuff manually

* make quick, size test example

* documentation and dfu-no-build
2016-06-11 13:31:31 -04:00
Erez Zukerman
a5d638ad30 Merge pull request #364 from techtomas/techtomas
Rearranged the layer toggles and keys.
2016-06-07 21:18:32 -04:00
Thomas Anderson
623466e340 Updated readme to fix a typo and list out hotkey shortcuts 2016-06-07 13:38:37 -07:00
Aron Griffis
fd454e5b74 Add support for vagrant-docker (#389)
* clean trailing ws in Vagrantfile and util/avr_setup.sh

* replace triple quotes with heredoc.

Ruby doesn't have triple quotes; that's a Python thing. This was just being
parsed as multiple strings concatenated.

* add docker support to Vagrantfile

* make wants to find dfu-programmer in vagrant guest
2016-06-07 12:41:55 -04:00
Masahiro Wakame
6b8b332f77 fix HID_RI_LOGICAL_MAXIMUM value (#388) 2016-06-07 11:30:15 -04:00
Erez Zukerman
2fda55ba54 Merge pull request #384 from gid0/master
Merge ErgoDox bepo layout changes.
2016-06-06 23:22:52 -04:00
Jack Humbert
2222621b55 Update HAND_WIRE.md 2016-06-06 21:54:21 -04:00
Eric Tang
219e4a3012 Fix hand wiring guide (#387)
* Fix broken link

* Fix incoherent sentence
2016-06-06 21:53:37 -04:00
Erez Zukerman
408c9e159b Adds Python script to util directory for easier discoverability 2016-06-06 21:47:57 -04:00
TuxForLife
ea63714950 Tiny typo (#386) 2016-06-06 10:42:41 -04:00
Olivier
cd906f24b1 Spellchecking. 2016-06-06 15:23:40 +02:00
Olivier
a62a0480d0 Add some more function keys (vol up / down, mute, undo, cut, copy, paste). 2016-06-06 15:18:42 +02:00
Olivier
edf4266839 Add basic README file. 2016-06-05 21:42:25 +02:00
Jack Humbert
3e3a07fc97 adds planck keymap readme 2016-06-05 11:21:37 -04:00
Jack Humbert
bdf94c0621 updates the hand-wiring guide 2016-06-05 11:19:17 -04:00
Olivier
4d59d57e64 Move keys and especially TAB more like on a TypeMatrix 2020 keyboard. Add a left SHIFT key. 2016-06-04 20:14:34 +02:00
Jack Humbert
83c52c6009 corrects vagrant script path from @b46f343 2016-06-04 13:30:11 -04:00
Jack Humbert
b46f343de7 updates vagrant script path 2016-06-04 13:24:25 -04:00
Jack Humbert
8ca1831daa makes vagrant usable again 2016-06-04 13:18:15 -04:00
Olivier
e0762e0ad9 Merged the function and navigation layers. Give access to it with both thumbs. Now you can up / down / page up / page down with only one hand ! 2016-06-04 18:52:22 +02:00
Jack Humbert
b36e532b5e cleans up folder structure
* consolidates docs
* deletes converter/
* updates .md references (most)
2016-06-04 00:10:47 -04:00
Noah Andrews
189a3b02fb Add missing elevate.exe file (#377)
* Stops explorer.exe from being started with admin privilieges

* added missing elevate.exe file
2016-06-03 22:42:51 -04:00
Eric Tang
794aed37a0 Improve string sending (#376) 2016-06-03 15:48:40 -04:00
Olivier
a4796ba36a Update prebuilt firmware with code from latest pull. 2016-06-02 23:51:06 +02:00
Jack Humbert
cc3972e7d6 adds travis badge 2016-06-02 14:23:01 -04:00
Daniel Svensson
fd3afbd2f3 Add a Travis recipe. (#374) 2016-06-02 14:17:19 -04:00
Noah Andrews
c7005cdfcf Stops explorer.exe from being started with admin privilieges (#373) 2016-06-02 13:00:44 -04:00
Jack Humbert
4635b44533 new line/tab in send_string 2016-06-01 23:00:55 -04:00
Jack Humbert
1c9f33c06a adds send_string functionality (string macros) 2016-06-01 22:50:01 -04:00
IBNobody
f3086b57e6 Submitting ArrowPad, A QMK-based 21/24 key keypad (#372)
* Created arrow pad, a QMK based numpad designed for heavy text editing

* Enabled backlighting, numlock indicator, and forced nkro for arrowpad

* WIP Arrowpad 21

* WIP Arrowpad 21

* Combined Arrow Pad 21 and 24

* Combined Arrow Pad 21 and 24

* Removed 21 folder
2016-06-01 21:41:51 -04:00
Jack Humbert
84276ee561 removes stray paren 2016-06-01 16:57:12 -04:00
Erez Zukerman
0457ed4880 Merge pull request #297 from gid0/master
Add an ErgoDox bépo layout.
2016-06-01 08:21:04 -04:00
Fred Sundvik
73d890a2c9 Fix visualizer sleeping too long
The documentation for ugfx gEventWait wait is wrong and the
function takes the time in milliseconds, instead of system ticks.
This caused the the thread to sleep way too long. It also caused
somewhat random sleeping behaviour as the MS2ST function overflows
at around 43 seconds sleep.

The event source is also now initialized correctly, so that the
thread actually can be woken up by events.
2016-06-01 09:22:47 +03:00
Erez Zukerman
56939b1518 Merge pull request #367 from waveform80/fix-unselect-rows-prototype
Squash the prototype compiler warning
2016-05-31 23:42:54 -04:00
Erez Zukerman
0c4085dd53 Merge pull request #368 from waveform80/daves-layout-readme
Added a README and minor tweaks for "dave" KEYMAP
2016-05-31 23:42:11 -04:00
Erez Zukerman
bae92b2a10 Merge pull request #356 from johgh/master
ergodox_ez: added dvorak_spanish layout
2016-05-31 23:18:16 -04:00
Nathan Sharfi
6428069eb7 zweihander-osx: Use power instead of eject
KC_EJCT isn't the OS X Eject key and won't restart your computer.
2016-05-31 16:45:22 -07:00
Nathan Sharfi
7b8857a368 zweihander-osx: use eject instead of power
https://support.apple.com/en-us/HT201236 says that ⌃⌘⏏ will quit all apps and then restart your Mac; ⌃⌘-power will shut things down in an…ungraceful fashion.

I reboot into Windows fairly frequently; I'd rather have the nice behavior at my fingertips, not the rude one.
2016-05-31 16:15:35 -07:00
Nathan Sharfi
a226255c0b Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2016-05-31 15:22:45 -07:00
Hartmut Goebel
cea4b9a4bb Update to Makefile an ergodox readme (#365)
* Autodetect teensy-loader-cli over teensy_loader_cli.

Some distributions (e.g. Arch Linux, Guix) install teensy_loader_cli
as teensy-loader-cli. Use this one if it is installed.

* Update ergodox_ez/readme.md

- Mention Linux distris providing teensy-loader-cli
- Mention `make teensy ...`
2016-05-31 10:03:04 -04:00
Dave Jones
5e926d7b07 Added a README and minor tweaks 2016-05-31 14:30:36 +01:00
Dave Jones
4ae86e6ff7 Squash the prototype compiler warning
unselect_rows declared with no parameter list; requires (void) to
prevent compiler warning
2016-05-31 14:18:40 +01:00
Thomas Anderson
0755322a90 Rearranged the layer toggles and keys.
Moved the layer toggles to be in more comfortable locations for my typing. Also expanded the use of the media layer (now called APP) and enhanced the text navigation on the control layer
2016-05-30 23:45:55 -07:00
Nathan Sharfi
222e8f031c Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2016-05-30 15:45:17 -07:00
Nathan Sharfi
13810e4822 zweihander: Add :, disable sleep LED waves 2016-05-30 15:44:59 -07:00
jorge
b32731b698 Merge branch 'master' of https://github.com/johgh/qmk_firmware 2016-05-30 19:41:29 +02:00
jorge
314d21c746 ergodox_ez: added dvorak_spanish layout 2016-05-30 19:40:16 +02:00
Fred Sundvik
489288f674 Add a nicer sine based gradient for the LEDs 2016-05-29 21:59:27 +03:00
Erez Zukerman
8ee9be11de Merge pull request #353 from algernon/ergodox-ez/algernon
My layout for the ErgoDox EZ
2016-05-29 13:53:29 -04:00
Samuel Goodwin
478a18d237 Add support for the KC60 v2.0 2015-09-12 (#360)
* Don't save the ctags file in the repo.

* Initial support for the KC60 board. Only 5x5 working so far.

* Rename because this isn't the same KC60 as others.

* Add in some generic layout.
Pins seem to be in the right order except the 6th column spews
gibberish.

* Don't need this for now.

* Move this to some other folder.

* Trying again to start over.

* Don't need to start over because I figured out why the 'broken' stuff wasn't working.

* Attempt to enable backlighting. It's on on pin B7 like other boards.

* Fix last port changes and fix LED control in keymap.

* Trying some other LED code.

* Bootloader needs to be bigger. Disabling backlight for now.

* Simplify LED code while I try to figure it out.

* Turn back on backlighting.

* Backlighting works now. Just need to get levels or breathing working.

* Trying to allow for turning off the LEDs before I get to brightness levels.

* The missing link: need to run the init_ports function for LEDs to work properly.

* Removing breathing stuff since it bricks the board.

* Clean up default layer.

* Cleanup keymap, KC60 doesn't support a 5th right bottom-row button.
2016-05-29 13:18:01 -04:00
Fred Sundvik
0c3189055f Make LED visualization times configurable 2016-05-29 17:42:32 +03:00
Daniel Svensson
b85dd60397 Fix build errors (#359)
* brings gh60 up-to-date (needs testing)

* brings hhkb up-to-date (needs testing)

* brings jd45 up-to-date (needs testing)
2016-05-29 10:39:27 -04:00
Erez Zukerman
536ad6813a Corrects a backtick 2016-05-28 20:51:25 -04:00
Erez Zukerman
d7ed882d2a Corrects links 2016-05-28 20:50:24 -04:00
Erez Zukerman
8497a45134 Adds a roadmap to the intro section of the docs 2016-05-28 20:48:20 -04:00
Fred Sundvik
9c955145f5 Fix emulator #ifdef check 2016-05-29 02:08:46 +03:00
Jack Humbert
a53bc24c4d makes .SILENT (less verbose) by default - override with VERBOSE=1
also took out some @echo newlines to make things a bit cleaner
2016-05-28 15:33:08 -04:00
Jack Humbert
17977a7e24 process_record implementation (non-breaking for process_action ATM) 2016-05-28 15:22:30 -04:00
Jack Humbert
38987d4c15 updates quantum template to prevent backlight conflicts 2016-05-28 12:05:17 -04:00
Jack Humbert
de57799530 brings alps64 up-to-date (needs testing) 2016-05-28 11:56:06 -04:00
Fred Sundvik
4d7e4a4780 Don't include lcd_backlight_hal for emulator 2016-05-28 11:13:08 +03:00
jorge
f20e17a19e ergodox_ez: added dvorak_spanish layout 2016-05-28 09:57:25 +02:00
Nathan Sharfi
e7e83b1f18 zweihander-osx: Add =, :, juggle Home/End 2016-05-27 18:41:16 -07:00
Nathan Sharfi
861f0f78e1 zweihander-osx: Bump ALFRED_LEAD_TIME to 250ms 2016-05-26 15:08:01 -07:00
Jack Humbert
209ee3cd05 removes duplicate double quote and odd whitespace 2016-05-26 17:14:01 -04:00
Christopher Browne
d649ab3433 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-05-26 15:17:00 -04:00
Gergely Nagy
9ff10ab1db ergodox_ez/algernon: Add a HEX file
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-05-26 15:31:25 +02:00
Gergely Nagy
c764480b95 ergodox_ez/algernon: New layout.
This is a squashed up version of the layout I have been working on for
the past month or so. Based on Dvorak, with a lot of unconventional
stuff thrown in for good measures.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-05-26 15:27:11 +02:00
Erez Zukerman
89f0472b9e Merge pull request #352 from algernon/ergodox-ez/supercoder
ergodox_ez: Add a SuperCoder keymap
2016-05-26 08:40:20 -04:00
Gergely Nagy
037b3f0ddf ergodox_ez: Add a SuperCoder keymap
Inspired by @faxm0dem, and the SuperCoder 2000 "keyboard".

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-05-26 14:13:20 +02:00
Mazin Bokhari
ac02b0f397 Fix formatting 2016-05-26 02:17:07 -05:00
Mazin Bokhari
733596d800 Fix formatting 2016-05-26 02:12:57 -05:00
Erez Zukerman
5501f231d4 Merge pull request #351 from adiabatic/master
Add KC_DQUO ("); update Zweihander
2016-05-25 21:41:18 -04:00
Nathan Sharfi
376403276b Add single and double quotes to numpad layer
…as well as recover from a bunch of Git user errors.
2016-05-25 18:13:00 -07:00
Nathan Sharfi
9d6debd9b2 Add double quote for everyone; update Zweihander 2016-05-25 17:25:04 -07:00
Mazin Bokhari
66f9cdd041 Change bottom keycluster keys to be alt temporarily until a more permanent solution is though up... although you just now lost your arrow keys, so idk what to do about that tomorrow lol 2016-05-25 01:43:06 -05:00
Mazin Bokhari
59dc19940a Add notes 2016-05-25 01:31:57 -05:00
Mazin Bokhari
fbbd32376b Add gui macro to bksp and tab (second outter-most keys) on both thumb clusters 2016-05-25 01:25:09 -05:00
Mazin Bokhari
09e172f56a Tap then hold built-in functionality actually overrides the ctrl/alt/etc. macros 2016-05-25 01:21:29 -05:00
Mazin Bokhari
03aeb40516 Change mouse clicks to j and k 2016-05-25 01:19:30 -05:00
Mazin Bokhari
fd44d1cb39 Update layout viz 2016-05-25 01:09:18 -05:00
Mazin Bokhari
5486b9e80e Add todo: windows and nix layers 2016-05-25 00:58:08 -05:00
Mazin Bokhari
fbbfb3cbad Add todo: override holding macro functionlity 2016-05-25 00:51:16 -05:00
Mazin Bokhari
514a7038b1 Add ctrl macro to spc and ent on thumb cluster (outter-most keys_) 2016-05-25 00:46:43 -05:00
Mazin Bokhari
0b68db4e43 Change rr3c1 from quotes/gui to quotes/ctl 2016-05-25 00:42:58 -05:00
Mazin Bokhari
3b0fd160df Change r3c1 from backspace to esc/control 2016-05-25 00:38:25 -05:00
Mazin Bokhari
f5e486b50d Change r2c1 from Del to Tab 2016-05-25 00:23:05 -05:00
Erez Zukerman
d06e940a17 [Erez & Jack] Removes keyboards which are not active on qmk 2016-05-24 23:55:29 -04:00
Erez Zukerman
8bc69afc63 [Erez & Jack] Optimizes shift_interrupted array 2016-05-24 23:48:46 -04:00
Erez Zukerman
1237025963 [Erez & Jack] Packages Space Cadet shifts into keycodes 2016-05-24 23:43:58 -04:00
Erez Zukerman
f4a426a0b1 [Erez & Jack] Documents new Leader key functionality 2016-05-24 22:37:38 -04:00
IBNobody
26277dbdf4 Merge remote-tracking branch 'remotes/jackhumbert/master' 2016-05-24 17:57:40 -05:00
IBNobody
76e36a787a Merge remote-tracking branch 'remotes/jackhumbert/master' 2016-05-24 17:55:46 -05:00
Christopher Browne
48871b9b6b Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-05-24 12:34:08 -04:00
Jack Humbert
287eb7ad14 Converted audio play functions to *_user (#349)
* Updated personal layouts

* tweaked personal

* Nightly - Audio Cleanup

Refactored the LUTs. Abstracted some of the registers out of audio to
use more functional names. Split audio into audio and audio_pwm. WIP

* nightly - collapsed code

* Added check for note playing to LEDs

* Usability tweaks

* TWEAE

* nightly

added extra kcs to keymap common

* turned on Plank audio

* Added backlight breathing to atomic

* reverted accidental merge

* Added music and audio toggles to Quantum.c

* Redid the audio callbacks

* Adjusted default planck layout to use the user tone naming

* tabs to spaces

* Rewrote the ALL recipe to allow for faster parallel make

* tabs to spaces

* Renamed custom event functions to be 'startup_user' and 'shutdown_user'. Also moved the prototypes around.

* Tweaked pvc atomic layout to work with the pvc planck.

* updates midi scale calling
2016-05-24 11:56:53 -04:00
Eric Tang
1ae6011cef Clean up #343's code (#348) 2016-05-24 11:44:40 -04:00
Mazin Bokhari
8090fb82ff Initial commit of keymaps/maz with default config 2016-05-24 02:26:16 -05:00
Jack Humbert
897f5b2f9d updates midi in play_note to better octave 2016-05-23 23:44:36 -04:00
Eric Tang
aaa758f1d3 Optimize matrix scanning (#343) 2016-05-23 23:42:21 -04:00
Peter
d66aa0abf9 adds petereichinger's planck keymap (#340)
* Add custom keymap

* A little readme and remove old layout comments
2016-05-20 11:14:08 -04:00
Erez Zukerman
ed349f0c3d Merge pull request #324 from Bubblepoint/master
Add adnw/k_o_y layout
2016-05-19 15:54:16 -04:00
purpleP
0275d444d7 fixed small bug with AUDIO_ENABLED (#339) 2016-05-19 08:36:28 -04:00
Jack Humbert
b732b79b49 adapts unicode to quantum.c (#333)
* Unicode

to have unicode input you need to:

- set your OS input method to UNICODE if needed
- enable unicode in your makefile
- copy the action_function from
keyboard/planck/keymaps/unicode/unicode.c to your keymap.c
set the target OS method in your keymap.c: void matrix_init_user() {
set_unicode_mode(UC_OSX); } you can then switch when you want with:
set_unicode_mode(UC_OSX); set_unicode_mode(UC_LNX);
set_unicode_mode(UC_WIN);
put some unicode codes in your keymap like so: UC(0x0061)
I did change the bit mask in quantum/keymap_common.c and .h
I’m afraid we will need uint32 to get a total support for all unicode
tables or relocate the handler as @mbarkhau did.

* rearranges keycode values, hooks-up unicode

* removes extra lalt ref

* adds unicode shortcuts and example
2016-05-18 23:47:16 -04:00
Jack Humbert
bf545061f2 outputs size when make dfuing 2016-05-18 23:16:33 -04:00
Jack Humbert
0428214b90 adds music and audio toggles (#337)
* Updated personal layouts

* tweaked personal

* Nightly - Audio Cleanup

Refactored the LUTs. Abstracted some of the registers out of audio to
use more functional names. Split audio into audio and audio_pwm. WIP

* nightly - collapsed code

* Added check for note playing to LEDs

* Usability tweaks

* TWEAE

* nightly

added extra kcs to keymap common

* turned on Plank audio

* Added backlight breathing to atomic

* reverted accidental merge

* Added music and audio toggles to Quantum.c

* Redid the audio callbacks

* music/audio_on_user
2016-05-18 23:14:00 -04:00
heartsekai
465aabe11d Added Swiss-German keymap. (#335) 2016-05-18 15:22:04 -04:00
Fred Sundvik
94519e387a Add callback function for emulator drawing 2016-05-18 09:03:42 +03:00
Fred Sundvik
fa8feb21a4 Add custom led and lcd display support 2016-05-18 08:40:36 +03:00
Jack Humbert
fe9b1482fd adds KC_NUBS, KC_NUHS and shifted versions to default keymaps 2016-05-17 22:17:23 -04:00
Fred Sundvik
07e412c538 Fix crash when event listener not created 2016-05-17 11:21:38 +03:00
Fred Sundvik
15300cb681 Build lcd_backlight_hal_emulator.c
When the emulator is set, instead of the lcd_backlight_hal.c file.
2016-05-17 09:51:27 +03:00
Fred Sundvik
4e89732617 Enable and fix compilation of more files 2016-05-17 09:45:05 +03:00
Fred Sundvik
d79e94adb1 Use ugfx API instead of chibios 2016-05-17 09:35:02 +03:00
Jack Humbert
2425fd295a fixes default planck keymap 2016-05-16 23:08:16 -04:00
Fred Sundvik
15bdef3ee9 Makefile changes to support emulator build 2016-05-16 09:45:39 +03:00
Fred Sundvik
a20d513e3c Add function to check if the keyboard is a master 2016-05-15 19:28:15 +03:00
Fred Sundvik
350bc0d22f Merge branch 'master' into led 2016-05-15 14:50:34 +03:00
Fred Sundvik
bde869aa7e Merge branch 'chibios-contrib' 2016-05-15 14:08:01 +03:00
Fred Sundvik
81f89cc672 Update include dir for new serial_link include 2016-05-15 13:43:45 +03:00
Fred Sundvik
5651be7a2f Configurable visualizer thread priority 2016-05-15 13:43:45 +03:00
Fred Sundvik
a0297a892e Rename system to serial_link
Also combined driver.h with serial_link.h
2016-05-15 13:38:59 +03:00
Fred Sundvik
b4ab61171e Configurable serializer thread priority 2016-05-15 12:59:50 +03:00
Fred Sundvik
a08bcea998 Don't accept remote objects with the wrong size
Fixes memory corruption when the crc happens to match, but the size
doesn't.
2016-05-15 11:58:20 +03:00
Fred Sundvik
3b422d2ac4 Add debug print for serial link errors
This is disabled by default
2016-05-15 11:36:39 +03:00
Jacob Bilger
b79400e0e9 Folders for each keymap.c file (#332)
* Add folders to keymaps

* test

* test
2016-05-15 01:22:51 -04:00
Jack Humbert
e2aa980ad5 cleans up default keymaps (olkb) 2016-05-15 01:07:48 -04:00
Jack Humbert
fde477a927 updates midi functionality (#331)
* implements leader key for planck experimental

* allows override of leader timeout

* adds ability to use the leader key in seq

* fixes leader keycode

* adds chording prototype

* fixes keycode detection

* moves music mode to quantum.c

* disables chording by default

* adds music sequencer functionality

* implements audio/music functions in quantum.c

* splits up process_action to allow independent processing of actions

* moves midi stuff to quantum.c

* adds additional scales for midi
2016-05-15 00:51:06 -04:00
Jack Humbert
bf5c2ccee5 splits process_action up to handle records separately (#329)
* implements leader key for planck experimental

* allows override of leader timeout

* adds ability to use the leader key in seq

* fixes leader keycode

* adds chording prototype

* fixes keycode detection

* moves music mode to quantum.c

* disables chording by default

* adds music sequencer functionality

* implements audio/music functions in quantum.c

* splits up process_action to allow independent processing of actions

* merging?
2016-05-15 00:47:25 -04:00
Jack Humbert
15719f3574 adds a sequencer to the music mode (#330)
* implements leader key for planck experimental

* allows override of leader timeout

* adds ability to use the leader key in seq

* fixes leader keycode

* adds chording prototype

* fixes keycode detection

* moves music mode to quantum.c

* disables chording by default

* adds music sequencer functionality

* implements audio/music functions in quantum.c

* Merge branch 'master' into process-record
2016-05-15 00:40:59 -04:00
Erez Zukerman
1a8c0dd22d Leader key implementation (#326)
* implements leader key for planck experimental

* allows override of leader timeout

* adds ability to use the leader key in seq

* fixes leader keycode

* adds chording prototype

* fixes keycode detection

* moves music mode to quantum.c

* disables chording by default

* updates process_action functions to return bool
2016-05-15 00:27:32 -04:00
Erez Zukerman
79d26f331a Adds explanatory note re history of TMK and QMK 2016-05-14 22:07:16 -04:00
Jacob Bilger
c7d2c79d34 adds Bilger321's planck keymap 2016-05-14 21:11:33 -04:00
Tobias Matt
26e315a6bb readme added 2016-05-14 10:04:14 +02:00
Erez Zukerman
6e72586b6b Merge pull request #320 from Townk/townkmap
Townkmap
2016-05-13 21:54:23 -04:00
Erez Zukerman
9746cd5323 Merge pull request #317 from Twey/master
Updates to `keymaps/twey` to the media layer and for Plover 3.0
2016-05-13 21:51:03 -04:00
Erez Zukerman
7b2cdca744 Merge pull request #307 from sboesebeck/master
minor change to default layouts
2016-05-13 21:50:28 -04:00
Tobias Matt
65645fb8ca Merge remote-tracking branch 'upstream/master' 2016-05-13 10:08:29 +02:00
cwhits
69f05e1afd [planck] adds button for toggling output in plover app (#323)
* [planck] toggle plover output in app when toggling plover layer on keyboard

* [planck] moved plover toggle to separate key

* [planck] renamed toggle button
2016-05-12 15:08:53 -04:00
Ryan Ascheman
d1c70328f8 update volume control to match arrow change 2016-05-12 10:32:26 -07:00
Thiago Alves
f70dec3ee9 Remove unused variable on the keymap. 2016-05-11 14:01:15 -07:00
Stephan Bösebeck
d09d2da1c2 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-05-11 22:05:19 +02:00
Thiago Alves
c7d52fda9e Add an initial Readme to the keymap. 2016-05-11 13:04:53 -07:00
Fred Sundvik
25382cb6f2 Fix compute_gradient_color 2016-05-11 22:06:26 +03:00
Erez Zukerman
5845eb05b5 [Erez & Jack] Documents audio output 2016-05-10 20:48:14 -04:00
Thiago Alves
4a041f65e2 Tweak some key positions and changed macro location.
After using the layout a while I learn that the - and = positions should be
swapped since I keep typing = when I intend to type -.

I also, removed the only macro from the top left on the right hand to put the
power button there and since I never use the arrow keys on the separated groups
of keys, I added 4 macros there to get a feel for it.
2016-05-10 16:32:18 -07:00
Thiago Alves
75384689b2 Add custom config.h and revert the changes on the global one.
Some options I defined on the config.h file don't make much sense to other
keymaps so I revert the global config.h and add those options on the keymap
custom one.
2016-05-10 16:17:30 -07:00
James ‘Twey’ Kay
a46a0ed4f3 keymaps/twey: fix documentation 2016-05-10 22:33:06 +01:00
James ‘Twey’ Kay
373e441d86 keymaps/twey: Plover 3.0 has a standard TOGGLE keybinding; use that instead 2016-05-10 22:30:17 +01:00
James ‘Twey’ Kay
b5c5b71828 keymaps/twey: Add more history keys to media layer; stop using toggleable media layer 2016-05-10 22:23:36 +01:00
Peter
e4e0b4e105 Update build guide with instructions to copy the whole keymap folder (#315) 2016-05-09 19:23:51 -04:00
Thiago Alves
c2ffedd65c Update the .hex file on the keymap folder. 2016-05-09 15:27:57 -07:00
Thiago Alves
3e43298d79 Revert the Makefile to the original one.
Make sure I customize things as much as possible inside the keymap itself.
2016-05-09 15:27:57 -07:00
Thiago Alves
85f5eaec39 Change the access to the extra layer to be simetric.
Instead of having a key on the left side for one layer and a key on the right
side for the other layer, I put two dedicated layers on each side to get to the
proper layers.
2016-05-09 15:27:57 -07:00
Thiago Alves
6d343f3559 Add my personal keymap for OSX use.
This keymap was created to have a feel keys on a different place and to have as
fewer layers as possible.

Currently I have only 2 extra layers and only one of them is really required to
have all possible keys available.

Check out the README.md file for more information.
2016-05-09 15:27:57 -07:00
Jack Humbert
3f02637f4d Backlight Breathing for Planck and Atomic
* Updated personal layouts

* tweaked personal

* Nightly - Audio Cleanup

Refactored the LUTs. Abstracted some of the registers out of audio to
use more functional names. Split audio into audio and audio_pwm. WIP

* nightly - collapsed code

* Added check for note playing to LEDs

* Usability tweaks

* TWEAE

* nightly

added extra kcs to keymap common

* turned on Plank audio

* Added backlight breathing to atomic

* reverted accidental merge

* adds backlight pulse to planck
2016-05-09 13:17:15 -04:00
Jack Humbert
684793360c quantum accommodates more than 16 columns 2016-05-09 00:36:23 -04:00
Erez Zukerman
35a72ca5e1 Adds next tab/prev tab back to symb layer and updates legend 2016-05-08 13:55:30 -04:00
Erez Zukerman
2ac27dd574 A little more tweaking 2016-05-08 13:45:26 -04:00
Erez Zukerman
897396b58f Tweaks layers 1 & 2 in my experimental layout 2016-05-08 13:39:17 -04:00
Erez Zukerman
2ce9644caa Merge pull request #311 from adiabatic/ergodox-zweihander-osx
Add KC_LABK and KC_RABK (< and >)
2016-05-06 18:28:43 -04:00
Nathan Sharfi
05db327b70 Add KC_L[LR]ABK to top-level README 2016-05-06 06:22:26 -07:00
Erez Zukerman
7566ac4241 Merge pull request #310 from nrrkeene/master
Lock layers by pressing both shift keys
2016-05-06 09:13:30 -04:00
Nathan Sharfi
c702a522b0 Rearrange code layer on Zweihander
Makes it more like the iOS keyboard (and therefore easier to remember). Also adds angle brackets for HTML and comparisons.
2016-05-06 05:47:55 -07:00
Nathan Sharfi
08f3142463 Add KC_LABK and KC_RABK (< and >) 2016-05-06 05:40:02 -07:00
Nathan Sharfi
fc4f693cad zweihander: add ⌘X, ⌘C, ⌘V to media thumb keys 2016-05-06 05:19:17 -07:00
Nicholas Keene
481c74cc56 The Ordinary Layout is the layout you are looking for. Come and see. 2016-05-05 23:18:48 -05:00
Nicholas Keene
90a6534729 The Ordinary Layout is extraordinarily familiar and powerful 2016-05-05 23:10:51 -05:00
Erez Zukerman
78bd31f28e Uses @eltang's famous macro! Still not perfect though :( 2016-05-05 23:18:46 -04:00
Erez Zukerman
bf6f3fe7f4 [Erez & Jack] Updates docs with one-shot information and config_user.h 2016-05-05 23:18:04 -04:00
Erez Zukerman
9bb368a5fb [Jack & Erez] Defines MOD_HYPR and MOD_MEH 2016-05-05 22:44:24 -04:00
Erez Zukerman
cd30f971ae [Jack & Erez] Creates a makefile.mk and a config file for the experimental layout 2016-05-05 22:24:09 -04:00
Erez Zukerman
3a9d1c4279 [Jack & Erez] Enables config_user.h per keymap 2016-05-05 22:23:32 -04:00
Erez Zukerman
8ffc73fcbd [Jack & Erez] Adds an option for user-specific config.h files 2016-05-05 22:21:39 -04:00
Erez Zukerman
f293bf2340 [Jack & Erez] Removes duplicate reference, sorts whitespace 2016-05-05 22:19:29 -04:00
Jack Humbert
41b3e399b1 adds keycode shortcuts for OSL and OSM 2016-05-05 21:50:51 -04:00
Thiago Alves
74e97eefd7 Adds oneshot layer and oneshot tap toggling (#308)
This commit is mostly a cherry-pick from `ahtn` at
https://github.com/tmk/tmk_keyboard/pull/255.

These are the changes:

* Adds ACTION_LAYER_ONESHOT
* Adds ONESHOT_TAP_TOGGLE
* Mentions sticky keys in the docs on oneshot.
2016-05-05 21:41:37 -04:00
Tom Duckering
d4520cd3ac Referencing the hex file (#309)
Seems that this is a typo. When I used the hex file it worked so presuming that means it's right ;)
2016-05-05 18:27:28 -04:00
Jack Humbert
356dba7e61 updates atreus's column mapping 2016-05-05 12:05:09 -04:00
Stephan Bösebeck
2e02886a1e remove typo 2016-05-05 16:52:40 +02:00
Stephan Bösebeck
a096d205aa making default osx more ELG conform 2016-05-05 16:48:51 +02:00
Stephan Bösebeck
7060e10669 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-05-05 16:28:47 +02:00
Nicholas Keene
5daf24b1a5 The Ordinary Layout is the most natural and powerful layout for the Ergodox EZ. Come check it out. 2016-05-04 22:17:47 -05:00
Erez Zukerman
dbb1c2f281 Merge pull request #305 from nrrkeene/master
Custom handling for shift keys, improved media layer
2016-05-04 22:31:00 -04:00
Stephan Bösebeck
660511f050 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-05-04 08:03:25 +02:00
Erez Zukerman
31a697bc05 Merge pull request #304 from adiabatic/ergodox-zweihander-osx
zweihander: comment out action_get_macro()
2016-05-03 22:27:39 -04:00
Nathan Sharfi
6bafe44486 zweihander: comment out action_get_macro() 2016-05-03 19:19:47 -07:00
Nicholas Keene
4b74eca2a5 The Ordinary Layout is arranged as close as possible to a traditional keyboard, but with extra special features 2016-05-03 20:58:27 -05:00
Nicholas Keene
575ca2b96d The Ordinary Layout works the way you expect it to, with extra powerful features 2016-05-03 20:40:15 -05:00
IBNobody
83e1cc241e Clarified audio.c (#302)
* Updated personal layouts

* tweaked personal

* Nightly - Audio Cleanup

Refactored the LUTs. Abstracted some of the registers out of audio to
use more functional names. Split audio into audio and audio_pwm. WIP

* nightly - collapsed code

* Added check for note playing to LEDs
2016-05-03 13:56:40 -04:00
Stephan Bösebeck
507db3ab13 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-05-03 08:29:55 +02:00
IBNobody
35d7081899 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-05-02 23:15:56 -05:00
Nicholas Keene
8b0274f60a Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-05-02 21:35:58 -05:00
Erez Zukerman
2c070163ff Merge pull request #300 from Twey/tweymap-momentary
Swap steno/media layers to allow using media keys in the Plover layer…
2016-05-02 21:04:13 -04:00
James ‘Twey’ Kay
1173dbd02f Swap steno/media layers to allow using media keys in the Plover layer; display all active layers, not just the top; use only momentary modifiers 2016-05-02 19:22:32 +01:00
Stephan Bösebeck
61b2b58bee Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-05-02 14:38:54 +02:00
Erez Zukerman
1ce6da2605 Merge pull request #298 from adiabatic/ergodox-zweihander-osx
ergodox-zweihander-osx: initial commit
2016-05-02 08:30:34 -04:00
Erez Zukerman
98ed12843e Merge pull request #294 from sneako/master
Add my Ergodox EZ config
2016-05-02 08:24:26 -04:00
Erez Zukerman
84b736dc7f Merge pull request #258 from romanzolotarev/master
Add Roman's single layer layout based on Norman
2016-05-02 08:24:11 -04:00
Stephan Bösebeck
0e7a3a25bb new version of the experimental layout. changed media keys in MDIA layer 2016-05-02 13:46:00 +02:00
Nicholas Keene
1076c2b122 The Ordinary Layout is the layout you are looking for. Come and see v3.14. 2016-05-01 23:16:41 -05:00
Nathan Sharfi
fe022a508f zweihander: move dim/brighten to 1/2, add ⌘Q 2016-05-01 15:12:38 -07:00
Nathan Sharfi
9b163d2feb zweihander: Add ⌘, ⌘⇧, ⌥⇥, ⌥⇧⇥ 2016-05-01 13:55:00 -07:00
Nathan Sharfi
8ec1d41a28 Ergodox EZ: add zweihander-osx.hex 2016-04-30 22:36:09 -07:00
Nathan Sharfi
262930c8d5 ergodox-zweihander: initial commit 2016-04-30 22:12:13 -07:00
Fred Sundvik
f0c8e7c495 Fix a few led test animation issues 2016-04-30 22:45:41 +03:00
Erez Zukerman
c3aa0a23ed Merge pull request #292 from abperiasamy/ergo-ab
Beginner's keymap for Ergodox-EZ
2016-04-30 14:56:58 -04:00
Anand Babu (AB) Periasamy
ed0798de24 Beginner's keymap for Ergodox-EZ 2016-04-30 11:28:38 -07:00
Olivier
dc7b606ff1 Update firmware with latest QMK code. 2016-04-30 16:06:23 +02:00
Olivier
09ea12f9ca Merge https://github.com/jackhumbert/qmk_firmware 2016-04-30 16:03:52 +02:00
Olivier
9d48ba9713 Add a macro for Ctrl+Alt+Fx. 2016-04-30 16:01:37 +02:00
Erez Zukerman
e7d56215de Merge pull request #295 from techtomas/techtomas
Add my layout to the list
2016-04-30 07:42:20 -04:00
Jack Humbert
0656f2fa10 moves backlight functionality to keyboard files and updates template makefile
previously there were two backlight.c files (bad)
2016-04-29 22:19:40 -04:00
Jack Humbert
9ab7098c83 fixes plover start sound 2016-04-29 21:21:08 -04:00
Thomas Anderson
fb57b2e55d Added readme 2016-04-29 17:25:14 -07:00
Thomas Anderson
711809fdac Finalized my personal layout 2016-04-29 14:42:31 -07:00
Erez Zukerman
9edcfcdf6f Adds brackets to inner vertical keys in experimental layout 2016-04-29 22:39:05 +03:00
Jack Humbert
66e0323881 removes extra voices, updates .hex files 2016-04-29 12:42:55 -04:00
Jack Humbert
2bbf3d5820 stops forcing debug_action 2016-04-28 23:23:33 -04:00
Jack Humbert
27d24faf39 adds condition to one last audio ref in planck default 2016-04-28 23:11:09 -04:00
skullY
ca9b85f702 Bring the clueboard firmware size down 2016-04-28 20:07:07 -07:00
sneako
b79124ac14 Adding .hex file 2016-04-28 22:20:25 -04:00
sneako
38858338f8 Add my Ergodox EZ config 2016-04-28 21:58:29 -04:00
Erez Zukerman
4f998657e9 Addresses #290 2016-04-29 04:47:06 +03:00
Tobias Matt
4122ad3f7b switch shift and enter thumb key 2016-04-28 15:09:34 +02:00
Tobias Matt
a101d9ebcd update hex file 2016-04-28 15:02:40 +02:00
Tobias Matt
d4710d8d7a shift to thumb key 2016-04-28 15:01:27 +02:00
skullY
ce7dc30cc8 Updating my entry in the README 2016-04-27 10:12:51 -07:00
Christopher Browne
c2a3df3123 Saving crontab for user on host 2016-04-27 12:52:47 -04:00
Christopher Browne
f59c4b03fa Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-27 12:34:54 -04:00
IBNobody
ce75a7675e Updated personal layouts (#291) 2016-04-27 00:25:16 -04:00
a0-c
8fda26db7d gh60 Rev C with LED controls (#289)
* gh60_rev_c

* gh60 Rev C

Support for WASD, Poker, Esc, FN LED clusters

* clean up spacing

* Update README.md

* Added image and pinout

* PCB image
2016-04-26 20:05:05 -04:00
Jack Humbert
e024c11f7a actually resolves conflicts in rgblight.c 2016-04-26 13:50:04 -04:00
Jack Humbert
c37d52d213 resolves conflicts in rgblight.c
# Conflicts:
#	quantum/rgblight.c
2016-04-26 13:48:36 -04:00
Jack Humbert
27e3294909 updates README, fixes typo in new_project.sh 2016-04-26 13:44:27 -04:00
Erez Zukerman
0edc7a9d87 Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2016-04-26 14:25:45 +03:00
Erez Zukerman
ea091e7f1b Honing in on an interval that works for me 2016-04-26 14:25:35 +03:00
Roman Zolotarev
bf925fb71c Add Roman's layout with QWERTY 2016-04-26 16:46:43 +08:00
Roman Zolotarev
28f0b64e31 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-26 16:23:10 +08:00
Tobias Matt
d280a59c82 add hex file 2016-04-26 08:43:56 +02:00
Tobias Matt
0181663771 organize in subfolder 2016-04-26 08:41:17 +02:00
Jack Humbert
bf56838fe9 adds freq LUT for future use 2016-04-26 01:17:00 -04:00
Jack Humbert
140b97a1cd adds delayed vibrato 2016-04-26 01:16:47 -04:00
Bubblepoint
57789c64bd basic layout 2016-04-26 05:39:33 +02:00
Erez Zukerman
6274a216f8 [Erez & Jack] Examples for advanced macro stuff 2016-04-26 05:25:31 +03:00
Ryan Ascheman
7929ee4879 update readme 2016-04-25 15:40:52 -07:00
Erez Zukerman
aabcfd5b4e Merge pull request #282 from jasontwong/master
Add new keymap
2016-04-25 06:57:00 -04:00
Jack Humbert
28352f4619 adds revisions of .hex files for planck/preonic 2016-04-25 01:01:41 -04:00
Jack Humbert
0889cc0d9a removes old .hex files 2016-04-25 01:00:34 -04:00
Jack Humbert
e7b6bb641c updates default voice, prunes voices 2016-04-25 00:59:47 -04:00
Jack Humbert
170d9b7d15 addresses memory limits concerns for atomic default makefile 2016-04-25 00:25:49 -04:00
Jack Humbert
9fb1e5441f updates preonic default keymap 2016-04-25 00:22:35 -04:00
Jack Humbert
130a485bf7 updates planck default keymap 2016-04-25 00:15:23 -04:00
Jason T. Wong
9f8f34119a Compiled Hex File
The keymap file to use without compilation.
2016-04-24 22:14:09 -04:00
IBNobody
f32f80cf32 updating personal atomic keymap (#285) 2016-04-24 22:06:59 -04:00
Erez Zukerman
68532ced24 Merge pull request #280 from Twey/master
Add `quantum/keymap_extras/keymap_plover.h` and a keymap.
2016-04-24 20:33:38 -04:00
James ‘Twey’ Kay
5713083e91 Add Twey's keymap 2016-04-25 01:08:36 +01:00
Fred Sundvik
6313cfd559 Fix some makefile issues, and symbol issues 2016-04-24 17:44:11 +03:00
Fred Sundvik
74baa4895c Run mirrored keyframes for led tests as well 2016-04-24 16:40:41 +03:00
Fred Sundvik
15906b86ae LEDS are flushed automatically
After running the animation, instead of having to do it manually.
This avoids duplicate flushing, and better support for cross-fades.
2016-04-24 16:26:53 +03:00
Fred Sundvik
0530ebb77d Add led crossfading 2016-04-24 16:20:00 +03:00
Fred Sundvik
891edbd533 Add function for running the next keyframe 2016-04-24 16:19:31 +03:00
Fred Sundvik
444132edd0 Add last and first update of frame for anims 2016-04-24 15:45:52 +03:00
Fred Sundvik
0e0488623e Add left to right gradient keyframe for leds 2016-04-24 14:54:40 +03:00
Fred Sundvik
a960a1b006 Add fade out for the led test 2016-04-24 14:10:01 +03:00
Fred Sundvik
c95b17b536 Add simple led support
Also the first version of a led testing animation
2016-04-24 13:46:19 +03:00
Jason T. Wong
93da70a43a Update keymap image
Why:

* The transparency made it ugly.

This change addresses the need by:

* Make transparent parts white.
2016-04-23 23:36:41 -04:00
Jack Humbert
def6853532 adds voice iteration to planck default 2016-04-23 23:30:09 -04:00
Jason T. Wong
762065578b Add new keymap
Why:

* I want a custom keymap that suits my needs.

This change addresses the need by:

* Cloned default keymap.
* Customized layout.
* Updated README.
* Add an image created from keyboard layout editor.
2016-04-23 23:21:13 -04:00
James ‘Twey’ Kay
7ccfaf750d Add a keymap_extras header for Plover 2016-04-23 18:49:10 +01:00
Eric Tang
eb09c450de Fix typo (#276) 2016-04-22 16:44:50 -04:00
Jack Humbert
a718c53fe7 adds more voice harmonics 2016-04-22 11:58:29 -04:00
Jack Humbert
a8086126fe Merge remote-tracking branch 'origin/master'
# Conflicts:
#	quantum/audio/voices.c
2016-04-22 01:04:13 -04:00
Jack Humbert
b1900c8dde adds fifth and fourth down voices 2016-04-22 01:02:50 -04:00
IBNobody
082a0f313d fixed compiler warnings (#273) 2016-04-22 01:01:38 -04:00
Jack Humbert
7b3f212500 adds more voices, fixes macro redefines 2016-04-21 23:10:49 -04:00
Jack Humbert
fa40e91b56 Merge pull request #271 from eltang/qmk_firmware/eeprom_wear_fix
Update functions used to write to EEPROM
2016-04-21 23:10:00 -04:00
Eric Tang
620ac4b260 Update functions used to write to EEPROM 2016-04-21 20:07:03 -07:00
Jack Humbert
9828aba2a1 adds multiple voices and the ability to iterate/deiterate between them 2016-04-21 18:14:25 -04:00
Erez Zukerman
a8fd65d86f Merge pull request #265 from sboesebeck/master
ErgodoxLayoutGenerator used
2016-04-21 08:10:39 +03:00
Jack Humbert
e89b806b85 converts tabs to spaces 2016-04-21 00:40:00 -04:00
Jack Humbert
73228f5e5d restructures audio, begins voicing 2016-04-21 00:37:45 -04:00
Jack Humbert
2e60054951 fade envelope 2016-04-20 23:16:39 -04:00
Jack Humbert
2e303b40ae start of envelope function 2016-04-20 22:29:01 -04:00
Jack Humbert
7d1a683607 sounds for plover layout 2016-04-20 22:28:47 -04:00
Jack Humbert
157ddccc2c start-up sound working, removes tick with some devices 2016-04-20 20:11:05 -04:00
Jack Humbert
0fd093b400 there is no on 2016-04-20 18:41:10 -04:00
Jack Humbert
b0635e58eb delay isn't the problem here 2016-04-20 18:39:36 -04:00
Jack Humbert
b8c932f9aa makes the plover keymap correct 2016-04-20 18:39:17 -04:00
Stephan Bösebeck
e065ff8cba changed the macro generation of the ELG to use UP, DOWN, TYPE instead of U,D,T - makes it work with custom keycodes 2016-04-20 22:34:02 +02:00
Stephan Bösebeck
17140ec082 added some words about the ELG in the readme 2016-04-20 11:16:29 +02:00
Stephan Bösebeck
13244a259c Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-20 11:15:59 +02:00
Jack Humbert
f489ae1ac0 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2016-04-20 01:08:27 -04:00
Jack Humbert
de4690593c fixed startup audio with a 500ms delay 2016-04-20 01:08:17 -04:00
Erez Zukerman
a9ef1c0a03 Merge pull request #267 from nrrkeene/master
Improved modifier keys, code
2016-04-20 07:48:54 +03:00
Nicholas Keene
5319c2cd6e The Ordinary Layout is the layout you are looking for. Come and see. 2016-04-19 21:56:50 -05:00
Jack Humbert
462601f5e8 breaking changes - restructuring audio.c a little 2016-04-19 21:25:48 -04:00
Stephan Bösebeck
f645f9946c re-created all layouts using ErgodoxLayoutGenerator 2016-04-19 23:27:10 +02:00
Ryan Ascheman
c1f143124d initial changes, no doc changes 2016-04-19 14:21:23 -07:00
Stephan Bösebeck
6ff5e10592 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-19 23:07:11 +02:00
Jack Humbert
a2ee277158 updated comments about plover 2016-04-19 17:03:43 -04:00
Jack Humbert
6ae34f20aa added plover to default layout 2016-04-19 17:01:04 -04:00
Jack Humbert
fd49dfe5cb vibrato and polyphony paratmeters 2016-04-19 17:00:45 -04:00
Jack Humbert
d3fc077fa3 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2016-04-19 12:58:16 -04:00
Jack Humbert
a2f31c886f getting ready for getters and setters 2016-04-19 12:58:13 -04:00
Stephan Bösebeck
04f36b3681 new overview pic 2016-04-19 15:59:43 +02:00
Jack Humbert
4e0e2504ad Merge pull request #264 from ericlathrop/patch-1
Fix typo
2016-04-19 09:54:46 -04:00
Eric Lathrop
2b38d74795 Fix typo 2016-04-19 08:49:42 -04:00
Stephan Bösebeck
a16a9b30b6 added new macro for toggling and holiding layer 2016-04-19 10:37:37 +02:00
Stephan Bösebeck
0fbc52809e new experimental layout 2016-04-19 07:50:29 +02:00
Jack Humbert
78b3a88154 merging in #262 2016-04-18 21:04:29 -04:00
Jack Humbert
f2c1e9ddd4 Merge pull request #262 from IBNobody/master
Fixed keyboard snoring while asleep
2016-04-18 21:03:21 -04:00
Jack Humbert
e49712b559 note sliding - on right now 2016-04-18 21:01:48 -04:00
IBNobody
499e3096e9 Merge pull request #2 from IBNobody/personal_atomic_planck
Fixed speaker being on during sleep.
2016-04-18 19:48:52 -05:00
IBNobody
4b3358acc2 Fixed speaker being on during sleep. 2016-04-18 18:58:37 -05:00
IBNobody
cbcf0abe62 Merge remote-tracking branch 'refs/remotes/origin/personal_atomic_planck' 2016-04-18 15:47:10 -05:00
IBNobody
4f4b5b8c18 Added CM/DK 2016-04-18 01:58:25 -05:00
Stephan Bösebeck
42fad96be5 added smly layer again 2016-04-18 08:27:58 +02:00
Stephan Bösebeck
9cc39156f7 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-18 08:03:22 +02:00
IBNobody
82ec81660e Merge remote-tracking branch 'refs/remotes/jackhumbert/master' into personal_atomic_planck 2016-04-17 23:16:36 -05:00
IBNobody
ef73ab6628 Notes Bugfix 2016-04-17 22:08:05 -05:00
Jack Humbert
89a78f4a11 audio fixes 2016-04-17 21:26:06 -04:00
Jack Humbert
5a15c113d7 Merge branch 'personal_atomic_planck' of github.com:IBNobody/qmk_firmware 2016-04-17 21:15:50 -04:00
IBNobody
5c98ad5960 Added extra songs, LED indicator notes 2016-04-17 20:14:37 -05:00
Jack Humbert
d94960be5b Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2016-04-17 18:19:46 -04:00
Jack Humbert
e0ab1dcf4c merging 2016-04-17 18:15:35 -04:00
Jack Humbert
ce463ef424 audio fixes 2016-04-17 18:14:42 -04:00
Jack Humbert
f1fdeddad3 Merge pull request #261 from a0-c/master
__attribute__ ((weak)) added to led_set
2016-04-17 17:47:26 -04:00
Stephan Bösebeck
6732d6cf1a new png 2016-04-17 23:04:43 +02:00
Stephan Bösebeck
a9d8c61dbd new iteration, change of lower row 2016-04-17 23:02:29 +02:00
Stephan Bösebeck
6d40f7c506 added new experimental layout - works with ErgodoxLayoutGenerator 2016-04-17 22:19:47 +02:00
Stephan Bösebeck
7c3345f9b9 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-17 22:17:40 +02:00
IBNobody
23231fa577 Converted goodbye to notes, fixed eighth dotted note macro 2016-04-17 14:16:03 -05:00
Olivier
edb2996299 Use aliases where available. No firmware change. 2016-04-17 20:22:07 +02:00
Olivier
920e0865b6 Commit firmware up-to-date with latest upstream qmk_firmware changes. 2016-04-17 20:00:09 +02:00
IBNobody
3103ea542f Merge remote-tracking branch 'remotes/jackhumbert/master' into personal_atomic_planck 2016-04-17 12:55:19 -05:00
IBNobody
d5b72e7bde Fixed many compiler warnings related to print being disabled 2016-04-17 12:54:32 -05:00
Olivier
b03a9f7252 Merge https://github.com/jackhumbert/qmk_firmware 2016-04-17 19:54:06 +02:00
a0-c
90289aa53f __attribute__ ((weak)) added to led_set
__attribute__ ((weak)) added to led_set
2016-04-17 06:51:39 -10:00
IBNobody
c940e87235 fixed single note play copy/paste bug 2016-04-17 10:41:07 -05:00
Jack Humbert
319fbe344b Merge branch 'personal_atomic_planck' of github.com:IBNobody/qmk_firmware 2016-04-17 10:56:12 -04:00
Olivier
0715cf46ac Add underscore "_" character in the qwerty compatibility layer. 2016-04-17 12:15:23 +02:00
IBNobody
29e495be2a Added trimble and tempo adjustments! 2016-04-17 02:52:38 -05:00
IBNobody
943b5b7709 Adding folding to #if, etc 2016-04-17 00:24:58 -05:00
Jack Humbert
a67d425f4d planck default layout updates 2016-04-17 01:00:39 -04:00
Jack Humbert
e7b9959819 no need for length of play_notes array with macro 2016-04-16 23:15:40 -04:00
IBNobody
45f10b4c4b Fixed how note arrays are used. 2016-04-16 22:10:18 -05:00
Jack Humbert
720e67e558 Merge branch 'personal_atomic_planck' of github.com:IBNobody/qmk_firmware 2016-04-16 23:08:12 -04:00
Jack Humbert
8bbd064cf5 changes to play_notes, goodbye 2016-04-16 23:07:50 -04:00
IBNobody
12a9b2b9ae Merge remote-tracking branch 'remotes/jackhumbert/master' into personal_atomic_planck 2016-04-16 20:37:44 -05:00
IBNobody
a87522033d Merging with QMK main to fix rest issues 2016-04-16 20:37:22 -05:00
Jack Humbert
41cc35425a rests between notes as an argument 2016-04-16 21:31:40 -04:00
Jack Humbert
8f4ce501eb Merge pull request #260 from IBNobody/personal_atomic_planck
Atomic TLC and musical note freqs for audio
2016-04-16 21:02:17 -04:00
IBNobody
bc65f73c64 Merge remote-tracking branch 'remotes/jackhumbert/master' into personal_atomic_planck 2016-04-16 19:32:29 -05:00
IBNobody
4aea806aa8 Adding Musical Notes 2016-04-16 19:31:32 -05:00
IBNobody
b5c22ab5b5 Merging with QMK main to fix audio issues 2016-04-16 19:27:21 -05:00
Jack Humbert
c83aa16f1d fixes audio prescaler to emit correct freq 2016-04-16 20:26:02 -04:00
Jack Humbert
b8d2e66638 readme clarity for rgbleds 2016-04-16 19:30:15 -04:00
Jack Humbert
ab19ebd08a MAGIC functionality, AG swap in default layout 2016-04-16 18:51:58 -04:00
Olivier
5df222d3e0 Even more compatibility with QWERTY systems : added most useful characters needing AltGr on a bepo layout. This compatibility layer is still not perfect, but now usable to type with a bepo-like layout on a qwerty system. 2016-04-16 23:33:18 +02:00
Stephan Bösebeck
38a1d830fa Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-16 22:56:33 +02:00
Olivier
12f13eeef4 More compatibility with QWERTY systems. 2016-04-16 22:48:09 +02:00
Jack Humbert
5f648b6c40 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2016-04-16 15:47:20 -04:00
Jack Humbert
86169833c5 updates to preonic default, music mode integrated 2016-04-16 15:47:17 -04:00
Olivier
536e52a05a Simple layer to allow the keyboard to act like a bepo keyboard when plugged on a qwerty system. Doesn't work with modifiers for now. 2016-04-16 20:01:44 +02:00
Olivier
6b8fdb90bc Add mouse navigation keys on a new layer. 2016-04-16 19:23:39 +02:00
Olivier
0cd070d814 More concise, no functional change. 2016-04-16 18:56:31 +02:00
Olivier
6dc48384f3 Allow the "00" keypad key to act like a repeating 0 when held down. 2016-04-16 18:06:16 +02:00
Olivier
d3bc854ddf Correct a bug with stuck modifier keys when they were used with other layers (like when selecting with shift and navigation keys) and released before the layout switch keys. 2016-04-16 15:13:02 +02:00
Olivier
5b74261aa9 Second try with a (maybe) more practical layout :
- layer modifiers in the thumb clusters, Alt-F1 - Alt-F4 should now be easier to type
- new Alt and Ctrl keys in the bottom row are more easily reachable with thumbs than the little thumb cluster keys, and feel more like traditional keyboards
- thumb backspace wasn't great due to lower precision and repeat rate than index fingers
2016-04-16 14:53:08 +02:00
Olivier
9a7fd7cb4d Merge branch 'master' of https://github.com/gid0/qmk_firmware 2016-04-16 14:01:00 +02:00
Olivier
c2c939af4e Layout preview generated on keyboard-layout-editor.com. 2016-04-16 13:51:19 +02:00
Olivier
560873f13a Layout preview generated on keyboard-layout-editor.com. 2016-04-16 13:51:19 +02:00
Roman Zolotarev
fa2eedb7bd Add Roman's single layer layout based on Norman 2016-04-16 16:57:58 +08:00
Jack Humbert
9eadeb574b Merge pull request #257 from VoodaGod/bone2planck
Bone2 Layout adptation for Planck
2016-04-16 01:24:03 -04:00
Jack Humbert
142ce47698 added keymap_extras to path 2016-04-16 01:23:08 -04:00
Jack Humbert
d81ef5b7eb new defaults for planck and preonic 2016-04-16 01:19:37 -04:00
Jack Humbert
0b0ec82427 eeprom reset tool 2016-04-16 00:01:22 -04:00
Jack Humbert
c294636c66 audio on by default 2016-04-15 23:46:35 -04:00
IBNobody
9d4bfc1bcf Corrected layer macros 2016-04-15 22:40:07 -05:00
Jack Humbert
0faa18eab9 audio enable stored in eeprom 2016-04-15 23:38:21 -04:00
Jason Janse van Rensburg
549b797ad1 My Attempt at adapting the Bone2 layout with Neo2 navigation cluster & number block to the Planck.
Very much a WIP, will most likely start tweaking further once my Planck kit has dropped
2016-04-16 01:36:18 +02:00
IBNobody
2aa51e4416 Tweaking PVC atomic layout 2016-04-15 16:32:44 -05:00
Jack Humbert
9111963663 Merge pull request #256 from jackhumbert/new_defaults
New default planck layout, audio fixes, makefile overwrites, tri-layer quantum-wide
2016-04-15 16:19:43 -04:00
IBNobody
8f85117aa9 Added Audio to my Atomic 2016-04-15 14:42:50 -05:00
IBNobody
39e520c010 Prepping for merge with new_defaults 2016-04-15 13:09:42 -05:00
Jack Humbert
ee2ee7f4f0 audio note length fixes 2016-04-15 13:44:07 -04:00
Jack Humbert
bb0836c620 the spacessss 2016-04-15 00:26:22 -04:00
Jack Humbert
43a4ffc259 bootmagic somehow not getting enabled, so adding eeconfig to backlight src include cond 2016-04-14 23:53:35 -04:00
Jack Humbert
2597fb7c50 might have broken something 2016-04-14 23:33:46 -04:00
IBNobody
66c1024bd3 fixed merging 2016-04-14 22:33:18 -05:00
IBNobody
d4f90fe882 Merge remote-tracking branch 'remotes/jackhumbert/new_defaults' 2016-04-14 22:29:33 -05:00
IBNobody
3993afbb2e adding new per-keymap makefile 2016-04-14 22:27:28 -05:00
Nicholas Keene
63656ea34f The Ordinary Layout is the layout you are looking for. Come and see. 2016-04-14 22:00:15 -05:00
Jack Humbert
63462bf8c1 changing up the makefile a bit 2016-04-14 20:42:14 -04:00
Jack Humbert
ddbe430778 new defaults 2016-04-14 19:13:24 -04:00
IBNobody
f051496f13 Checkin 2016-04-14 18:01:29 -05:00
Stephan Bösebeck
990254edec Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-14 21:47:33 +02:00
IBNobody
cf17687f29 Adding personal build file settings 2016-04-14 12:59:16 -05:00
IBNobody
3dd20f2b6c Rename pc.c to pvc_planck.c 2016-04-14 11:35:49 -05:00
IBNobody
d5cc31d7d4 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' into pc_atomic_planck 2016-04-14 08:58:10 -05:00
IBNobody
3d601c1bce Rename pc.c to pvc_planck.c 2016-04-14 08:56:27 -05:00
IBNobody
19061f2ff1 Update and rename pc_atomic.c to pvc_atomic.c 2016-04-14 08:54:22 -05:00
IBNobody
4b4d3069b4 Update and rename pc_atomic.c to pvc_atomic.c
Also removed unused FNs
2016-04-14 08:50:01 -05:00
IBNobody
59e041672c Remapped magic bootloader key to B. 2016-04-14 08:20:55 -05:00
IBNobody
44e4320b2e Nightly 2016-04-14 06:34:56 -05:00
Jack Humbert
bdb6dceaeb Merge pull request #254 from IBNobody/master
Atomic TLC / Compiler Warning Fixes
2016-04-13 23:31:35 -04:00
IBNobody
7ff57503c6 Merge pull request #1 from IBNobody/pc_planck
Corrected minor spacing issues
2016-04-13 22:08:00 -05:00
IBNobody
2900b48845 Added parenthesis to midi macro. 2016-04-13 22:04:44 -05:00
IBNobody
95a44cdf01 Disabled print. 2016-04-13 22:00:36 -05:00
IBNobody
aa9eaa9773 Corrected spacing. 2016-04-13 21:56:27 -05:00
IBNobody
9ff9317720 Corrected spacing. 2016-04-13 21:55:04 -05:00
IBNobody
02893a9d5c Merge remote-tracking branch 'refs/remotes/origin/master' into pc_planck 2016-04-13 21:45:02 -05:00
IBNobody
e0ddbba1ef Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-04-13 21:30:04 -05:00
IBNobody
1689f275ac Merge https://github.com/IBNobody/qmk_firmware into pc_planck 2016-04-13 21:22:36 -05:00
IBNobody
c8c6409442 Merge remote-tracking branch 'refs/remotes/origin/pc_planck' 2016-04-13 21:07:08 -05:00
IBNobody
517c53efac Merge remote-tracking branch 'refs/remotes/origin/master' into pc_planck 2016-04-13 20:58:08 -05:00
IBNobody
3755ef5ddb Compiler Warnings / Atomic TLC
Corrected compiler warnings for a number of issues.  Gave Atomic some
TLC.
2016-04-13 20:57:51 -05:00
IBNobody
01f5b35396 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' into pc_planck 2016-04-13 19:14:23 -05:00
IBNobody
106e2414df Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-04-13 18:49:13 -05:00
IBNobody
390fd3107a local files
local files
2016-04-13 18:48:25 -05:00
IBNobody
caf3e48de8 LOCAL COMMIT
LOCAL COMMIT
2016-04-13 17:40:16 -05:00
skullY
21d4cafb8c Fixup rgb underlight for clueboard1 2016-04-13 14:20:08 -07:00
Jack Humbert
200d5f5068 Merge pull request #252 from Vifon/modifier-release-fix
Optimize source_layers_cache for the cache memory
2016-04-13 16:38:14 -04:00
Wojciech Siewierski
02a3d77940 Optimize source_layers_cache for the cache memory
Swapping the array indices should increase the locality of the memory access.
2016-04-13 22:24:42 +02:00
IBNobody
3a601e76e4 Adding PC Atomic 2016-04-13 14:43:09 -05:00
Christopher Browne
6ec6b61353 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-13 12:02:51 -04:00
Stephan Bösebeck
a71ab3ebb6 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-12 15:39:18 +02:00
IBNobody
ff06eaf853 Added del 2016-04-12 08:17:02 -05:00
IBNobody
5ef6978cab Adding personal files 2016-04-12 06:55:26 -05:00
Erez Zukerman
a0194d7e5f Merge pull request #249 from nrrkeene/master
Version 3, Ordinary Perfected
2016-04-12 09:04:29 +03:00
Erez Zukerman
98497e648d Merge pull request #248 from J3RN/master
Vim-style navigation for j3rn layout
2016-04-12 08:55:24 +03:00
Nicholas Keene
93de95d0cd The Ordinary Layout is the layout you are looking for. Come and see. 2016-04-11 23:34:41 -05:00
Nicholas Keene
96f75f39c8 The Ordinary Layout is the layout you are looking for. Come and see. 2016-04-11 23:28:16 -05:00
Nicholas Keene
efffbe35c8 The Ordinary Layout is the layout you are looking for. Come and see. 2016-04-11 22:51:12 -05:00
IBNobody
6ef262951c Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-04-11 22:10:15 -05:00
Jonathan Arnett
7635958270 Merge pull request #1 from J3RN/vim-navigation
Added Vim-style navigation
2016-04-11 19:22:23 -04:00
Jonathan Arnett
9e2c767c45 Added README note about Vim-style navigation 2016-04-11 19:19:20 -04:00
Jonathan Arnett
4b03a0f3d5 Stylistic changes 2016-04-11 19:08:24 -04:00
Jonathan Arnett
aaa7af752c Make a also toggle Media layer 2016-04-11 19:01:39 -04:00
zozo
aeb027ed60 First version of a bepo (french layout based on Dvorak rules) keymap. 2016-04-11 23:27:27 +02:00
Olivier
8f76f1a848 First version of a bepo (french layout based on Dvorak rules) keymap. 2016-04-11 23:27:27 +02:00
Erez Zukerman
511c843829 Merge pull request #246 from romanzolotarev/master
Add a new layout with arrows in the home row
2016-04-11 23:02:08 +03:00
Erez Zukerman
58f2c6fcf2 Merge pull request #246 from romanzolotarev/master
Add a new layout with arrows in the home row
2016-04-11 23:02:08 +03:00
Stephan Bösebeck
c2e1d69f27 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-11 21:54:55 +02:00
Jack Humbert
d342989f25 Merge pull request #244 from nicosuave/add_nico_planck_keymap
Add nico keymap
2016-04-11 14:52:10 -04:00
Jack Humbert
472e920c03 Merge pull request #236 from tak3over/master
Minor Doc Changes.
2016-04-11 14:51:37 -04:00
Jack Humbert
27e15b5d9f Merge pull request #247 from NoahAndrews/fix-path-script
Fix important bugs in the path script for Windows
2016-04-11 14:50:01 -04:00
Jack Humbert
9837e69a8f Merge pull request #232 from IBNobody/master
Added Error Checking to 2nd Setup Script
2016-04-11 14:37:51 -04:00
NoahAndrews
b437de8874 Added admin privilege check
Running this as a non-administrator appears to work at first, but the
changes wouldn't stick on my Win 8.1 system.  It's weird, but this
script needs to run as admin.
2016-04-11 14:30:15 -04:00
IBNobody
e4d2b90bda Fixed CD 2016-04-11 13:20:22 -05:00
NoahAndrews
5b86028d14 Updated comment 2016-04-11 14:14:15 -04:00
NoahAndrews
1bc05ac85f Remove failing check
NEWPATH1 (C:\MinGW\msys\bin) won't actually be created until the second
script is run
2016-04-11 14:09:42 -04:00
Roman Zolotarev
f26985ad16 Add HJKL layout 2016-04-11 21:45:10 +08:00
Roman Zolotarev
d532b04dc1 Add HJKL layout 2016-04-11 21:45:10 +08:00
skullY
97f8f37876 Fixup RGBLIGHT support for clueboard2 2016-04-10 21:16:49 -07:00
Nico Ritschel
077aee09a4 Add my keymap 2016-04-09 11:34:01 -07:00
Fred Sundvik
61f7761c03 Update ugfx with ChibiOS 4 support.
Also change the URL to fredizzimo bitbucket
2016-04-09 19:49:52 +03:00
skullY
dc451b505b Add a help message to new_project.sh 2016-04-07 15:09:53 -07:00
tak3over
9e153b1a5c another modification of layers, restored arrow keys and added cut/paste 2016-04-07 10:54:11 -05:00
Erez Zukerman
2557b91644 [Erez & Jack] Documents tri-layer and keymap-specific makefile options 2016-04-07 15:45:11 +03:00
Erez Zukerman
9cfc74c35b [Erez & Jack] Makes tri-layer available across Quantum 2016-04-07 15:21:06 +03:00
Stephan Bösebeck
0befb25739 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-06 22:52:49 +02:00
Erez Zukerman
153a6fb0d3 Merge pull request #182 from Vifon/modifier-release-fix
Fix the layer-dependent modifiers handling
2016-04-06 22:47:31 +03:00
Erez Zukerman
27ee47d0bd Merge pull request #239 from DidierLoiseau/issue-221
Fix issue #221: LGUI(KC_LSFT) does not work
2016-04-06 22:37:02 +03:00
Erez Zukerman
d07a1257b3 Merge pull request #215 from nrrkeene/master
Added proper documentation
2016-04-06 22:35:17 +03:00
Erez Zukerman
04e4428e8c Merge pull request #238 from alexjj/master
Submitting my ergodox EZ layout
2016-04-06 22:34:46 +03:00
tak3over
e89fd63426 switched raise and lower layers 2016-04-06 11:12:58 -05:00
skullY
0da53d3811 Fixup the cluepad code 2016-04-05 20:27:40 -07:00
skullY
34dd96187c Fix the clueboard2 led code 2016-04-05 20:27:24 -07:00
Didier Loiseau
8d6bbf2757 Fix issue #221: LGUI(KC_LSFT) does not work
- on mod keys, register LGUI, LSFT etc. as normal mods
   instead of weak mods:
  - they won't be cleared by layer switching
  - LSFT(KC_LGUI) will now have the same behavior as LGUI(KC_LSFT)
2016-04-06 01:07:36 +02:00
Didier Loiseau
db35212422 Removed D(LSFT) is CSA macros
Were causing stuck LSFT weak mods.
2016-04-06 01:07:34 +02:00
Didier Loiseau
81a889c97d Add delay to CSA macros using dead keys
With the BÉPO over CSA on Windows, the dead keys stop working after a
while, like in
http://superuser.com/questions/776558/suddenly-dead-keys-dont-work

I suspect this is triggered by too fast typing from macros.
2016-04-06 01:05:53 +02:00
Didier Loiseau
08871e56f7 Fix issue #221: LGUI(KC_LSFT) does not work
on mod keys, register LGUI, LSFT etc. as normal mods
 instead of weak mods:
 - they won't be cleared when pressing another key (#188)
 - they won't be cleared by layer switching
 - LSFT(KC_LGUI) will now have the same behavior as LGUI(KC_LSFT)
2016-04-06 00:30:50 +02:00
Didier Loiseau
5bc69c5b0a Fixed compilation issues 2016-04-06 00:09:03 +02:00
tak3over
4eadc2a977 updated my keymap 2016-04-05 16:39:45 -05:00
tak3over
028dd16fe6 Modified keymap 2016-04-05 16:21:45 -05:00
Alex Johnstone
9bd1caed44 Updated hex 2016-04-05 15:51:13 +01:00
Alex Johnstone
50ac511b56 💷 typo 2016-04-05 07:49:35 -07:00
Alex Johnstone
3fd62428a6 💷 typo 2016-04-05 07:48:13 -07:00
Alex Johnstone
1facc53a26 Merge pull request #5 from jackhumbert/master
Sync with upstream
2016-04-05 07:44:37 -07:00
Jack Humbert
931b0a79fc updates to noise 2016-04-05 09:44:01 -04:00
Jack Humbert
e1020672ac Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2016-04-05 09:21:49 -04:00
Jack Humbert
976d0a327b add silent notes 2016-04-05 09:21:44 -04:00
Wojciech Siewierski
567f256c5d Refactor the source layer cache encoding 2016-04-05 11:08:04 +02:00
tak3over
2a488d1597 Update tak3over.c 2016-04-04 16:51:30 -05:00
Stephan Bösebeck
75c24499f3 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-04 22:35:48 +02:00
tak3over
2ba0de8fcd Merge pull request #2 from jackhumbert/master
Update from source
2016-04-04 13:41:37 -05:00
tak3over
ecc8e9230b Merge pull request #1 from tak3over/tak3over-patch-1
Minor documentation error.  Raise and Lower.
2016-04-04 13:23:53 -05:00
tak3over
9cd0c9d589 Minor documentation error. Raise and Lower.
The Raise and Lower keys were transposed in the comment key map for all layers. Assuming _RS and _LW should be mapped to Raise and Lower respectively.  Probably is the same in the other custom keymaps that copied from this default.
2016-04-04 13:19:19 -05:00
Erez Zukerman
0cdf5d292c Merge pull request #235 from mbarkhau/master
add indent to generated keymap
2016-04-04 08:04:31 +03:00
Stephan Bösebeck
dee6a4338a minor updates - new PNG 2016-04-03 23:48:22 +02:00
Jack Humbert
a90d68739a music mode file 2016-04-03 16:00:10 -04:00
Manuel Barkhau
22691de580 add indent to generated keymap 2016-04-03 21:46:32 +02:00
Erez Zukerman
13dcbfdab1 Links to build guide 2016-04-03 12:52:08 +03:00
Wojciech Siewierski
47dd29513e Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware into modifier-release-fix 2016-04-03 11:23:00 +02:00
Erez Zukerman
8d39263d24 Merge pull request #213 from mbarkhau/master
Add manuneo layout
2016-04-03 08:56:08 +03:00
Erez Zukerman
ddd122c0f0 Merge pull request #234 from sboesebeck/master
several iterations later
2016-04-03 08:46:14 +03:00
Manuel Barkhau
381a9fd553 use action function for unicode 2016-04-02 23:12:38 +02:00
Wojciech Siewierski
8ef14d09b8 Update PREVENT_STUCK_MODIFIERS documentation in README 2016-04-02 19:45:02 +02:00
Wojciech Siewierski
4dce7258d1 Cleanup after merge
- remove a superfluous parenthesis
- wrap lines longer than 80 characters
- add const specifiers where appropriate
- remove unnecessary casts
2016-04-02 19:29:01 +02:00
Wojciech Siewierski
97cc44e063 Merge branch 'modifier-release-fix' of https://github.com/eltang/qmk_firmware into modifier-release-fix 2016-04-02 19:25:10 +02:00
eltang
5a9091689c Update action.c 2016-04-02 10:00:31 -07:00
eltang
6c8e374d57 Update action.c 2016-04-02 09:59:53 -07:00
eltang
f4f592910c Update action.c 2016-04-02 09:34:01 -07:00
eltang
da101b8866 Update action.c 2016-04-02 09:29:32 -07:00
Didier Loiseau
4289ff7939 Removed remaining ALT_T and CTL_T keys
Having "true" modifiers is more reliable and practical.
- moved APP in place of HOME
- moved HOME in place of LSFT on left thumb
- moved END in place of RSFT on right thumb (Ctrl+End with single hand!)
- removed ALT_T from KC_ESC
2016-04-02 18:16:34 +02:00
Didier Loiseau
4e25342b41 Use TG() to switch to BÉPO over CSA, and use KC_TRNS in LR_CSA
Simplifies future changes to modifier and special keys
+ removed M_TGCSA macro
2016-04-02 18:16:34 +02:00
Didier Loiseau
89b647fe2b Replace Play by temporary num layer with left Alt
- move play on fn+left thumb
- move prev/next besides play
2016-04-02 18:16:33 +02:00
Didier Loiseau
6c672dfdc6 BÉPO over CSA: Altgr-shifted layer
- all characters available directly in CSA
- more explicit names for macros that switch accross CSA layers
- use macros to implement the shifts next to the spaces
2016-04-02 18:16:33 +02:00
Didier Loiseau
aa5eb49edd BÉPO over CSA: GR2A-shifted characters in AltGr layer
- define aliases for all GR2A-shifted characters
- use the available characters in BÉPO over CSA AltGr layer
2016-04-02 18:16:33 +02:00
Didier Loiseau
b2a4434abb BÉPO over CSA: Fixed key repeat for M_NBSP 2016-04-02 18:16:32 +02:00
Didier Loiseau
3a91ddb074 Use CSA_ as prefix for Canadian Multilingual key aliases
CM is already used for Colemak.
2016-04-02 18:16:32 +02:00
Didier Loiseau
911222892e BÉPO over CSA: GR2A characters in AltGr layer
- define aliases for all GR2A characters (unshifted)
- use the available characters in the BÉPO over CSA AltGr layer
2016-04-02 18:16:31 +02:00
Didier Loiseau
fbf1333d87 BÉPO over CSA: unicode support
- implement easy way to define and send unicode characters on Windows
- define 3 characters not available in CSA:
  - en dash: –
  - em dash: —
  - ellipsis: …
2016-04-02 18:16:31 +02:00
Didier Loiseau
7840e69bfa BÉPO over CSA: AltGr layer
- implemented the most useful characters:
  - all French characters + €
  - common programmer characters
- other keys implemented as KC_NO to avoid mistyping a character
  from a lower layer
- AltGr+Shift not supported (yet)
2016-04-02 18:16:30 +02:00
Didier Loiseau
a7cef2ca0a Initial BÉPO over CSA with Shift layer
Initial implementation of the BÉPO layout
for use with the Canadian Multilingual Standard layout
(a.k.a. CSA / ACNOR layout) on the OS-side.
- support all bépo characters from the default and shifted layers
2016-04-02 18:16:30 +02:00
Didier Loiseau
b8ddbd2181 Added RESET key on fn-= 2016-04-02 18:16:29 +02:00
Didier Loiseau
bf78ca1ef2 Use enums to define layers and macros 2016-04-02 18:16:29 +02:00
Didier Loiseau
9e1ee021d7 Swapped w and = to keep the w on the right hand (better for English) 2016-04-02 18:16:28 +02:00
Didier Loiseau
7bb135a1d0 Use BÉPO spécific key aliases with BP_ prefix
keymap_bepo.h: define BP_* keycodes for all possible characters
bepo/keymap.c: use those keycodes in the bépo keymap
2016-04-02 18:16:28 +02:00
Didier Loiseau
f044edbed9 Initial bepo layout based on tm2030
No more SFT_T:
- moved ] (bépo W) below Tab
- moved - (bépo =) in place of ] (top right)
- removed SFT_T from ' (bépo M)
- moved \ (bépo Ç) in place of = (bépo %)
- moved = (bépo %) in place of - (bépo =)
2016-04-02 18:13:50 +02:00
eltang
fddccc95fe Update action.c 2016-04-02 09:13:13 -07:00
eltang
680301e3e3 Update action.c 2016-04-02 06:48:44 -07:00
Stephan Bösebeck
f0424a0c0f Merge branch 'master' of https://github.com/sboesebeck/qmk_firmware 2016-04-02 15:15:21 +02:00
Stephan Bösebeck
71cdfe1168 new keymap 2016-04-02 15:14:14 +02:00
Eric-L-T
f5365d1c1c Update action.c 2016-04-01 20:04:13 -07:00
Eric-L-T
307f1dee21 Update action.c 2016-04-01 19:54:02 -07:00
Eric-L-T
420fc8620b Update action.c 2016-04-01 18:26:43 -07:00
Stephan Bösebeck
aee8715815 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-04-01 23:54:16 +02:00
Stephan Bösebeck
c274699085 minor tweaks at the keymap, new png for documentation 2016-04-01 23:53:09 +02:00
Eric-L-T
9a35f01c55 Update action.c 2016-04-01 13:49:03 -07:00
Eric-L-T
cd8dd1b6d6 Update action.h 2016-04-01 13:45:01 -07:00
Eric-L-T
317455178d Update action.c 2016-04-01 13:43:49 -07:00
Jack Humbert
de904af360 Merge pull request #233 from tak3over/patch-1
Create tak3over.c
2016-04-01 16:31:18 -04:00
tak3over
ad3ec12fb6 Create tak3over.c
Custom keymap with an additional function layer for numpad, pgup, pgdn, del, ins, home, end, and additional arrow keys.
2016-04-01 15:26:09 -05:00
Jack Humbert
54b0a2bf76 adding files is always smart 2016-04-01 14:44:08 -04:00
Erez Zukerman
8e72455608 Merge pull request #226 from squisher/dvorak_intl_squisher
Squisher's international dvorak variant for ergodox ez
2016-04-01 12:11:17 +03:00
IBNobody
12cb69cdb2 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-04-01 00:10:47 -05:00
IBNobody
c12be71d11 Added Error Checking to Setup.bat #2
Added check for the MinGW directory. Fixed a bug with script exiting out
of a CMD window. Fixed a bug with script dropping user into MinGW
directory. Fixed a bug with RD not deleting temp. Fixed a bug with
PNPUtil.exe not being present in the path.
2016-04-01 00:10:21 -05:00
Stephan Bösebeck
dbd4ab3457 fixed de_osx prefix in keymap include to avoid conflicts 2016-03-31 23:15:59 +02:00
Jack Humbert
5a290a42b0 Merge pull request #230 from IBNobody/master
Fixed Setup Script
2016-03-31 12:09:05 -04:00
IBNobody
a3ed432273 Drastically rewrote the path script to handle Explorer's stubborn grasp of EnvVars. Tested on Win7. 2016-03-30 16:31:46 -05:00
Christopher Browne
5bbcc484a8 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-30 13:14:01 -04:00
David Mohr
5fae86849a Also add compiled hex file 2016-03-30 09:47:34 -06:00
David Mohr
fe6c3e4f0f Squisher's international dvorak variant for ergodox ez
See README.md
2016-03-30 09:47:34 -06:00
Jack Humbert
ae47275bf3 Merge pull request #229 from NoahAndrews/patch-5
The readme was also wrong about the conflict between audio and RGB
2016-03-30 11:40:22 -04:00
Noah Andrews
ac3f3a85d5 Update README.md 2016-03-30 11:36:35 -04:00
Jack Humbert
6186de5828 Merge pull request #227 from NoahAndrews/patch-4
Fixed minor issues with Preonic readme
2016-03-30 11:07:00 -04:00
Jack Humbert
c3c4012417 Merge pull request #228 from mrfoto/fix-planck-diagram
Tiny fix of Planck diagrams
2016-03-30 11:06:07 -04:00
Miha Rekar
3b703eff33 Tiny fix of Planck diagrams 2016-03-30 17:03:03 +02:00
Noah Andrews
09d567045c Fixed minor issues with Preonic readme 2016-03-30 09:17:06 -04:00
Jack Humbert
47b537c87f preonic readme 2016-03-30 00:46:45 -04:00
Jack Humbert
e7377dc24b Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2016-03-30 00:45:48 -04:00
Jack Humbert
b8ac509570 .hex files 2016-03-30 00:45:37 -04:00
Jack Humbert
ac0729787f preonic update 2016-03-30 00:43:07 -04:00
Jack Humbert
4a676746a6 Merge pull request #224 from NoahAndrews/make-keymap-names-consistent
Make keymap names more consistent
2016-03-29 22:37:20 -04:00
Noah Andrews
95fba250ef Updated several keyboard folders to use new keymap naming scheme 2016-03-29 21:53:36 -04:00
Noah Andrews
e28334017c Merge remote-tracking branch 'jackhumbert/master' into make-keymap-names-consistent 2016-03-29 20:03:22 -04:00
Jack Humbert
26513b497b Merge pull request #223 from NoahAndrews/patch-3
Fix #198
2016-03-29 16:38:31 -04:00
Noah Andrews
8f1ea16ad5 Fix #198 2016-03-29 16:35:06 -04:00
mbarkhau
77fa2b0056 Update compile_keymap.py 2016-03-29 18:35:47 +02:00
Jack Humbert
49bde5b5c1 Merge pull request #222 from NoahAndrews/patch-2
Fix error in Planck makefile comment
2016-03-29 12:30:00 -04:00
Noah Andrews
2ae44470e0 Fix error in Planck makefile comment
[This comment](https://www.reddit.com/r/olkb/comments/428umx/rgb_underglow/czaivbc) states that because both audio output and RGB support require the user of timer 3, they can't be enabled at the same time. That makes sense, I can see where audio.c uses timer 3. But this comment in the code states that the incompatibility is with MIDI support, which doesn't make sense based on what I see in the code. Please enlighten me if I'm mistaken.
2016-03-29 12:06:32 -04:00
Stephan Bösebeck
ac22d1c185 added CTL_Shift / Hash macro 2016-03-29 13:02:14 +02:00
Stephan Bösebeck
f7f4f1725e Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-29 07:49:54 +02:00
skullY
5e822417d7 Fixup clueboard support and add rgb to clueboard1 2016-03-28 22:49:24 -07:00
Jack Humbert
8bbc1dcf4f Merge pull request #219 from IBNobody/master
Master
2016-03-28 23:17:16 -04:00
Jack Humbert
1f86e8da09 Merge pull request #220 from NoahAndrews/improve-buildguide
Added clarifying steps to Windows section of build guide
2016-03-28 23:16:36 -04:00
Noah Andrews
60570f3e37 Added clarifying steps to Windows section of build guide 2016-03-28 22:02:52 -04:00
IBNobody
1d13aa933b Minor Tweaks and Documentation
Fixed compiler warning by including bootloader.h in keymap_common.c.

Changed FORCE_NKRO to only be applied if NKRO_ENABLE is defined.

Added extra documentation to the template config.h
2016-03-28 19:45:20 -05:00
Noah Andrews
535daad3cd Merge remote-tracking branch 'jackhumbert/master' into improve-buildguide 2016-03-28 18:37:39 -04:00
Manuel Barkhau
a2d3c0bd93 add hex file 2016-03-28 23:42:55 +02:00
Manuel Barkhau
295036d4e3 Merge remote-tracking branch 'origin/master' 2016-03-28 21:36:02 +00:00
Manuel Barkhau
32c7832609 Refactor compiler code 2016-03-28 23:35:12 +02:00
IBNobody
a70f439672 Added command to turn LED indicators off while sleeping 2016-03-28 16:21:09 -05:00
Stephan Bösebeck
37e68596dd Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-28 22:29:18 +02:00
Erez Zukerman
4a43c56844 Merge pull request #216 from msc654/master
Added msc keymap for ergodox_ez
2016-03-28 22:40:58 +03:00
Jack Humbert
fd9e5d1510 Merge pull request #214 from cdlm/action-hook
Add per-event user hook function
2016-03-28 11:55:19 -04:00
Jack Humbert
5e2c497d9a Merge pull request #217 from IBNobody/master
Master
2016-03-28 11:51:38 -04:00
Jack Humbert
6a824df99c Merge pull request #218 from awpr/patch-1
Add avr-libc to the Debian build dependencies.
2016-03-28 11:49:03 -04:00
Andrew Pritchard
1fd9dbdbe9 Add avr-libc to the Debian build dependencies.
Without avr-libc the build fails trying to #include_next a header from the standard library, which of course doesn't exist.
2016-03-28 08:39:39 -07:00
Christopher Browne
95a88c09e1 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-28 11:29:54 -04:00
Alex Johnstone
48899673af Updated hex 2016-03-28 16:14:25 +01:00
Alex Johnstone
474eaead3c ££££ 2016-03-28 08:09:27 -07:00
Alex Johnstone
ad2d3144ed Forgot to change ent/spc 2016-03-28 15:50:09 +01:00
Damien Pollet
bcebb3447c Add action-preprocessing kb/user hooks in planck 2016-03-28 16:49:47 +02:00
Damien Pollet
2181be029e Add action-preprocessing hook to keyboard template 2016-03-28 16:49:46 +02:00
Damien Pollet
acd64aa841 Rename function to be keyboard-specific 2016-03-28 16:30:00 +02:00
Damien Pollet
ef21a855e6 Add per-event user hook function to QMK 2016-03-28 16:30:00 +02:00
Alex Johnstone
482dbe4c45 Didn't 2016-03-28 07:24:51 -07:00
Matthew Carroll
a1ce133203 Corrected duplicate image issue 2016-03-28 06:00:05 -04:00
Wojciech Siewierski
1a09e96b95 Update the memory consumption total value in README 2016-03-28 10:05:42 +02:00
IBNobody
577971ab07 Magic Key Overrides / Keyboard Lock / Forced NKRO
Added Magic Key Overrides / Magic Key Cleanup / Added Keyboard Lock
option to template / Added forced NKRO option to template (disabled by
default)
2016-03-28 00:03:21 -05:00
Matthew Carroll
beda4e6fd3 Added msc keymap for ergodox_ez 2016-03-27 23:51:11 -04:00
Alex Johnstone
1415e3108f Fixed issues, added unicode layer ⌬ ¯\_⩾ツ⩽_/¯ 2016-03-27 20:50:49 -07:00
Alex Johnstone
97b431162c Merge pull request #4 from jackhumbert/master
upstream
2016-03-27 20:15:02 -07:00
Alex Johnstone
d3e89b8cbd Fixed issues, added unicode layer ⌬ ¯\_⩾ツ⩽_/¯ 2016-03-27 20:14:03 -07:00
Nicholas Keene
2a9eb3d3a3 The Ordinary Layout is unremarkably mundane and remarkably useful 2016-03-27 21:45:31 -05:00
skullY
073b44924c Adding clueboard/cluepad support to qmk 2016-03-27 16:17:40 -07:00
Wojciech Siewierski
36103edb7d Update the memory consumption of PREVENT_STUCK_MODIFIERS in README 2016-03-28 00:25:43 +02:00
Wojciech Siewierski
b4f442dfea Cut the memory consumption of PREVENT_STUCK_MODIFIERS in half 2016-03-27 23:51:46 +02:00
IBNobody
b7f0110d71 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-03-27 16:17:26 -05:00
Erez Zukerman
80eefb09ac Merge pull request #188 from DidierLoiseau/issue-156
Fix #156: clear weak mods on every key press
2016-03-27 21:09:15 +03:00
Erez Zukerman
16da54cfa0 Merge pull request #211 from nrrkeene/master
The Ordinary Layout is unremarkably mundane and remarkably useful
2016-03-27 09:10:05 +03:00
Erez Zukerman
6a31d92276 Merge pull request #196 from naps62/naps62
Adds naps62's Ergodox EZ layout
2016-03-27 09:08:23 +03:00
Manuel Barkhau
20a3229faf Add manuneo layout 2016-03-27 02:24:35 +00:00
Nicholas Keene
e43c0c649d Merge https://github.com/jackhumbert/qmk_firmware 2016-03-26 00:44:20 -05:00
Nicholas Keene
97c4c790cc The Ordinary Layout is unremarkably mundane and remarkably useful 2016-03-26 00:40:54 -05:00
Alex Johnstone
2d90374912 Merge pull request #3 from jackhumbert/master
Pull upstream
2016-03-25 11:16:33 -07:00
Erez Zukerman
c9aec8bc24 Merge pull request #207 from romanzolotarev/master
Add important note about brightness on OS X
2016-03-25 19:37:42 +03:00
IBNobody
987ee1115e Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-03-25 09:51:16 -05:00
Nicholas Keene
d7a1fc81a0 The Ordinary Layout is familiar to users of common keyboards 2016-03-24 23:10:21 -05:00
Jonathan Arnett
6f53e17bf5 Building a row of level switch buttons 2016-03-24 18:30:32 -04:00
Jonathan Arnett
f4ba9662f4 A to toggle L2, hjkl to move mouse 2016-03-24 18:30:32 -04:00
Stephan Bösebeck
94e96456b8 minor changes 2016-03-24 10:30:27 +01:00
Stephan Bösebeck
8b883c797f Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-24 08:22:21 +01:00
Alex Johnstone
fb6dc7499f New 💷 method 2016-03-23 21:13:05 -07:00
Alex Johnstone
02e259dc82 New 💷 method 2016-03-23 21:12:23 -07:00
Alex Johnstone
98593e8c0d New 💷 method 2016-03-23 21:11:05 -07:00
Alex Johnstone
2530f45e2b New 💷 method 2016-03-23 21:06:20 -07:00
Alex Johnstone
add089ab1a New 💷 method 2016-03-23 21:04:45 -07:00
Alex Johnstone
da63179962 Wrong date 2016-03-23 14:10:55 -07:00
Jack Humbert
ba058f8b81 Merge pull request #210 from n0bs/master
Edited Bantam44 to work with jackhumbert/qmk_firmware pull #190
2016-03-23 13:46:02 -04:00
Norberto Monarrez
a5a40a0703 Edited to work with jackhumbert/qmk_firmware pull #190
Basically changes "* matrix_scan_user(void)" to "matrix_scan_user(void)"
2016-03-23 13:42:34 -04:00
Jack Humbert
95b0032142 Merge pull request #209 from n0bs/master
Added project folder for Bantam-44
2016-03-23 10:45:16 -04:00
Jack Humbert
02096f78e5 Merge pull request #200 from alexives/add_diagram_to_planck_layout
Added layout diagrams to the default planck keymap
2016-03-23 10:44:31 -04:00
Norberto Monarrez
d0c894cfae Added files for Bantam-44 2016-03-23 10:22:43 -04:00
Alex Johnstone
15106471b1 Removed whitespace 2016-03-22 21:52:40 -07:00
Alex Johnstone
c7a9a1ebd0 Revised to version 0.1.0 2016-03-22 21:50:53 -07:00
Jack Humbert
e8951d6e41 Merge pull request #199 from IBNobody/master
Added LED Indicator Support to QMK Template
2016-03-22 22:15:18 -04:00
IBNobody
3d56ec052e Fixed extra semicolons.
Fixed extra semicolons.
2016-03-22 21:06:22 -05:00
IBNobody
10491ba21f Fixed LED Function Calls
Fixed LED indicator function calls to match how the matrix init function
calls are formatted.
2016-03-22 20:58:44 -05:00
IBNobody
ec62d9e85c Merge remote-tracking branch 'refs/remotes/jackhumbert/master'
# Conflicts:
#	quantum/template/template.c
#	quantum/template/template.h
2016-03-22 20:39:05 -05:00
Christopher Browne
a4ff9f2567 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-22 17:29:31 -04:00
Erez Zukerman
403d756ad5 Merge pull request #190 from yoyoerx/function_pointers
Addressing void* return warning & coding style
2016-03-22 21:30:25 +02:00
Alex Johnstone
5872f80c96 Merge pull request #2 from jackhumbert/master
Update my repo to upstream
2016-03-22 10:38:03 -07:00
Alex Johnstone
4a7e131604 Meh -> Hyper 2016-03-22 07:43:28 -07:00
Alex Johnstone
84647efebb Update readme.md 2016-03-22 07:42:47 -07:00
Alex Johnstone
c1a520fb81 Added photo 2016-03-22 07:36:40 -07:00
Alex Johnstone
d1f446962a Added real life layout 2016-03-22 07:34:07 -07:00
Roman Zolotarev
3087808790 Add important note about brightness on OS X 2016-03-22 22:33:23 +08:00
Stephan Bösebeck
55fa66428c Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-22 15:00:20 +01:00
Alex Johnstone
4687162470 Added Readme 2016-03-21 21:43:59 -07:00
Alex Johnstone
f6e5e2bd45 added .hex 2016-03-21 20:59:06 -07:00
Alex Johnstone
cffd91edbd typos 2016-03-21 20:58:29 -07:00
Alex Johnstone
f744e860ff Update keymap.c 2016-03-21 20:51:05 -07:00
Alex Johnstone
65fde3cc12 More updates 2016-03-21 16:03:25 -07:00
yoyoerx
baeffd99da Pull request 190 resolution with 'qmk/master' for merge 2016-03-21 17:18:53 -04:00
Erez Zukerman
7f0d77e08c Merge pull request #205 from romanzolotarev/master
Add Roman's Layout
2016-03-21 21:03:25 +02:00
Alex Johnstone
af9e9810a0 work in progress 2016-03-20 22:05:08 -07:00
Stephan Bösebeck
1313e0c828 fix number pad, add , 2016-03-20 23:07:38 +01:00
Stephan Bösebeck
7ebc813e82 changing cursor keys, back to "default" cursor key layout, adding ISO-cursor keys to Symb layer. Changed numbers back to symmetric layout again, keeping F-keys in symb though 2016-03-20 23:00:20 +01:00
Stephan Bösebeck
d0c62feb7e tweaking it a bit further, fixing things 2016-03-20 22:53:43 +01:00
Stephan Bösebeck
64495d11ba Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-20 22:07:53 +01:00
Erez Zukerman
e86f09d262 Merge pull request #203 from XenoBits/master
Improved c# dev layout, only 2 layers now
2016-03-20 22:50:56 +02:00
Erez Zukerman
ed830f2a13 Merge pull request #201 from uzytkownik/master
Further improvements to mpiechotka keyboard
2016-03-20 22:28:21 +02:00
Maxime Millet
cc0c157287 Fixed png image 2016-03-20 12:54:02 +01:00
Maxime Millet
895bc327c3 CSharp dev layout V2 2016-03-20 12:50:04 +01:00
Roman Zolotarev
a429374b78 Update readme 2016-03-19 17:53:58 +08:00
Roman Zolotarev
7138b1e6fc Update layout 2016-03-19 17:43:02 +08:00
Roman Zolotarev
f1c265aace Swap volup and voldown 2016-03-18 17:55:21 +08:00
Roman Zolotarev
bbe553dba3 Add Roman's Layout
Four layers BASE (Norman), SYMB, PLVR (optimized for Plover), ARRW.
2016-03-18 12:14:03 +08:00
Maciej Piechotka
cf986ba504 Add waits to prevent KVM from hanging 2016-03-17 08:18:03 -07:00
Maciej Piechotka
fb3b7f32c0 Put frequently used keys in shell (-=) under thumb 2016-03-17 08:18:03 -07:00
Maciej Piechotka
5d8f4ff957 Add missing breaks in mpiechotka ergodox_ez keyboard 2016-03-17 08:18:03 -07:00
Alex Ives
05b0931cfc Added layout diagrams to the default planck keymap
Signed-off-by: Alex Ives <alex@ives.mn>
2016-03-16 22:58:17 -05:00
IBNobody
8a2457d753 Adding Retro_Refit Keyboard
Retro_Refit is an example of using a Teensy to replace a keyboard
controller on an older keyboard. The original 6x15 keyboard had a
non-standard 11x8 matrix.
2016-03-16 10:27:04 -05:00
IBNobody
17628e9922 Removing Teensy SDK Folder
Fixing Github GUI error "fatal: no submodule mapping found in
.gitmodules for path 'teensy-sdk'"
2016-03-16 09:53:56 -05:00
IBNobody
eba9a7d74d Adding LED function pointers 2016-03-15 23:52:51 -05:00
Wojciech Siewierski
a5cdc3aab1 Expose the pressed_actions_cache global variable 2016-03-15 16:51:50 +01:00
Wojciech Siewierski
73cb87740b Always provide an implementation of process_action_nocache 2016-03-15 16:03:30 +01:00
Miguel Palhas
8aa559b825 Adds naps62's layout 2016-03-15 11:40:15 +00:00
Jack Humbert
35393fa9dc Merge pull request #194 from DidierLoiseau/bépo-keymap-header
Keymap header for the BÉPO layout
2016-03-14 13:42:47 -04:00
Jack Humbert
914f1d6f98 Merge pull request #195 from krid78/master
fixes an obvious typo to have DE_LCBR produce {
2016-03-14 13:42:23 -04:00
Jack Humbert
f2cf3f3028 Merge pull request #197 from yoyoerx/windocs
Cygwin Based Users Guide v0.6 -fixes to dfu-programmer build
2016-03-14 13:37:10 -04:00
yoyoerx
b8d4af8d4a Cygwin Based Users Guide v0.6 -fixes to dfu-programmer build 2016-03-14 13:19:29 -04:00
Daniel Kriesten
bfc6eca44a fixes an obvious typo to have DE_LCBR produce { 2016-03-14 13:35:34 +01:00
Didier Loiseau
7c33f8493f Keymap header for the BÉPO layout 2016-03-13 23:22:21 +01:00
Fred Sundvik
59657355d2 Master mode remains active
It remains active even if the USB link is suspended or otherwise
temporarilly goes down.
2016-03-13 21:38:51 +02:00
Fred Sundvik
f4c11740f7 Suspend power off, fix backlight animation
The backlight color animation was using the wrong frame number, so
it didn't work properly.
2016-03-13 21:35:42 +02:00
Fred Sundvik
b93d07198a Suspend support for the visualizer 2016-03-13 20:13:02 +02:00
Wojciech Siewierski
20dd9c0326 process_action may be called either with key cache or without it
If one wants to temporarily disable the key cache (for example because
it interferes with a macro), `disable_action_cache` must be set to
`true`. `process_action_nocache` is a simple wrapper doing just that for
a single call.
2016-03-13 00:18:20 +01:00
Fred Sundvik
f7275f0ede Configurable baud setting 2016-03-12 22:37:04 +02:00
Fred Sundvik
d835ad91a3 Resend the keyboard state every ms
In case there's some errors on the link, and the packet gets lost
2016-03-12 20:08:08 +02:00
Fred Sundvik
315edb4826 Add serial link support for visualizer 2016-03-12 19:42:57 +02:00
Fred Sundvik
32f0171d39 Fix crash when receiving unregistered remotes 2016-03-12 19:41:34 +02:00
Fred Sundvik
11bd4ba0dd Remote object callable from many places
Change init_transport to add_remote_objects, so that it can be
called many times from different places.
2016-03-12 19:35:09 +02:00
Alex Johnstone
e4b7ce41e3 Started my keymap 2016-03-11 22:27:03 -08:00
yoyoerx
58bbfc5fa6 PR190hotfix.sh, fresh hexes, makeallhex.sh script 2016-03-11 11:16:19 -05:00
Jack Humbert
45de75f179 Merge pull request #192 from mitchlloyd/mitch-layout
First keyboard layout
2016-03-10 20:43:04 -05:00
Mitch Lloyd
67624d0b61 First keyboard layout 2016-03-10 17:20:08 -08:00
yoyoerx
1d4b408fbc Merge branch 'function_pointers' of github.com:yoyoerx/qmk_keyboard into function_pointers 2016-03-10 11:29:00 -05:00
yoyoerx
641859df84 Addressed void* return warning in all keymaps 2016-03-10 11:28:34 -05:00
Jack Humbert
cadd9015dd Merge pull request #191 from yoyoerx/windocs
Cygwin Based Users Guide v0.5 -further corrections
2016-03-10 11:03:27 -05:00
yoyoerx
191488b96f Merge remote-tracking branch 'qmk/master' into windocs 2016-03-10 10:50:17 -05:00
yoyoerx
79e0d7cbc3 Cygwin Based Users Guide v0.5 -further corrections 2016-03-09 15:53:37 -05:00
Jack Humbert
2a9d8b3f30 Merge pull request #187 from yoyoerx/windocs
Cygwin Based Users Guide v0.4 -corrections/dfu build
2016-03-09 15:47:25 -05:00
yoyoerx
d58b14e880 Addressed void* return warning & coding style 2016-03-09 14:04:14 -05:00
yoyoerx
6bfb9d17cf Cygwin Based Users Guide v0.4 -corrections/dfu build 2016-03-09 12:16:03 -05:00
Stephan Bösebeck
3119778e0c Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-08 23:56:50 +01:00
Didier Loiseau
b7a81f0419 Fix #156: clear weak mods on every key press
- new macro_mods bit field for mods applied by macros
- weak_mods now only used for ACT_{L,R}MODS (i.e. LSFT, RSFT, LCTL etc.)
- clear the _weak_ mods on every key *pressed* such that LSFT etc.
  can no more interfere with the next key
2016-03-08 23:14:15 +01:00
Wojciech Siewierski
8d55a12a95 Document the issue of stuck modifiers 2016-03-08 08:48:43 +01:00
Erez Zukerman
7d3ebd7b40 Adds a readme with a link to the blog post 2016-03-08 03:50:57 +02:00
Erez Zukerman
de8f99bf6e Merge pull request #185 from nrrkeene/master
The Ordinary Layout is familiar to users of common keyboards
2016-03-07 20:46:33 -05:00
Jack Humbert
10f45a63b6 Merge pull request #177 from yoyoerx/windocs
Documentation for Cygwin in Windows
2016-03-07 10:16:35 -05:00
Nicholas Keene
9d06063a23 The Ordinary Layout, designed to be similar to traditional keyboards, by Nicholas Keene, released to the public domain, no rights reserved 2016-03-06 23:12:29 -06:00
Wojciech Siewierski
c2480884aa Fix the layer-dependent modifiers handling
Closes #181.
2016-03-05 14:42:17 +01:00
Jack Humbert
4e4250063e Merge pull request #180 from NoahAndrews/add-build-instructions
Added build instructions to BUILD_GUIDE.md
2016-03-04 23:34:45 -05:00
Noah Andrews
553668550b Added build instructions to BUILD_GUIDE.md 2016-03-04 23:21:29 -05:00
Jack Humbert
4a5a2640b9 Merge pull request #179 from NoahAndrews/add-win-linux-instructions
Added Windows and Linux instructions to BUILD_GUIDE.md
2016-03-04 21:57:39 -05:00
Noah Andrews
fe7738f2df Added Windows and Linux instructions to BUILD_GUIDE.md 2016-03-04 21:51:09 -05:00
yoyoerx
2f6f45aa3e Cygwin Based Users Guidev0.2 -formatting revisions 2016-03-04 15:04:42 -05:00
yoyoerx
c9c763e000 Cygwin Based Users Guide v0.1 2016-03-04 14:38:38 -05:00
Jack Humbert
825626b1f4 Merge pull request #176 from NoahAndrews/fix-new-projects
Fix building new projects
2016-03-04 10:58:36 -05:00
Noah Andrews
ee1b94045e Remove extraneous comma 2016-03-04 10:53:58 -05:00
Jack Humbert
5f3e99f67b Merge pull request #171 from NoahAndrews/restructure-documentation
Restructure documentation
2016-03-04 10:19:28 -05:00
Jack Humbert
3f7180a73e Merge pull request #170 from NoahAndrews/improve-windows-docs
Add scripts for easy Windows environment setup
2016-03-04 10:19:00 -05:00
Jack Humbert
cc46f69843 Merge pull request #165 from deepshitgoeshere/deepshitgoeshere-master
added planck keymap and troubleshooting part in the PCB guide
2016-03-04 10:17:14 -05:00
Jack Humbert
984c82a0f8 Merge pull request #175 from NoahAndrews/fix-#174
Fix #174
2016-03-04 10:16:07 -05:00
Noah Andrews
de1e200021 Fix #174 2016-03-04 10:15:21 -05:00
Jack Humbert
ccf848917b Merge pull request #172 from plgruener/pr1
add missing keys to keymap_neo2.h
2016-03-03 23:35:12 -05:00
Stephan Bösebeck
98fe40caa7 Merge branch 'master' of https://github.com/sboesebeck/qmk_firmware 2016-03-03 23:23:56 +01:00
Stephan Bösebeck
2ae8a87af4 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-03 23:23:47 +01:00
plgruener
4ca4322501 update neo keymap 2016-03-03 10:25:23 +01:00
Noah Andrews
b9c22ff8fc Clarified recommended Mac setup method 2016-03-02 22:38:22 -05:00
Noah Andrews
492e88b24b Updated README to point to new build guide 2016-03-02 22:33:38 -05:00
Noah Andrews
0eb252eb61 Added Mac section (copy/pasted from PCB_GUIDE.md) 2016-03-02 22:16:43 -05:00
Noah Andrews
04b47cb2eb Renamed handwriting guide to fit repository convention 2016-03-02 22:10:10 -05:00
Noah Andrews
92c3397ffc Added placeholder for windows section of build guide 2016-03-02 22:07:26 -05:00
Noah Andrews
3871ced15c Added Vagrant explanation 2016-03-02 22:03:25 -05:00
Noah Andrews
a399823b93 Added stub BUILD_GUIDE.md 2016-03-02 21:53:55 -05:00
Noah Andrews
d47cac9bb3 Renamed QUICK_START.md to VAGRANT_GUIDE.md 2016-03-02 21:27:45 -05:00
Noah Andrews
140a311e65 Fix link to MHV AVR Tools 2016-03-02 13:06:33 -05:00
Noah Andrews
45933e84f1 Added documentation for new Windows scripts 2016-03-02 13:02:13 -05:00
Noah Andrews
240f8d9fe0 Renamed scripts to show order 2016-03-02 12:54:53 -05:00
Noah Andrews
c03d10d676 Added logging to setup script 2016-03-02 12:48:10 -05:00
Noah Andrews
06de9628be Removed unneeded lines from setup script 2016-03-02 12:25:21 -05:00
Christopher Browne
e36a441274 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-02 11:49:00 -05:00
Stephan Bösebeck
46ddbd1fe2 forgot F6 2016-03-02 08:43:21 +01:00
Stephan Bösebeck
fbfb034337 updated version, changed F-Key-Layout, minor change in code layer 2016-03-02 08:40:38 +01:00
Stephan Bösebeck
861429aa44 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-03-02 08:32:13 +01:00
Fred Sundvik
168c5b679f Call remote matrix update, when the matrix changes 2016-02-28 23:58:47 +02:00
Fred Sundvik
6fe6d111bf Send the keyboard matrix over the serial link 2016-02-28 22:52:30 +02:00
Fred Sundvik
d8d4622802 Improve serial link initialization, and add driver 2016-02-28 21:46:29 +02:00
Fred Sundvik
46482460fa Some small fixes for the serial update loop 2016-02-28 15:52:03 +02:00
Fred Sundvik
9cb139adc4 Add simple loop for updating the serial link 2016-02-27 22:28:35 +02:00
Jack Humbert
93c9d2bc9f Merge pull request #166 from kletord/fix_french_keymap
Fix FR_RCBR declaration in keymap_french.h
2016-02-27 09:31:34 -05:00
Kévin Letord
4a19cc054d Fix FR_RCBR declaration in keymap_french.h 2016-02-27 15:22:54 +01:00
Lucas Hecht
52b3ddb521 Update PCB_GUIDE.md 2016-02-27 02:56:05 +01:00
Lucas Hecht
bcf847e58a added "Troubleshooting" section to PCB guide 2016-02-27 01:26:54 +01:00
Lucas Hecht
74761626f5 ignore dfu-programme.exe in commits 2016-02-26 20:03:19 +01:00
Noah Andrews
b7a94a1f00 Added Windows environment setup script 2016-02-26 01:53:18 -05:00
Noah Andrews
37c8a23276 Include MSYS directory in Windows path 2016-02-26 00:29:55 -05:00
Noah Andrews
4ad96c60ab Add script to setup the PATH variable on Windows 2016-02-25 23:53:44 -05:00
deepshitgoeshere
92adbe416c Delete keymap_eigen.c 2016-02-25 22:27:59 +01:00
deepshitgoeshere
8def502eee Delete dfu-programmer.exe 2016-02-25 22:27:17 +01:00
deepshitgoeshere
e8f17e5136 Delete dfu-programmer.exe 2016-02-25 22:26:44 +01:00
Lucas Hecht
cae9993a25 Merge branch 'jackhumbert-master' 2016-02-25 21:45:28 +01:00
Lucas Hecht
34a7012a33 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware into jackhumbert-master 2016-02-25 21:40:16 +01:00
Lucas Hecht
bbfdfdcc5f delete old keymap (keymap_eigen.c) 2016-02-25 21:39:32 +01:00
Christopher Browne
d3d1f15597 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-02-25 13:03:44 -05:00
Lucas Hecht
6280adbb6e Added keymap "lucas.c" 2016-02-24 22:54:39 +01:00
Fred Sundvik
17a1102a2a Fix include dir to use uincir instead of just inc 2016-02-24 22:31:01 +02:00
Stephan Bösebeck
3c2f935d87 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-02-24 17:06:32 +01:00
Jack Humbert
11c591c30d Merge pull request #158 from DidierLoiseau/eclipse-config
Add Eclipse settings files to .gitignore
2016-02-23 11:44:14 -05:00
Fred Sundvik
725929ec8b Fix include paths for new tmk_core update 2016-02-23 09:37:24 +02:00
Christopher Browne
eb99e515b3 More documentation 2016-02-22 15:31:13 -05:00
Jack Humbert
af6163f934 Merge pull request #159 from Keller-Laminar/patch-1
Include Dvorak underscore and plus keys.
2016-02-22 13:12:19 -05:00
Keller-Laminar
233af3a41c Include Dvorak underscore and plus keys.
There were previously no Dvorak specific underscore and plus key codes. For a keyboard like the Planck which has layers directly to shifted versions of special character keys you were unable to produce those characters using the Lower layer.
2016-02-22 13:06:26 -05:00
Fred Sundvik
36e4869531 Create a thread for the serial link 2016-02-21 23:52:00 +02:00
Fred Sundvik
6873b17117 Support for Chibios compilation
Remove some warnings, change the include paths.
2016-02-21 23:17:59 +02:00
Fred Sundvik
8cbfe79dd9 Add master to single slave transport 2016-02-21 21:47:40 +02:00
Fred Sundvik
7b88b8b7e1 Add slave to master transport 2016-02-21 21:32:01 +02:00
Fred Sundvik
64b7efeb72 Add proper initialization of transport buffers 2016-02-21 21:15:42 +02:00
Fred Sundvik
415ab91c9d Add master to slave transport 2016-02-21 21:04:42 +02:00
Jack Humbert
d33681aa22 Merge pull request #157 from DidierLoiseau/typematrix
Small fixes and improvements to tm2030 layout
2016-02-21 13:35:08 -05:00
Didier Loiseau
e63126ace2 Added eclipse settings files to .gitignore 2016-02-21 19:23:28 +01:00
Didier Loiseau
a40273c7d7 Updated tm2030 keymap.hex 2016-02-21 19:10:03 +01:00
Didier Loiseau
e336af79eb Fixed compilation warnings due to missing return statements 2016-02-21 18:56:21 +01:00
Jack Humbert
b694fb3417 Merge pull request #153 from spydon/xmonad_keymap
Keymap optimized for xmonad
2016-02-21 12:35:46 -05:00
Jack Humbert
49cb207def Merge pull request #155 from vincent-pochet/fr_ch_extra_keymap
Add extra keymap for swiss french keyboard
2016-02-21 12:35:10 -05:00
Fred Sundvik
fe1db50fc3 Writing signals events 2016-02-21 18:51:10 +02:00
Fred Sundvik
2710361cd8 Change the triple buffer object interface 2016-02-21 18:30:04 +02:00
Fred Sundvik
679bfe7c54 More transport WIP 2016-02-21 17:33:31 +02:00
Fred Sundvik
4ee6eadf9e Local and remote objects WIP 2016-02-21 12:53:51 +02:00
Fred Sundvik
b7059d35f9 Working triple buffering 2016-02-21 01:07:44 +02:00
Fred Sundvik
8e2d70d11f Simplify the triple buffer implementation 2016-02-21 00:44:25 +02:00
Fred Sundvik
4bb5733cdc Updates to triple buffer 2016-02-20 23:40:52 +02:00
Fred Sundvik
50edb3d90c Add first version of triple buffered object 2016-02-20 22:22:42 +02:00
Fred Sundvik
c78eefba49 Add first transport tests 2016-02-20 15:49:31 +02:00
Fred Sundvik
ea346125e8 Add some validation for invalid router destinations 2016-02-20 15:28:42 +02:00
Fred Sundvik
532f98eef6 Support for other links sending to master 2016-02-20 15:14:40 +02:00
Fred Sundvik
c28e19c546 First link sending to master 2016-02-20 15:02:53 +02:00
Vincent Pochet
1934e8a270 Add extra keymap for swiss french keyboard 2016-02-20 14:01:28 +01:00
Fred Sundvik
82b5037b9d Add master send to specific destinations 2016-02-20 14:52:17 +02:00
Fred Sundvik
cee5406ed7 Add complete master broadcast test 2016-02-20 14:32:26 +02:00
Fred Sundvik
4b9fccc756 Start implement router 2016-02-20 13:59:48 +02:00
Fred Sundvik
5a1600e24f Add link parameter 2016-02-20 12:06:23 +02:00
Lukas Klingsbo
39ed50f605 Added a keymap optimized for xmonad
The M(1) function changes layer temporarily (so that numbers can be used)
and holds LGUI which makes it possible to easily change virtual screens
and swap windows inbetween them.
2016-02-18 21:27:02 +01:00
Jack Humbert
a6414eb257 Merge pull request #145 from gerbercj/feature/atreus_astar
Add support for Atreus running on A-Star
2016-02-17 21:18:13 -05:00
Chris Gerber
1db3558a92 Change default controller for Atreus from Teensy2 to A-Star 2016-02-17 19:14:25 -05:00
Fred Sundvik
419908e5ef Hide the byte stuffer state inside it 2016-02-17 09:07:38 +02:00
Chris Gerber
47dcec2945 Add support for Atreus running on A-Star 2016-02-15 20:53:56 -05:00
Stephan Bösebeck
f0dfe8ab97 testing moving the 6 to the left, having one key more on the right used for hash now
feels a bit more natural to me. Need to investigate further.
2016-02-15 14:13:29 +01:00
Fred Sundvik
8d50880686 Use memcpy instead of cast to avoid alignment issues 2016-02-14 21:49:31 +02:00
Fred Sundvik
f22d2543b1 Rename route_frame to route_incoming_frame 2016-02-14 21:34:40 +02:00
Fred Sundvik
0eb62c4ce6 Rename recv_frame to validator_recv_frame 2016-02-14 21:33:14 +02:00
Fred Sundvik
2a6696bd3d Add validator send frame 2016-02-14 21:31:01 +02:00
Fred Sundvik
62058329ff Add crc32 validation of received frames 2016-02-14 21:13:16 +02:00
Fred Sundvik
a3ec3bbef8 Start implement frame validator 2016-02-14 20:45:59 +02:00
Fred Sundvik
713465fb41 Add some full round trip tests
Mostly to ensure that the receive and send framing works the same
way. Especially for the special case with 254 non-zeros.
2016-02-14 20:07:51 +02:00
Fred Sundvik
6956c177da Add byte stuffing send support for large frames 2016-02-14 19:56:22 +02:00
Fred Sundvik
2f3ea76428 Fix name of some unit tests 2016-02-14 19:03:34 +02:00
Fred Sundvik
f3beeb0270 Hanlde sending of zero bytes for small packets 2016-02-14 18:59:01 +02:00
Fred Sundvik
a089eaa868 Add sending of small frames with no zeroes 2016-02-14 17:45:25 +02:00
Fred Sundvik
26537474ae Add byte stuffer recv handling of too long frames 2016-02-14 15:57:44 +02:00
Fred Sundvik
e8cb6d8023 Bytestuffer recv handling of long frames 2016-02-14 15:28:57 +02:00
Fred Sundvik
eefb5b5634 Mutiple frame handling for byte stuffer
Also handles unexpected data.
2016-02-14 14:25:54 +02:00
Fred Sundvik
ce3a21cbea Implement receive of valid small byte stuffed frames 2016-02-14 14:04:51 +02:00
Fred Sundvik
8a991a266e Rename files to match what they actually do
Also add validator before routing.
2016-02-14 13:05:50 +02:00
Fred Sundvik
1f1bc183dd Start implementing data_link 2016-02-14 12:45:12 +02:00
Fred Sundvik
3eaddd6514 Use cgreen test runner instead of executables 2016-02-14 01:58:26 +02:00
Fred Sundvik
3c6b93a491 Add separate makefile for tests 2016-02-14 01:31:01 +02:00
Fred Sundvik
e9a1474bb6 Add makefile for compiling and running unit tests 2016-02-14 00:20:14 +02:00
Fred Sundvik
e70cefc12f Add cgreen unit test library and makefile 2016-02-14 00:05:58 +02:00
fredizzimo
ffc425603d Initial commit 2016-02-13 23:26:39 +02:00
Fred Sundvik
c5db02925c Clean up wrong license information 2016-02-13 22:20:47 +02:00
Fred Sundvik
8479e6aa39 Update readme and license
Also add integration examples
2016-02-13 22:08:49 +02:00
Fred Sundvik
8ce60649c8 Initialize backlight and LCD during visualizer_init 2016-02-13 20:29:49 +02:00
Fred Sundvik
209167d4d6 Compile the user visualizer 2016-02-13 19:53:22 +02:00
Fred Sundvik
9e58d022ba Add visualizer
A generic visualizer that supports animations. There's a few
predefined keyframe types included, and more can be added by the
user.
2016-02-13 19:38:23 +02:00
Fred Sundvik
01b955aa64 Add LCD backlight support
Also possibility to disable the LCD support
2016-02-13 19:21:16 +02:00
Fred Sundvik
fb681b5a60 Add makefile that includes ugfx 2016-02-13 17:47:39 +02:00
Fred Sundvik
bb75446b0b Add uGFX submodule v 2.4 2016-02-13 16:44:14 +02:00
fredizzimo
4452f4965d Add MIT license 2016-02-13 14:18:48 +02:00
Erez Zukerman
2c29ce3cfe Merge pull request #141 from XenoBits/master
Ergodox EZ new keymap for C# developers
2016-02-12 08:50:01 -05:00
Maxime Millet
9eea6850f9 Another readme.md improvement 2016-02-12 12:01:36 +01:00
Maxime Millet
8f1bafece5 Improved readme 2016-02-12 12:00:13 +01:00
Maxime Millet
8c051f2d05 Added C# developer keymap 2016-02-12 11:54:27 +01:00
Fred Sundvik
3568065141 Add readme 2016-02-12 09:33:38 +02:00
Jack Humbert
043ac26c24 Merge pull request #140 from lasko/master
A slightly different default layout
2016-02-11 23:58:08 -05:00
Lasko Height
d290e09d7b Added pageup, pagedown, home, and end keys 2016-02-11 20:52:59 -08:00
Lasko Height
006d277ec1 Added a Tenkey layer and moved the del key 2016-02-11 20:46:12 -08:00
Lasko Height
d3488f131c Adding my initial layout 2016-02-11 20:20:09 -08:00
Lasko Height
073a6c206e Adding my initial layout 2016-02-11 20:19:07 -08:00
Erez Zukerman
f4fc7fd4d5 Merge pull request #139 from joarau/norwegian-colemak-ergodox-with-norwegian-definitions
Norwegian Colemak Ergodox and Norwegian key definitions
2016-02-11 20:40:47 -05:00
joar
2f7cda63d0 Norwegian Colemak Ergodox and Norwegian key definitions 2016-02-11 16:28:28 +01:00
Erez Zukerman
9f6966f765 More tweaks to experimental layout 2016-02-11 16:55:10 +02:00
Erez Zukerman
9e075e28be Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2016-02-11 16:39:40 +02:00
Erez Zukerman
ec4428b1c6 Merge pull request #138 from Willyfrog/master
ergodox_ez for emacs + mac + altgr users
2016-02-10 15:40:25 -05:00
Guillermo Vayá
f96186ed9c add image 2016-02-10 19:04:26 +01:00
Erez Zukerman
8aeaa6df81 Merge pull request #137 from uzytkownik/master
Add mpiechotka ergodox ez keymap
2016-02-10 08:24:06 -05:00
Guillermo Vayá
3c805548d9 added .hex file 2016-02-10 09:47:11 +01:00
Maciej Piechotka
03f61dcdb4 Add mpiechotka ergodox ez keymap 2016-02-09 23:37:02 -08:00
Jack Humbert
0206976267 Merge pull request #136 from cbbrowne/master
Random improvements
2016-02-08 14:25:22 -05:00
Christopher Browne
8079dc0682 Eliminate switch statement by using contiguous character ranges 2016-02-08 11:25:55 -05:00
Christopher Browne
bbcc1046a6 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-02-08 10:53:50 -05:00
Erez Zukerman
cd90dd9f6d Corrects typo 2016-02-08 15:22:56 +02:00
Erez Zukerman
67f14d938b Merge pull request #130 from jacobono/jacobono
Jacobono
2016-02-08 08:01:54 -05:00
Erez Zukerman
ac84fa47fc Updates documentation, adds Cmd/Win dual-function key 2016-02-08 14:56:19 +02:00
Jack Humbert
f575079357 Merge pull request #134 from dragon788/patch-2
Added note about using avr_setup.sh
2016-02-07 22:00:45 -05:00
dragon788
34a8ad506c Added note about using avr_setup.sh
On most Linux distributions the avr_setup.sh script can be sourced ```. avr_setup.sh``` or under Bash ```source avr_setup.sh```. This will try and detect the appropriate package manager and install the required packages.
2016-02-07 17:16:28 -06:00
Didier Loiseau
a2f6ab16c0 FN macro: use layer_invert() instead of modifying layer_state directly
- fixes stuck keys from the temporary layers
  (see also jackhumbert/qmk_firmware#78)
- removed the workaround for jackhumbert/qmk_firmware#81
  (using layer_invert() fixes the problem)
2016-02-07 23:33:37 +01:00
Didier Loiseau
7ba42b994b Fixed inconsistency between comment and actual numeric layer
- KC_INS should only be present on Fn layer
2016-02-07 23:33:37 +01:00
DidierLoiseau
47fc8b8dbd Fixed link to Magic doc in Dvorak section 2016-02-07 23:31:27 +01:00
Jack Humbert
bc4f20853d advanced macro stuff for README 2016-02-07 16:28:48 -05:00
Jack Humbert
8967c0705b advanced macro stuff for README 2016-02-07 11:15:03 -05:00
Jack Humbert
cf2c641557 advanced macro stuff for README 2016-02-07 11:14:47 -05:00
Jack Humbert
3a6e88d6f8 advanced macro stuff for README 2016-02-07 11:13:22 -05:00
Jack Humbert
e6a2c77fde README changes 2016-02-07 10:41:00 -05:00
Jack Humbert
623666888f Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2016-02-07 10:39:01 -05:00
Jack Humbert
5dc0d1dc20 README changes 2016-02-07 10:38:57 -05:00
Jack Humbert
8d785de796 Merge pull request #131 from Vifon/patch-1
Use boolean AND instead of bitwise (possible typo)
2016-02-07 09:30:39 -05:00
Wojciech Siewierski
65b41e2e59 Use boolean AND instead of bitwise (possible typo)
Fortunately seems harmless.
2016-02-07 11:48:28 +01:00
Christopher Browne
04759d63ef Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-02-06 19:49:52 -05:00
Christopher Browne
fe1519de07 Add in XOR of lowest 8 bits of system timer to encourage more randomness of the digits/letters chosen 2016-02-06 19:42:08 -05:00
Daniel Mijares
b5b9885df7 add hex file 2016-02-06 13:59:30 -05:00
Daniel Mijares
f5c1d6d1db my personal ergodox keymap layout
with pngs of layout and readme
2016-02-06 11:38:20 -05:00
Jack Humbert
240e8c6340 Merge pull request #129 from cbbrowne/master
Example of some "Random Keys"
2016-02-05 19:12:05 -05:00
Jack Humbert
832575f2e7 Update PCB_GUIDE.md 2016-02-05 19:06:25 -05:00
Erez Zukerman
3c683aa9f2 Fixes CM_SCLN and updates docs for Colemak 2016-02-05 16:28:24 +02:00
Erez Zukerman
1b0d0c6848 Tweaks symbol layer (see changleog) 2016-02-05 16:22:21 +02:00
Jack Humbert
51964eda0c Merge pull request #126 from fernandodeperto/keymap_nordic
Fix 2 macros in the Nordic keymap
2016-02-04 20:01:57 -05:00
Fernando Mendonca
c29ad125a7 Fix 2 macros in the Nordic keymap
By testing I found out that, at least on Linux using the Swedish layout,
two macros present on this file were wrong, for the backslash and pipe
keys. Jack helped me find the correct combination for the backslash and
that led me to the right one for pipe.
2016-02-05 01:50:54 +01:00
Erez Zukerman
8698edbb28 Merge pull request #124 from zorab47/disable-console-by-default
Disable Ergodox EZ debug console for improved performance
2016-02-04 15:13:44 -05:00
Erez Zukerman
434bcccae0 Merge pull request #125 from gkubed/patch-1
Update QUICK_START.md
2016-02-04 15:06:49 -05:00
Guyon Cumby
2ae39aaa86 Update QUICK_START.md
Fix ErgoDox EZ readme.md link
2016-02-04 12:09:25 -05:00
Charles Maresh
a9ad5c55c8 Disable console for improved performance
Commenting out the line is the only way to disable the console, as the
value of CONSOLE_ENABLE isn't checked. There are only checks for its
existence; setting it to `yes` or `no` doesn't change the compilation.
2016-02-03 17:05:49 -06:00
Christopher Browne
73f14db8ad Remove obsolete comments 2016-02-03 16:54:38 -05:00
Christopher Browne
0d44544491 Comment things more 2016-02-03 16:47:54 -05:00
Christopher Browne
7919839b1a Random characters now working AOK 2016-02-03 16:46:24 -05:00
Christopher Browne
259e5e28e6 Merge branch 'master' of github.com:cbbrowne/qmk_firmware 2016-02-03 13:42:42 -05:00
Christopher Browne
674c62734d More experiments with mapping, notably adding in the random bits 2016-02-03 13:40:45 -05:00
Christopher Browne
c39b53bb9a Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-02-03 12:49:55 -05:00
Christopher Browne
a51009f300 Merge branch 'master' of github.com:cbbrowne/qmk_firmware 2016-02-01 20:53:58 -05:00
Christopher Browne
1466f5a36e Set up a macro that writes cbbrowne. So that is a nice example of how it works.
Probably ought to write up some docs on this to improve it.
2016-02-01 19:13:23 -05:00
Christopher Browne
91c4681656 More samples, some not entirely working yet.
I am trying to mess around with MACRO(), but it is not there quite yet...
2016-02-01 18:50:19 -05:00
Jack Humbert
2ce9c19478 Merge pull request #123 from cbbrowne/master
README notes and cbbrowne layout
2016-02-01 11:42:45 -05:00
Christopher Browne
41c17baccf Add notes on what sorts of actions are risky 2016-02-01 11:37:17 -05:00
Christopher Browne
5273c73bef Many of the changes I wanted 2016-02-01 11:11:21 -05:00
Erez Zukerman
f24c69d177 Refreshes default keymap for single tap L1 switch 2016-02-01 15:37:27 +02:00
Jack Humbert
1ee080701b Merge pull request #116 from tachk/readmeFix
Fix for broken link in readme.
2016-01-31 20:40:34 -05:00
Jack Humbert
dc06288cb7 Merge pull request #119 from seancaffery/teensynote
Clarify Atreus support
2016-01-31 20:40:19 -05:00
Christopher Browne
db2d97d8dc Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-31 13:08:47 -05:00
Erez Zukerman
1dbd6c2ba1 Merge pull request #118 from sboesebeck/master
created new layer for egosooters like counterstrike
2016-01-31 10:54:59 -05:00
Guillermo Vayá
34eb5dfb97 new emacs + osx + deadkeys layout 2016-01-31 11:44:41 +01:00
Sean Caffery
ad6bc8794e Clarify Atreus support 2016-01-31 15:54:11 +11:00
Stephan Bösebeck
602090a430 some fixes in readme 2016-01-31 00:21:34 +01:00
Stephan Bösebeck
1531350125 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-31 00:17:25 +01:00
Christopher Browne
59998daa59 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-30 15:43:34 -05:00
Erez Zukerman
3008c6c6f7 Merge pull request #117 from coderkun/master
Merge changes for coderkun’s Neo2 layout
2016-01-30 15:27:06 -05:00
coderkun
a75cc8463f add build instructions to readme 2016-01-30 12:37:09 +01:00
coderkun
38f8ed9a0c correct link and some minor details in readme file 2016-01-30 12:29:30 +01:00
coderkun
d959f23e5e add readme file for coderkun’s Neo2 layout 2016-01-30 12:26:32 +01:00
coderkun
57bd21d8a6 Merge remote-tracking branch 'upstream/master' 2016-01-30 12:08:27 +01:00
coderkun
7f4eb72b9d add layers for poor man’s QWERTZ and poor man’s Neo including Neo’s layer 4 2016-01-30 12:06:31 +01:00
Kacey A
d97c77447f Fix for broken link in readme. 2016-01-30 02:56:37 -08:00
Jack Humbert
3985f97d87 Merge pull request #115 from seancaffery/sean/atreus
Add Teensy2 Atreus support
2016-01-29 23:47:27 -05:00
Sean Caffery
c363d6b061 Add Teensy2 Atreus support 2016-01-30 15:30:33 +11:00
Jack Humbert
7d6716bede audio on reset 2016-01-29 23:27:36 -05:00
Jack Humbert
0a71166a2d missing file 2016-01-29 23:11:25 -05:00
Stephan Bösebeck
bf64046a04 fixed some copy paste errors 2016-01-29 23:43:56 +01:00
Stephan Bösebeck
7b989a962e added a egoshooter layer 2016-01-29 23:31:58 +01:00
Christopher Browne
55ccf839c1 More notes 2016-01-29 15:49:48 -05:00
Christopher Browne
af795d6298 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-29 15:39:57 -05:00
Christopher Browne
580c3e1d55 On Linux, run dfu-programmer as root 2016-01-29 15:35:51 -05:00
Christopher Browne
05d43b0687 Notes on what's done, and plans to change my key mapping 2016-01-29 13:01:28 -05:00
Christopher Browne
9aca1c70b7 Notes on what's done, and plans to change my key mapping 2016-01-29 12:57:52 -05:00
Christopher Browne
5e64f710dc Bunch of reformatting, improvements to comments 2016-01-29 12:49:43 -05:00
Christopher Browne
753ffa4eed Latest version of cbbrowne key maps 2016-01-29 12:21:10 -05:00
Stephan Bösebeck
791e3d73b3 Merge branch 'master' of https://github.com/sboesebeck/qmk_firmware 2016-01-29 07:49:05 +01:00
Stephan Bösebeck
93a74d9cb1 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-29 07:46:48 +01:00
Christopher Browne
71bd4818cb Added in a keypad layer that replaces Dvorak 2016-01-28 18:01:40 -05:00
Stephan Bösebeck
6ac29c4ac8 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-28 22:10:25 +01:00
Erez Zukerman
2006084656 Merge pull request #113 from chschmitz/master
New German layout for ErgoDox, similar to Kinesis Ergo Elan and regular German keyboards
2016-01-28 15:19:20 -05:00
Christoph Schmitz
21c4dfe983 Added .hex file. 2016-01-28 20:22:48 +01:00
Christoph Schmitz
9bb20de578 Fixed graphics. 2016-01-28 20:20:19 +01:00
Christoph Schmitz
a38fa4b727 Added media layer. 2016-01-28 20:17:45 +01:00
Christoph Schmitz
9abd1eea79 Added links. 2016-01-28 20:05:58 +01:00
Christoph Schmitz
28d2b93b0a Added documentation. 2016-01-28 19:55:14 +01:00
Christoph Schmitz
c8e7f9bbfc Made all layer change keys momentary. Removed Hyper and Meh in favor of layer 1 and 2 on both halves. 2016-01-28 19:53:58 +01:00
Stephan Bösebeck
f153374517 added new macros 2016-01-28 15:58:19 +01:00
Stephan Bösebeck
2776251ffc playing more with cursor keys 2016-01-28 15:37:52 +01:00
Stephan Bösebeck
4beb0115ff playing a bit with cursor keys 2016-01-28 14:56:55 +01:00
Stephan Bösebeck
240db0c7d8 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-28 09:40:50 +01:00
Christoph Schmitz
fdad7ecff9 Switched up and down keys to be closer to the vi etc. world. 2016-01-27 22:05:11 +01:00
Christoph Schmitz
0c66ca026e Fixed circonflex key. 2016-01-27 20:24:14 +01:00
Christoph Schmitz
bf257e3b37 Fixed regarding Ctrl and Alt keys. 2016-01-27 20:14:11 +01:00
Christoph Schmitz
1308135655 Added a German layout inspired by the Kinesis Ergo Elan and based on the "german" keymap. 2016-01-27 19:47:42 +01:00
Jack Humbert
30db300d94 Merge pull request #110 from mollat/master
add mollat keymap
2016-01-26 13:01:35 -05:00
AM
1946c7ce9a add mollat keymap 2016-01-26 18:46:06 +01:00
Stephan Bösebeck
f6dab10288 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-25 21:47:57 +01:00
Jack Humbert
3ea6927b70 Merge pull request #109 from petereichinger/master
Fix flickering when sleeping
2016-01-25 11:56:00 -05:00
Peter Eichinger
78192791bc Merge branch 'master' into flicker-fix 2016-01-25 17:46:50 +01:00
Erez Zukerman
e9356dcad5 Merge pull request #107 from tonyabra/config/tonyabra-osx
Simplified osx layout for ergodox ez
2016-01-25 07:04:44 -05:00
Stephan Bösebeck
da7f259a1f Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-25 10:52:29 +01:00
tonyabra
baddbc6b23 Simplified osx layout for ergodox ez 2016-01-24 23:33:26 -06:00
Jack Humbert
99c72d0d9b Merge pull request #106 from yangliu/planck-rgb
RGB Underglow with WS2812 LEDs
2016-01-24 21:31:08 -05:00
Yang Liu
f277079dfa no message 2016-01-24 18:16:40 -08:00
Yang Liu
6bc5e0cc31 Update README 2016-01-24 18:12:19 -08:00
Yang Liu
2d29795de8 add one more photo 2016-01-24 17:56:43 -08:00
Yang Liu
84657a9e4b Add a photo for the demonstration of RGB underflow 2016-01-24 17:54:35 -08:00
Yang Liu
2647c7cd84 fix bugs in animation effects 2016-01-24 17:19:33 -08:00
Yang Liu
ba9ac457b2 Integrate WS2812 code into quantum core 2016-01-24 17:05:47 -08:00
Yang Liu
0a40654b82 Add support for WS2812 LEDs 2016-01-24 13:14:50 -08:00
Stephan Bösebeck
f958b2e832 typo fix 2016-01-24 21:54:31 +01:00
Peter Eichinger
c5f90eb99b Remove led_off() it is not used 2016-01-24 11:13:11 +01:00
Jack Humbert
fd72a46c13 Makefile back to defaults 2016-01-23 20:52:01 -05:00
Jack Humbert
24f2698fba changes to the template 2016-01-23 20:45:52 -05:00
Jack Humbert
6a55a5fe48 not sure how this got here.. 2016-01-23 20:40:40 -05:00
Jack Humbert
9a1ae948c9 Merge pull request #104 from jackhumbert/smarkefile
Rework Planck file structure
2016-01-23 20:37:00 -05:00
Jack Humbert
ae620fe856 rename file 2016-01-23 20:35:13 -05:00
Jack Humbert
5143c59bdf Merge branch 'audio' of https://github.com/jackhumbert/tmk_keyboard into smarkefile 2016-01-23 20:34:05 -05:00
Jack Humbert
544a49329c Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard into smarkefile 2016-01-23 20:33:35 -05:00
Jack Humbert
c753bfcc14 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard into audio 2016-01-23 20:32:51 -05:00
Jack Humbert
e5aee62e54 starting the hand-wiring guide 2016-01-23 20:29:54 -05:00
Erez Zukerman
a50f4d6229 Merge pull request #102 from sboesebeck/master
osx_de/keymap.c file is missing...
2016-01-23 17:02:31 -05:00
Stephan Bösebeck
42a22af446 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-23 22:41:05 +01:00
Erez Zukerman
85f72d3225 Merge pull request #97 from DidierLoiseau/typematrix
TypeMatrix 2030 Layout for ErgoDox EZ
2016-01-23 14:17:44 -05:00
DidierLoiseau
3e31fa4c50 Fixed rendering of the Layer Switching section 2016-01-23 19:29:14 +01:00
DidierLoiseau
606d63e602 Fixed small issues in README.md
- fixed rendering of the basic layer on GitHub
- fixed missing Calculator, Mail & Browser Home keys in Fn Layer
2016-01-23 19:18:37 +01:00
Didier Loiseau
b0d7d9d922 Added keymap.hex 2016-01-23 18:59:06 +01:00
Didier Loiseau
294bd25615 Moved layout description to README.md and added more details 2016-01-23 18:56:32 +01:00
Didier Loiseau
96b9089d9f Added Calculator, Mail and Browser Home application keys. 2016-01-23 18:16:19 +01:00
Didier Loiseau
67583b2f4a Renamed "Numbers Layer" to "Numeric Layer" 2016-01-23 18:04:45 +01:00
Didier Loiseau
e5f84058bb Implemented new folders structure.
moved keymap_typematrix.c to tm2030/keymap.c
2016-01-23 16:59:33 +01:00
Didier Loiseau
ad2a4c3203 Merge remote-tracking branch 'jackhumbert/master' into typematrix 2016-01-23 16:44:59 +01:00
Erez Zukerman
306f183b1c Merge pull request #100 from RageZBla/colemak
Add colemak keymap to Ergodox EZ.
2016-01-23 08:39:29 -05:00
Olivier Lechevalier
51fec6647a Add colemak keymap to Ergodox EZ. 2016-01-23 14:09:42 +09:00
Peter Eichinger
b2badef7d0 Backlight fix from reddit
https://www.reddit.com/r/olkb/comments/41ur41/crazy_flashing_when_my_computer_sleeps/
2016-01-22 17:37:22 +01:00
Jack Humbert
a18dcc0fb1 Merge pull request #98 from xaocon/fix_tap
Single tap enable ACTION_LAYER_TAP_TOGGLE layer
2016-01-22 11:35:04 -05:00
Evan Pitstick
caf82bcace Single tap enable ACTION_LAYER_TAP_TOGGLE layer 2016-01-22 07:33:56 -05:00
Stephan Bösebeck
f95e3e701c new hex file 2016-01-22 08:22:59 +01:00
Stephan Bösebeck
9d03f48643 reinstalled lost file, updated with some tweaks 2016-01-22 08:22:23 +01:00
Stephan Bösebeck
610b77f1f7 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-22 08:19:39 +01:00
Stephan Bösebeck
f0a873aca1 changed some places, disabled layer3, in file it's ADNW now 2016-01-22 08:18:13 +01:00
Erez Zukerman
e44920fd81 Merge pull request #95 from jackhumbert/keymap_folders
New per-folder format for ErgoDox EZ keymaps
2016-01-21 20:55:06 -05:00
Erez Zukerman
776017aa26 Adds the hex files too 2016-01-22 03:53:53 +02:00
Erez Zukerman
1598a8c46a Introduces new subdirectory structure 2016-01-22 03:51:59 +02:00
Stephan Bösebeck
a07a8079da added koy layer to default, but disabled it 2016-01-21 09:50:06 +01:00
Stephan Bösebeck
ce9086c507 replaced qwertz with adnw-koy as default 2016-01-21 09:37:58 +01:00
Stephan Bösebeck
fa53ad5136 swapping modeswitch and Acut-Chars on thumb block 2016-01-21 09:13:44 +01:00
Jack Humbert
a820533ab7 keymap.c changes, disable grep stuff 2016-01-20 00:15:29 -05:00
Jack Humbert
eb61700912 better integrations 2016-01-20 00:06:52 -05:00
Erez Zukerman
7f84ab6ad9 Adds a bunch of compiled files 2016-01-20 05:49:38 +02:00
Erez Zukerman
922545240b renames readme 2016-01-20 05:34:00 +02:00
Erez Zukerman
6b0ca4aee4 Renames hex 2016-01-20 05:31:56 +02:00
Erez Zukerman
d97daecbf7 Updates Markdown image link 2016-01-20 05:30:35 +02:00
Erez Zukerman
f25bb0ef52 Adds a readme and hex for my experimental layout 2016-01-20 05:26:10 +02:00
Erez Zukerman
5adc810e8c New per-folder format for ErgoDox EZ keymaps 2016-01-20 05:19:50 +02:00
Jack Humbert
8b7e86b2c3 Merge pull request #94 from plgruener/german_aliases
complete keymap_german.h (all alphanumerics)
2016-01-19 14:09:55 -05:00
plgruener
da09312dd5 complete keymap_german.h (all alphanumerics)
add 'DE_'-prefixed aliases for all alphanumerics, so it becomes
immediatly obvious which layout we are assuming.
2016-01-19 20:04:08 +01:00
Erez Zukerman
1454e4664d Makes ' into a dual-action key for LGui 2016-01-19 17:55:47 +02:00
Erez Zukerman
9afa3772de Adds an experimental keymap for my own use 2016-01-19 17:37:36 +02:00
Erez Zukerman
393f26f250 Merge pull request #73 from dragon788/dragon_mod
Requesting some comments and review on my changes
2016-01-18 19:38:32 -05:00
Jack Humbert
0c3aed93db Merge pull request #93 from petereichinger/master
LCAG modifier combo and AutoHotkey international characters
2016-01-18 16:38:15 -05:00
Peter Eichinger
d466216088 Fix code formatting in international characters readme entry 2016-01-18 22:33:26 +01:00
Peter Eichinger
783eafac6e Readme for LCAG modifier combo and international characters with AutoHotkey 2016-01-18 22:31:36 +01:00
Peter Eichinger
48eb980c2a Add defines for CtrlAltGui modifiers 2016-01-18 21:56:00 +01:00
dragon788
6774167900 Command line programming not default, enable by reading quickstart and comments in Vagrantfile 2016-01-17 17:13:08 -06:00
dragon788
ceb7257a9d Allow passthru of Teensy to Virtualbox for programming 2016-01-17 16:08:47 -06:00
dragon788
67f7507d7c Fixing Debian/Ubuntu updates to be completely non-interactive 2016-01-17 13:20:28 -06:00
dragon788
b305e622b5 Note about Virtualbox incompatibilities 2016-01-17 12:39:28 -06:00
Didier Loiseau
fb18130408 Implemented Dvorak layer 2016-01-17 15:02:33 +01:00
dragon788
ebd209d285 Update README.md 2016-01-16 20:46:15 -06:00
dragon788
6c22bd6665 Create QUICK_START.md describing Vagrantfile usage
Provides links to software required to use the Vagrantfile.
2016-01-16 20:43:43 -06:00
Erez Zukerman
9d387f05e0 Merge pull request #88 from J3RN/j3rn-keymap
Add J3RN's Mac-centric Ergodox EZ keymap
2016-01-16 20:39:23 -05:00
dragon788
e04464c7ab Having media layer defined causes toggles to 'stick' rather than be momentary in my experience 2016-01-16 12:31:13 -06:00
dragon788
6940a961fd Resetting keymap_default.c to origin/master not just my fork's master 2016-01-16 12:21:49 -06:00
dragon788
a19f149eb2 Moving my layout to its own file, made plover layout file, restoring default keymap to its default status 2016-01-16 12:15:06 -06:00
dragon788
987ac16afd Updated avr script and added notes to Vagrantfile 2016-01-16 11:44:27 -06:00
Jonathan Arnett
10ab4eff06 Merge branch 'master' into j3rn-keymap 2016-01-16 09:54:46 -05:00
Jonathan Arnett
2de371564d Added keymap_j3rn_README.md 2016-01-16 09:49:21 -05:00
Jack Humbert
2dcdbb8f67 Merge branch 'smarkefile' of https://github.com/jackhumbert/tmk_keyboard into smarkefile 2016-01-16 01:09:21 -05:00
Jack Humbert
f66a251e5d I guess I can reference #90 in the commit message 2016-01-16 01:08:50 -05:00
Jack Humbert
547fa6e461 I guess I can reference #90 in the commit message 2016-01-16 01:01:32 -05:00
Jack Humbert
c9a096dc99 added error for keymap file not existing 2016-01-16 00:57:35 -05:00
Jack Humbert
dfe7004bc5 new keymap folder structure and makefile magic 2016-01-16 00:52:31 -05:00
Jack Humbert
4faddd3449 working 2016-01-16 00:06:51 -05:00
Jack Humbert
6e3c36360e sounds 2016-01-15 23:10:30 -05:00
Didier Loiseau
93e350caa1 Added shifts on the thumbs 2016-01-16 00:38:13 +01:00
Erez Zukerman
9487e92a6e Merge pull request #89 from coderkun/master
add coderkun’s ErgodoxEZ keymap (Neo2)
2016-01-15 15:28:10 -05:00
Erez Zukerman
a579ffff6b Merge pull request #87 from sboesebeck/master
added some macros, create full de_osx include file
2016-01-15 15:23:33 -05:00
coderkun
47fce7e0a9 merge upstream 2016-01-15 20:21:23 +01:00
coderkun
bd9aebc84a merge upstream 2016-01-15 20:19:45 +01:00
coderkun
57bf227f6d add basic layer 2 2016-01-15 19:09:13 +01:00
Jonathan Arnett
79940c5825 Change lower-left control to momentary L1
There's so many control keys in this keymap, one needed to go. So, I changed
the lower-left control key to be a momentary L1, just like the same key on the
right side.
2016-01-15 11:36:27 -05:00
Jonathan Arnett
8585269a07 Version 1.0.0 2016-01-15 11:36:21 -05:00
Stephan Bösebeck
7783b47b8b updated cheat sheet, hex file 2016-01-15 16:04:55 +01:00
Stephan Bösebeck
e44c30f203 using keymap_german_osx.h more, adding macros for CTRL/CMD-V combination 2016-01-15 15:55:00 +01:00
Stephan Bösebeck
28964bb04b Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-13 22:55:48 +01:00
Stephan Bösebeck
5b14d9d84b Merge branch 'master' of https://github.com/sboesebeck/qmk_firmware 2016-01-13 22:55:37 +01:00
Erez Zukerman
46f4494e55 Merge pull request #84 from sboesebeck/master
new alternative layout ADNW_Koy
2016-01-13 15:39:17 -05:00
Jack Humbert
8b76d1ba4c Merge pull request #83 from lxol/feature/hhkb-qmk
migrate hhkb to QMK firmware
2016-01-13 09:55:58 -05:00
Stephan Bösebeck
831a21899f updating layout png 2016-01-13 14:04:46 +01:00
Stephan Bösebeck
6215ce2a89 adding fixed hex file 2016-01-13 13:37:29 +01:00
Stephan Bösebeck
2bde3f550f typo fix 2016-01-13 13:30:01 +01:00
Stephan Bösebeck
eea41339b9 added adnw layout 2016-01-13 13:17:28 +01:00
Stephan Bösebeck
7ef03c59db typo and copy past fix 2016-01-13 13:16:05 +01:00
Stephan Bösebeck
06bdd4869f minor fix 2016-01-13 11:53:09 +01:00
Stephan Bösebeck
c9a76723ac bugfix 2016-01-13 11:45:35 +01:00
Stephan Bösebeck
ddab0dc32c updated ANDW layout 2016-01-13 11:38:24 +01:00
Stephan Bösebeck
8e17ca0339 Merge branch 'master' of https://github.com/sboesebeck/qmk_firmware 2016-01-13 11:24:54 +01:00
Stephan Bösebeck
684c6849f9 andw layout added 2016-01-13 11:21:55 +01:00
Alex Olkhovskiy
0c9227f691 migrate hhkb to QMK firmware 2016-01-13 09:46:55 +00:00
Jack Humbert
4c100dbbef note seq, start-up beeps, function beeps 2016-01-13 00:25:31 -05:00
dragon788
71ee3eb2e7 All dfu dependencies in place, multi-line syntax to make it easy to add/read 2016-01-12 21:41:43 -06:00
Stephan Bösebeck
6e837f6fef Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-12 22:52:32 +01:00
Erez Zukerman
a085265aaa Disables debug console by default for improved performance 2016-01-12 22:32:29 +02:00
coderkun
e4d087c7c0 add basic layer 1 2016-01-12 07:01:02 +01:00
coderkun
6050971d01 add neo2 keymap for ergodoxEZ 2016-01-12 06:28:24 +01:00
Jack Humbert
263344d42f beeps on lock keymap 2016-01-11 18:00:07 -05:00
Jack Humbert
0f867796de timer 3 2016-01-11 17:52:35 -05:00
Jack Humbert
29de37d5c0 pwm audio 2016-01-11 16:53:33 -05:00
Didier Loiseau
d3e4cc9af6 Implement cut/copy/paste as macros
Workaround for jackhumbert/qmk_firmware#81
+ added macro names
+ removed unused macro 0
2016-01-10 19:49:08 +01:00
Didier Loiseau
d9b1c8d360 Added fn-eject, fn-power .. fn-pause keys
Eject does not work though, see jackhumbert/qmk_firmware#82
and tmk/tmk_keyboard#250
2016-01-10 19:15:33 +01:00
Erez Zukerman
5e376cb595 Merge pull request #80 from agriffis/kinesis-clone
Add ergodox_ez keymap to match Kinesis Contoured.
2016-01-10 10:57:13 -05:00
Aron Griffis
386ca6531b Rename to keymap_kines-ish.c and add README 2016-01-10 10:25:16 -05:00
Erez Zukerman
de01abdf8c Merge pull request #79 from agriffis/cleanup-default
Minor cleanup to refer to SYMB and MDIA in default ergodox_ez keymap rather than hard-coding numbers.
2016-01-10 10:14:56 -05:00
Stephan Bösebeck
2311754a89 added mouse wheel support, CMD-V/CMD-C instead of CTRL 2016-01-10 00:02:05 +01:00
Stephan Bösebeck
6ccf3d2da1 removed left space key in favor of a backspace 2016-01-09 23:47:26 +01:00
Stephan Bösebeck
6f9cd2d489 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-09 23:37:34 +01:00
Aron Griffis
8607859c77 Add ergodox_ez keymap to match Kinesis Contoured.
This keymap attempts to match the Kinesis Contoured (aka Advantage) default
layout as closely as possible. See
http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf

Apart from the obvious mappings, this keymap also:

* removes the dual-purpose momentary layer/normal keys: Z, /, and Grv;
  because the author--coming from a Kinesis keyboard--finds the delays and
  accidental modifiers to be more disconcerting than helpful.

* puts Esc in the bottom left since there's no place for it in the top
  left to match the Kinesis.

* changes the bottom-right key into an L2 toggle since there's otherwise no
  way to get to L2.

* adds PrScr, ScrLk and Pause to the L1 keymap, down the left side, since
  they're present on the Kinesis but not available in the default
  ergodox_ez keymap.
2016-01-09 13:17:25 -05:00
Aron Griffis
25b4a98a75 Refer to SYMB and MDIA in default ergodox_ez keymap. 2016-01-09 12:35:42 -05:00
Didier Loiseau
bfda6ee417 Split fn layer from numbers layer to better match the TM behaviour
- removed access to layer 2 from ";" key
- "fn" key toggles both layers 1 & 2
- replaced media and mouse layer by fn layer
- renamed symbol layer to numbers layer
- moved all F-keys together on left hand
2016-01-09 18:21:21 +01:00
Didier Loiseau
38a0e62a10 Layer 1: restore backspace, ralt and ctl on right hand
- home replaced by KC_TRNS to make backspace available
- prev/next moved left to space to restore ralt
- arrows moved down to have reversed T-shape
- added ctl on bottom right KpEnter, to match layer 0
- removed alt from mute, as it was already no more in layer 0
2016-01-09 18:15:49 +01:00
Didier Loiseau
56070d424b Added description of the layout and main differences with real TM 2016-01-09 18:15:48 +01:00
Didier Loiseau
2818acefe6 Make bottom row more similar to the TM
- keep home/end at the same location
- RAlt as first key on the bottom right row
- left/right arrows moved on the thumb, near the other arrows
- added Alt on App
- added Alt on Mute in Layer 1
- removed ALT from left spaces to avoid issues when pressing too slowly
2016-01-09 18:15:48 +01:00
Didier Loiseau
8677ec0c9f Use 3rd led as caps-lock indicator 2016-01-09 18:10:24 +01:00
Didier Loiseau
ac94577cbe TypeMatrix keymap: Layer 1 (Fn Layer) 2016-01-09 18:10:24 +01:00
Didier Loiseau
900c1f991d Initial TypeMatrix keymap: Layer 0 2016-01-09 18:10:10 +01:00
Didier Loiseau
00c3ecc238 Initial TypeMatrix keymap: Layer 0 2016-01-08 23:57:37 +01:00
Jack Humbert
11ce694557 Merge pull request #77 from chwilk/master
Keymap to approximate Kinesis Advantage line of keyboards
2016-01-08 11:54:40 -05:00
chwilk
92dcabe099 Moving around modifiers to match KA better 2016-01-08 10:47:14 -06:00
Jack Humbert
1633c5d493 Merge pull request #74 from sethherr/patch-3
Fix homebrew references
2016-01-06 12:22:48 -05:00
Seth Herr
1d463d961f Fix homebrew references
Replaces #64
2016-01-06 09:41:42 -06:00
Stephan Bösebeck
d74332c11d Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-06 14:28:13 +01:00
Jack Humbert
9f4716a4b1 Merge pull request #60 from rothgar/dvorak
added dvorak keymap and layout picture
2016-01-06 00:04:59 -05:00
Jack Humbert
ff8f171cc1 Merge pull request #70 from sperochon/ergodox_ez_fr
Ergodox_ez french OS X
2016-01-06 00:02:27 -05:00
Jack Humbert
670256c943 Merge pull request #71 from andruby/andrew_osx
Andrew's OSX ergodox ez keymap
2016-01-06 00:01:56 -05:00
dragon788
ee424f8608 Adding update of vagrant VM every time it is booted 2016-01-05 22:39:49 -06:00
Andrew Fecheyr
a4a4952f4b Andrew's OSX ergodox ez keymap 2016-01-05 11:44:08 +01:00
Sébastien Pérochon
bee19e5261 ergodox_ez: Add keymap_osx_fr hex file 2016-01-05 10:56:10 +01:00
Sébastien Pérochon
14b4a01e7e ergodox_ez: Add French keymap for OSX (keymap_osx_fr) based on keymap_default_osx 2016-01-05 10:49:49 +01:00
Sébastien Pérochon
48eff6dd89 quantum: Add French keymap for OSX (keymap_french_osx) 2016-01-05 10:49:36 +01:00
Justin Garrison
6da712ce5e added jgarr keymap for custom dvorak layout :yay: 2016-01-04 09:18:06 -08:00
dragon788
ab7d6dca41 Adding Vagrantfile for easier compile environment setup 2016-01-03 22:21:30 -06:00
Stephan Bösebeck
3bb3e7a72c Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-01-04 00:02:08 +01:00
dragon788
a07d2df99c Added calculator shortcut button to numpad/symbol layer 2016-01-02 21:16:45 -06:00
dragon788
ae842a5a0f Fixed Plover layer label and updated keymap 2016-01-02 18:46:31 -06:00
dragon788
45fec698d8 Added proper link back to Plover layout source 2016-01-02 15:12:00 -06:00
dragon788
4c3ecbc0b7 Added plover layer 2016-01-02 15:05:33 -06:00
Jack Humbert
0f2c7730d4 Merge pull request #68 from waveform80/daves-comments
Added comments to LED stuff and included .hex file
2016-01-02 14:22:43 -05:00
Dave Jones
dcc9948fae Added comments to LED stuff and included .hex file 2016-01-02 18:23:49 +00:00
Jack Humbert
5259f36d03 Merge pull request #66 from gdiegel/master
Fix for faulty fn layer
2016-01-02 11:58:40 -05:00
Jack Humbert
41d4cf05ef Merge pull request #67 from waveform80/daves-keymap
Dave's custom keymap
2016-01-02 11:58:27 -05:00
Dave Jones
7ba06c9e0d Dave's custom keymap
This moves the keys closer to a traditional layout with some redundancy
around the middle to compensate for fast non-traditional typists like
myself who tend to wander from the home row a fair bit. Navigation keys
are provided in layer 2 (accessed by left thumb button), programming
symbols and classic numeric keypad in layer 1 (accessed by right thumb
button). Permanent layer switching is provided with a smaller thumb
button. Ctrl provided in place of caps lock (because no-one needs
caps/num lock), space, backspace, enter, shift all in traditional
positions with layer 1 providing things like equals, tilde and
apostrophe (an attempt to re-use existing muscle memory).

LEDs are pimped to the point of being silly (fading in/out on layer
switch, rolling on reboot ... because I can). Power and reset keys
provided on left thumb pad in layer 2.

No meh or hyper as I haven't found a burning need for them yet.
2016-01-02 11:19:52 +00:00
Gabriel Diegel
1cdcbc9865 Fix incorrect number of rows on fn layer. Add additional navigation keys
to fn layer
2016-01-02 10:31:47 +01:00
Erez Zukerman
9c5f30ed83 Merge pull request #63 from MattLeBeauViewpoint/master
Small change to filename spelling in README
2015-12-31 20:07:37 -05:00
MattLeBeauViewpoint
f1dea975d2 Small change to filename spelling in README
Edited filename to remove plural case in example so that prefix is
correctly parsed in step 6.
2015-12-31 10:16:51 -08:00
dragon788
d901511f76 Fixed button conflicts on mouse/media layer 2015-12-30 23:53:38 -06:00
dragon788
c760a273fb Added note about avr-libc also being required at least for arch 2015-12-30 23:22:29 -06:00
dragon788
24e30249a4 Moving everything around, tap delays driving me nuts 2015-12-30 23:03:33 -06:00
Justin Garrison
14a5b4b5c8 added dvorak keymap and layout picture 2015-12-30 00:19:55 -08:00
dragon788
f68f1c7432 Merge branch 'master' of github.com:dragon788/qmk_firmware_ez 2015-12-28 14:45:13 -06:00
dragon788
d1f8d0104b Merge branch 'master' of github.com:jackhumbert/qmk_firmware
Conflicts:
	keyboard/ergodox_ez/keymaps/keymap_default.c
2015-12-28 14:44:49 -06:00
dragon788
01dc8b3244 Merge branch 'master' of github.com:dragon788/qmk_firmware_ez
Conflicts:
	keyboard/ergodox_ez/keymaps/keymap_default.c
2015-12-27 13:15:03 -06:00
Stephan Bösebeck
381ca294fe minor fixes, added backtick to left thumbblock 2015-12-25 00:00:30 +01:00
dragon788
b61ea5dfaf Updated keymap ascii art and made thumb cluster more standard ErgoDox/Kinesis-like 2015-12-23 22:05:59 -06:00
Jack Humbert
9814343336 Merge pull request #56 from sboesebeck/master
fix number pad for german keys
2015-12-23 12:01:27 -05:00
Erez Zukerman
58e237d2dc Updates readme 2015-12-23 15:28:13 +02:00
Stephan Bösebeck
7115196ddf fix number pad for german keys 2015-12-23 13:32:15 +01:00
Jack Humbert
694fe4e1e2 Merge pull request #55 from sboesebeck/master
fixed some typos, learned, DE_-keycodes are for Win, not OSX
2015-12-22 17:51:32 -05:00
Stephan Bösebeck
d3e54552fb fixed some typos, learned, DE_-keycodes are for Win, not OSX 2015-12-22 23:49:27 +01:00
Jack Humbert
b1fbd4c9ca Merge pull request #53 from sboesebeck/master
minor updates
2015-12-21 19:31:31 -05:00
Stephan Bösebeck
370e9028ac new firmware file containing current changes 2015-12-22 01:25:57 +01:00
Stephan Bösebeck
5f0965ce39 added png file for layout documentation 2015-12-22 01:23:53 +01:00
Stephan Bösebeck
d35b563816 minor changes, fixes 2015-12-22 01:18:03 +01:00
Jack Humbert
40119017f2 Merge pull request #52 from technovangelist/master
first attempt at a working workman layout for the ergodoxez
2015-12-21 11:52:11 -05:00
Technovangelist
42ca2e6684 swapped the space and enter to get the space under where the thumb is. 2015-12-21 10:20:02 -05:00
Technovangelist
a67ef035b8 first attempt at a working workman layout for the ergodoxez 2015-12-21 09:52:10 -05:00
chwilk
2b1a256825 Added keymap variant to approximate Kin Adv 2015-12-20 22:09:26 -06:00
Gabriel Diegel
d7d092de5f Use planck-style arrow keys 2015-12-20 23:05:15 +01:00
Jack Humbert
e70cdb0693 Merge pull request #47 from pnutster/master
OSX Kinesis-like Mapping
2015-12-19 23:50:05 -05:00
Jack Humbert
765c1b9f4d Merge pull request #46 from sboesebeck/master
German layout for osx
2015-12-19 23:49:26 -05:00
Piet Nutbey
cc79f17424 Fixed keymap "graphic" 2015-12-19 23:24:59 -05:00
Piet Nutbey
ac3513b79f corrected folder 2015-12-19 22:50:48 -05:00
Piet Nutbey
190562288c OSX Kinesis-like Mapping
OS X Kinesis Like key mapping. Only the default layer was changed into
a more Kinesis-like mapping. Hopefully useful as a starting point.
2015-12-19 21:38:56 -05:00
Stephan Bösebeck
737afc9dc7 added hex file 2015-12-20 01:00:23 +01:00
Stephan Bösebeck
203528869d typo fix 2015-12-20 00:59:13 +01:00
Stephan Bösebeck
f35609bd89 minor change 2015-12-20 00:57:35 +01:00
Stephan Bösebeck
1b579212d4 added hex file and readme 2015-12-20 00:54:43 +01:00
Stephan Bösebeck
56104858fc first version for german osx layout 2015-12-20 00:49:19 +01:00
Jack Humbert
e0acb8a0ee Merge pull request #45 from matzebond/master
German keymap + ErgoDox keymaps
2015-12-19 14:26:14 -05:00
Erez Zukerman
11f0724951 Further clarifies README 2015-12-19 19:00:59 +02:00
Matthias Schmitt
7b7870bae1 Add neo2 keymap and neo2 ergodox layout 2015-12-19 01:41:23 +01:00
Matthias Schmitt
6c15dac7db Add Ctrl-Shift tap modifier 2015-12-19 01:39:44 +01:00
Matthias Schmitt
3dbcad51d1 Add german keymap and german ergodox layout 2015-12-19 01:22:12 +01:00
Erez Zukerman
7f22b67f8a Updates readme 2015-12-18 16:03:47 +02:00
Jack Humbert
0a58ce3881 jack's ergodox layout 2015-12-17 22:44:09 -05:00
Erez Zukerman
f4efa110f8 Fixes media keys on OSX layout 2015-12-18 04:08:27 +02:00
Erez Zukerman
c7c414b2fb Adds a new default keymap for OSX with working prev/next keys 2015-12-18 03:48:41 +02:00
Erez Zukerman
7923f212e1 Moves compiled default keymap + legends to keymaps directory 2015-12-18 03:42:47 +02:00
Erez Zukerman
4f4553cb90 A compiled version which sends left click in mouse mode 2015-12-16 19:03:30 +02:00
Erez Zukerman
85b7c339dd Merge pull request #41 from joshmccall221/right_click_fix
Left click was mapped to scroll wheel. This fixes that. :)
2015-12-16 12:01:45 -05:00
Josh McCall
4e290a7d59 Left click was mapped to scroll wheel. This fixes that. :) 2015-12-16 10:21:42 -06:00
Josh McCall
c63c615ff8 add left click and vim keys 2015-12-16 04:12:57 -06:00
Gabriel Diegel
daa8a008db Fix typos and add comments, swap plus with equals, swap pipe with
backslash, move slash, change cursor keys to make the classic shape
2015-12-15 21:36:01 +01:00
Jack Humbert
23846997f6 Merge pull request #39 from gdiegel/master
New keymap
2015-12-14 23:30:59 -05:00
Jack Humbert
2e79054ab8 Merge pull request #40 from alexeyzab/keymap-alexey
Atreus-like keymap
2015-12-14 23:30:42 -05:00
Alexey Zabelin
0c89fea71f Add new keymap
The goal of this keymap is to simulate the Atreus layout. Since I've
been using it for quite a while I figured this might help me transition
to Planck.
2015-12-14 21:22:50 -05:00
Gabriel Diegel
3018fa4dc6 Remove redundant definitions 2015-12-13 16:02:01 +01:00
Gabriel Diegel
5d9ff9b61a Rename keymap 2015-12-13 15:40:44 +01:00
Gabriel Diegel
2deadfc7ff Fix keymaps, add documentation 2015-12-13 15:39:27 +01:00
Gabriel Diegel
d00b4238e3 Add gdl keymap 2015-12-13 15:32:44 +01:00
Jack Humbert
43afb2ebef Merge pull request #38 from alcesleo/patch-2
Make links work in TMK_README
2015-11-27 00:31:15 -05:00
Jimmy Börjesson
4cf8920c39 Make links work in TMK_README 2015-11-26 19:56:37 +01:00
Jack Humbert
11d6e66979 atomic hex 2015-11-21 15:01:33 -05:00
Erez Zukerman
1edb050d20 Adds Hyper on the left side 2015-11-10 04:43:20 +02:00
Erez Zukerman
ea44ac4a62 Merge branch 'master' of github.com:jackhumbert/qmk_firmware
Conflicts:
	keyboard/ergodox_ez/keymaps/keymap_default.c
2015-11-10 04:40:52 +02:00
Erez Zukerman
926ce2262f Uses App key as Alt when held 2015-11-10 04:39:53 +02:00
Erez Zukerman
24cb218de0 Uses App key as Alt when held 2015-11-10 04:33:55 +02:00
Erez Zukerman
407f41cd9a [Jack & Erez] Adds standalone versions of Hyper and Meh 2015-11-10 04:18:44 +02:00
Erez Zukerman
f5ec585ed8 [Erez & Jack] Adds Meh key (Hyper without Win/Cmd) 2015-11-10 04:14:59 +02:00
Erez Zukerman
80397187cd Enabled NKRO by default, drops irrelevant makefile options 2015-11-10 03:56:52 +02:00
Jack Humbert
3d1117db50 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-11-09 14:24:56 -05:00
Jack Humbert
8e9153ce12 Michelle's layout 2015-11-09 14:24:49 -05:00
Jack Humbert
d2d75b9759 Merge pull request #36 from justinyhuang/master
added support for JD45
2015-11-07 09:52:59 -05:00
HuangYang
6ec6279d82 minor change for the keyboard info 2015-11-06 22:29:50 -07:00
HuangYang
765f8a2aef added support for jd45 2015-11-06 22:26:12 -07:00
Jack Humbert
6485c7d7da nkro info 2015-11-05 12:07:03 -05:00
Jack Humbert
3511a830ac readme 2015-10-30 00:49:47 -04:00
Jack Humbert
5901f5911b atomic files 2015-10-30 00:49:11 -04:00
Jack Humbert
eb2795b4d6 atomic up-to-date 2015-10-30 00:48:17 -04:00
Erez Zukerman
3ac4f1519f Fixes link 2015-10-30 05:43:01 +02:00
Erez Zukerman
04a36ecbf4 [Erez & Jack] Updates documentation 2015-10-30 05:42:19 +02:00
Jack Humbert
93812e52b5 readmes\! 2015-10-29 18:37:29 -04:00
Jack Humbert
39915b1748 homebrew instructions 2015-10-29 15:12:51 -04:00
Erez Zukerman
4b0c54324a Adds Hyper key, tweaks ErgoDox EZ default keymap 2015-10-29 00:16:53 +02:00
Jack Humbert
ea0e1169e6 README 2015-10-28 13:58:21 -04:00
Jack Humbert
e3050bba67 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-10-28 13:54:43 -04:00
Jack Humbert
8643e01286 merging 2015-10-28 13:54:41 -04:00
Jack Humbert
1fb8b4ce3a changes 2015-10-28 00:56:15 -04:00
Jack Humbert
b8ebba012b Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-10-27 23:49:55 -04:00
Jack Humbert
dee171b425 ht to mt 2015-10-27 23:44:10 -04:00
Jack Humbert
18da1e6801 layer tap, mod tap 2015-10-27 23:06:18 -04:00
Erez Zukerman
f024a462cd Fixes rolling combos for mod-tap keys 2015-10-28 04:19:13 +02:00
Erez Zukerman
d3db8d62f6 More work on ErgoDox EZ default keymap 2015-10-28 04:07:15 +02:00
Jack Humbert
d9f08e6177 toggle and hold-tap action shortcuts 2015-10-27 22:00:52 -04:00
Jack Humbert
909d30553f updated EZ makefile with tmk_core changes 2015-10-27 21:13:10 -04:00
Erez Zukerman
2739aa8d78 Initial working version of ErgoDox EZ layout using new syntax 2015-10-28 02:55:28 +02:00
Jack Humbert
d311fd8d1a Merge pull request #34 from jackhumbert/tmk-master
merging from tmk, new_project script and template
2015-10-27 14:52:18 -04:00
Jack Humbert
6f3141965e new project script 2015-10-27 14:33:18 -04:00
Jack Humbert
d35402938f reverting gh60 2015-10-27 12:49:07 -04:00
Jack Humbert
0e93ee235f reverting gh60 2015-10-27 12:47:12 -04:00
Jack Humbert
547da78335 merging tmk 2015-10-27 12:42:30 -04:00
Jack Humbert
a766918d5c README changes 2015-10-27 11:54:46 -04:00
Jack Humbert
53f7c6535d Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-10-27 00:48:30 -04:00
Jack Humbert
5a268d97ec READMEs 2015-10-27 00:48:22 -04:00
Jack Humbert
018e7a2e37 Merge pull request #28 from abienz/master
Added volume down to function layer
2015-10-26 23:17:37 -04:00
Jack Humbert
a6913550c8 fixed MOs 2015-10-26 23:17:19 -04:00
Jack Humbert
7f8643a6a6 Merge pull request #32 from jackhumbert/hf/comments
[Jack & Erez] Comments + tiny updates and cleanup
2015-10-26 23:15:06 -04:00
Jack Humbert
cc1c32671e fixed makefile, added MO DF shortcuts 2015-10-26 20:02:25 -04:00
Erez Zukerman
0c47e8b008 [Jack & Erez] Comments + tiny updates and cleanup 2015-10-27 00:54:46 +02:00
Jack Humbert
402122744c ez with leds 2015-10-26 16:57:45 -04:00
Jack Humbert
35a81f5b8b added ergodox 2015-10-26 16:32:37 -04:00
Jack Humbert
46e7fb2d3c quantum separated 2015-10-26 14:49:46 -04:00
Jack Humbert
ff8d8a50df fixes for bluetooth without usb 2015-10-25 21:40:56 -04:00
Jack Humbert
61fea81a24 spanish layout 2015-10-25 14:02:26 -04:00
Jack Humbert
31dd8ea34a french keycodes 2015-10-25 12:50:46 -04:00
Jack Humbert
484a9d12f0 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-10-25 12:11:13 -04:00
Jack Humbert
e61a5ed806 nordic shortcuts 2015-10-25 12:11:04 -04:00
Jack Humbert
abc1c0e31e Update README.md 2015-10-24 21:18:56 -04:00
Jack Humbert
71a8fd8b12 bluetooth working with usb 2015-10-23 20:12:04 -04:00
Jack Humbert
bbb21f60e9 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-10-22 13:37:56 -04:00
Jack Humbert
c966e7982c bluetooth 2015-10-22 13:37:45 -04:00
tmk
fa33719ada Add doc of HHKB original keycodes 2015-10-21 06:59:26 +09:00
tmk
6fe4af82fa Fix port setting of alps64/matrix.c 2015-10-15 11:48:14 +09:00
Jack Humbert
d664234bab Merge pull request #31 from cr3473/master
Modified numpad/tenkey layout
2015-10-11 23:35:59 -04:00
cr3473
1b8ef914ff Modified numpad/tenkey layout
improved ease of use
2015-10-11 20:31:49 -07:00
Jack Humbert
40148c430e BL 2015-09-26 00:58:17 -04:00
Jack Humbert
a230aba402 pcb hex 2015-09-26 00:39:48 -04:00
Jack Humbert
266ff2344e backlight 2015-09-25 23:50:17 -04:00
Jun Wako
5ce9bf8353 Merge commit 'fdc38ef3f92af7adeeb4de49550d8838c8a39b5c' 2015-09-24 12:29:11 +09:00
Jun Wako
fdc38ef3f9 Squashed 'tmk_core/' changes from dc0e46e..57d27a8
57d27a8 Merge branch 'core_update_150924' into core
024abe3 core: Fix NKRO ifdef
7aa2d30 core: Fix for disabling NKRO in Boot protocol
95651fd core: Fix message print of debug command
c20cd29 lufa: Fix endpoint bank mode for ATMega32u2
82ac21f next_usb: Fix next_kbd_set_leds()
537d9c7 Change to KC_BOOTLOADER(KC_BTLD)
f2b3772 Add an assignable RESET key
fc99257 Fix parenthesis
e852582 Fix weak modifier clear in action macro
c2a6c5c core: Fix lufa suspend callback(#234)
fa548c5 usb_usb: Ignore error usage(0x01-03) report
513d95c usb_usb: Support locking key indicator LED
cd78802 core: Add keymap section ldscript for ATMega32U2
70c9abd Add description for non-US keys on keycode.h
538c192 lufa: Fix console flush #223
87628c9 Revert "Make action_for_key a weak symbol"
3c0a1ba Make action_for_key a weak symbol
6bb0d7d ibm4704_usb: Fix protocol handling
b6ef5cf Add keyboard_setup() and matrix_setup()
f4bb8b2 ibm4704_usb: Fix interrupt of clock(rising edge)
0c1fcc1 usb_usb: Change debug LED pin config
595710d Reduce code size of magic commands
6bed174 Add description of AVR bootloader and boot section
54c6a01 Merge commit 'f6d56675f9f981c5464f0ca7a1fbb0162154e8c5'
d18d42e Merge branch 'core-update2' into core
febec88 Add compile options '-fdata-sections'

git-subtree-dir: tmk_core
git-subtree-split: 57d27a8e39173a589b4abae74851f95c39940174
2015-09-24 12:29:11 +09:00
Jun Wako
77afc5a76f core: Fix NKRO ifdef 2015-09-24 01:35:10 +09:00
Jun Wako
79fd952da4 ibm4704: Add keymap for Alps 102-key 2015-09-24 01:33:50 +09:00
Jack Humbert
1da07810c7 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-09-21 02:13:25 -04:00
Jack Humbert
f512923456 new default layout 2015-09-21 02:13:15 -04:00
Jack Humbert
72267bb212 Merge pull request #30 from cr3473/master
rearranged dedicated cursor keys
2015-09-20 11:30:27 -04:00
cr3473
7ed793b292 rearranged dedicated cursor keys
now in standart TLK style cluster
VIM style still available in upper layer
2015-09-19 23:52:42 -07:00
tmk
ed9766a7d4 core: Fix for disabling NKRO in Boot protocol 2015-09-20 14:34:13 +09:00
tmk
e8a4a63ec4 core: Fix message print of debug command 2015-09-20 10:51:30 +09:00
tmk
bf3d4b3c06 lufa: Fix endpoint bank mode for ATMega32u2 2015-09-20 10:48:47 +09:00
tmk
0b14b56006 next_usb: Fix for mssing key event 2015-09-20 10:44:09 +09:00
tmk
c1f36042b4 next_usb: Change LEDs usage for CapsLock status 2015-09-20 10:43:12 +09:00
tmk
4fd703e995 next_usb: Change for TMK converter configuration 2015-09-20 10:41:54 +09:00
tmk
276fc93016 next_usb: Fix keymap 2015-09-20 10:36:24 +09:00
tmk
9b99f8f864 next_usb: Fix next_kbd_set_leds() 2015-09-20 10:33:25 +09:00
tmk
6147f5705a Merge branch 'skullydazed-assignable_RESET' 2015-09-16 13:07:35 +09:00
tmk
498654fc4c Change to KC_BOOTLOADER(KC_BTLD) 2015-09-16 13:01:06 +09:00
skullY
bb8c1d29fa Add an assignable RESET key 2015-09-16 12:35:21 +09:00
tmk
dc04983fd7 Merge branch 'ibm4704_alps102' 2015-09-16 11:26:07 +09:00
Jack Humbert
c8d58a9f19 unicode working, i think 2015-09-15 00:33:57 -04:00
Jack Humbert
febd7886a1 unicode working, i think 2015-09-15 00:31:41 -04:00
Jack Humbert
f610c65f10 unicode working, i think 2015-09-14 23:55:26 -04:00
Jack Humbert
6ec03b2218 unicode working, i think 2015-09-14 23:54:49 -04:00
Jack Humbert
b9e42a8753 Merge pull request #29 from kaymmm/nobacklight
use preprocessor conditional on backlight initialization
2015-09-14 15:21:01 -04:00
Keith Miyake
6a4ee574bc use preprocessor conditional on backlight initialization 2015-09-14 15:10:12 -04:00
Jack Humbert
5bb7ef0012 rows to col option, maybe 2015-09-13 22:10:01 -04:00
tmk
a8d4daa761 Fix parenthesis 2015-09-12 11:26:37 +09:00
tmk
0c21b263f9 Fix weak modifier clear in action macro 2015-09-12 11:25:41 +09:00
tmk
9f1d23bfe1 Add Ateml toolchain and remove specific chip name 2015-09-12 05:27:37 +09:00
tmk
a63a9c7845 ibm4704: Add keymap for Alps models
https://geekhack.org/index.php?topic=54706.msg1858175#msg1858175
2015-09-07 08:58:18 +09:00
Jack Humbert
b89a9cdc91 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-09-06 18:58:00 -04:00
Jack Humbert
44625de59a beeps in an if 2015-09-06 18:57:23 -04:00
tmk
455fd51a87 Fix 'enable break' commands for Alps models
https://geekhack.org/index.php?topic=54706.msg1856618#msg1856618
2015-09-05 09:00:33 +09:00
abienz
3510b38ced Added volume down to function layer 2015-09-01 16:38:22 +01:00
Jack Humbert
3072349a6d Merge pull request #27 from abienz/master
Added extended keymap for colemak Atomic
2015-09-01 11:27:31 -04:00
abienz
ab9b40512d Added extended keymap for colemak Atomic 2015-09-01 15:58:15 +01:00
Jack Humbert
ed384bd437 beeps update 2015-08-31 12:39:53 -04:00
Jack Humbert
91176d854b speaker working, midi out 2015-08-29 11:54:38 -04:00
Jack Humbert
d63c2e3995 fixed lufa git stuff 2015-08-26 17:27:52 -04:00
Jack Humbert
9b46f4021e midi on planck 2015-08-25 17:06:38 -04:00
Jack Humbert
e6dd47db45 good enough for a preview 2015-08-25 12:30:32 -04:00
Jack Humbert
cda23c754e midi working 2015-08-24 19:31:12 -04:00
Jack Humbert
b8425e8b58 makefile stuff 2015-08-23 15:31:51 -04:00
Jack Humbert
fd7a465d0d adding default hex 2015-08-22 11:11:48 -04:00
Jack Humbert
5d2baede8a making the extended keymap the default - no more 'common' 2015-08-22 11:10:57 -04:00
Jack Humbert
476e29d119 Merge pull request #26 from jackhumbert/midi
Midi
2015-08-21 23:14:48 -04:00
Jack Humbert
b191f8c60f midi 2015-08-21 23:13:33 -04:00
Jack Humbert
04885a3b44 preonic 2015-08-21 10:46:53 -04:00
Jack Humbert
fb4fe52c0a midi 2015-08-20 00:42:28 -04:00
Jack Humbert
e528087ee5 midi 2015-08-20 00:42:08 -04:00
Jack Humbert
2d76b5c3d4 lock 2015-08-18 15:03:13 -04:00
Jack Humbert
1e598743b0 matrix 2015-08-16 22:29:53 -04:00
Jack Humbert
b2d4969f8f atomic 2015-08-16 17:56:56 -04:00
Jack Humbert
c9cbff446f merging 2015-08-16 17:56:15 -04:00
Jack Humbert
c5a8287dea ok 2015-08-16 17:52:49 -04:00
Jack Humbert
88704200a5 ok 2015-08-16 17:52:21 -04:00
Jack Humbert
f7bca5c41a ok 2015-08-16 17:52:03 -04:00
Jack Humbert
b3f638f491 ok 2015-08-16 17:51:53 -04:00
tmk
79cf2d59ae Fix #239 unresponsive keys of HHKB JP during power saving 2015-08-08 16:01:26 +09:00
Jack Humbert
e12c0de608 Update PCB_GUIDE.md 2015-08-03 14:19:24 -04:00
Jack Humbert
0aa0f75432 Merge pull request #25 from orcinus/master
Fixed brightness control; Reduced number of brightness levels to 4.
2015-07-25 14:55:02 -04:00
Ante Vukorepa
1f52d60ef1 Fixed brightness control; Reduced number of brightness levels to 4. 2015-07-25 17:11:31 +02:00
tmk
35203cad6a core: Fix lufa suspend callback(#234)
With matrix_power_down() in suspend event HHKB JP doesn't start up for some reason.
It is unneeded in actual and removed.
2015-07-23 12:05:51 +09:00
tmk
d4220ac9f3 hhkb: Add power saving code of matrix scan for JP 2015-07-23 11:57:15 +09:00
Jack Humbert
b8c8ecbcd6 Merge pull request #24 from cr3473/master
added 1337 layer :)
2015-07-20 16:57:35 -04:00
cr3473
16af7f259b added 1337 layer :) 2015-07-20 13:53:02 -07:00
tmk
1efdd867c8 usb_usb: Ignore error usage(0x01-03) report 2015-07-15 16:02:20 +09:00
tmk
6f5e8ce17e usb_usb: Support locking key indicator LED 2015-07-15 15:13:15 +09:00
tmk
e1e0e5b4fb onekey: Add V-USB build 2015-07-12 06:59:58 +09:00
tmk
5f06f26e03 ps2_usb: Fix for V-USB build 2015-07-12 06:32:53 +09:00
tmk
448aa73c39 ps2_usb: Fix for mbed build 2015-07-12 06:24:39 +09:00
tmk
8746ad98cc core: Add keymap section ldscript for ATMega32U2 2015-07-12 05:44:10 +09:00
tmk
ce8b1e5f13 m0110_usb: Change keymap and Makefile 2015-07-11 17:10:42 +09:00
Wilba6582
138156d4a0 Update for Atomic PCB Rev 0 2015-06-30 17:35:18 +10:00
tmk
507ebb34f5 alps64: Change keymaps and USB descriptors. 2015-06-26 08:49:03 +09:00
tmk
070a6be638 Add description for non-US keys on keycode.h 2015-06-26 08:34:10 +09:00
Jack Humbert
efe8304e79 Merge pull request #23 from huntse/for_upstream
Current smh keymap
2015-06-09 11:11:31 -04:00
Sean Hunter
77a7b180df Current smh keymap 2015-06-09 10:12:57 +01:00
Jack Humbert
ae2e7fdf26 Update PCB_GUIDE.md 2015-06-07 13:40:11 -04:00
Jack Humbert
96c2a6b56e Merge pull request #22 from cr3473/master
added mouse scroll keymapping
2015-06-04 18:08:21 -04:00
cr3473
3bc50429a7 added mouse scroll keymapping
rearranged mouse button layout
2015-06-04 15:04:12 -07:00
Jack Humbert
9e8c88dcbd Merge pull request #21 from cr3473/master
Layout changes
2015-06-03 16:55:26 -04:00
cr3473
bec97387a1 added screenlock mapping 2015-06-03 13:33:36 -07:00
cr3473
1a64149375 revert to DEL only on upper layer :) 2015-06-03 13:20:14 -07:00
Jack Humbert
085efb4ff5 Merge pull request #20 from cr3473/master
PCB doc edits and keymap update
2015-06-02 17:10:06 -04:00
cr3473
f33d45f200 Merge branch 'master' of github.com:jackhumbert/tmk_keyboard
Conflicts:
	keyboard/planck/PCB_GUIDE.md
2015-06-02 14:04:05 -07:00
cr3473
bcb04570ea PCB Guide edits and update to joe's keymap 2015-06-02 13:58:45 -07:00
Jack Humbert
6001a9347b Merge pull request #19 from cr3473/master
Makefile - MATRIX selection
2015-06-02 15:42:58 -04:00
angerthosenear
cea51941a4 Create extended_keymap_angerthosenear.c
Adding my keymap to the available keymaps list.
2015-06-02 12:23:34 -07:00
John Lindquist
af4f016b4f Update PCB_GUIDE.md 2015-06-02 12:23:34 -07:00
Jack Humbert
68f48fcc58 guide 2015-06-02 12:23:34 -07:00
Jack Humbert
a53efa4561 Create PCB_GUIDE.md 2015-06-02 12:23:34 -07:00
Jack Humbert
dd3598dce6 daniel 2015-06-02 12:23:34 -07:00
Jack Humbert
caa7727e96 daniel 2015-06-02 12:23:34 -07:00
Jack Humbert
5ca7538578 catching up 2015-06-02 12:23:34 -07:00
cr3473
bb9e23c319 Merge branch 'master' of github.com:jackhumbert/tmk_keyboard 2015-06-02 12:16:50 -07:00
cr3473
59f2001b31 Added ability to set the MATRIX in build/make 2015-06-02 12:12:44 -07:00
tmk
a551608873 sun_usb: LED update for hotplug keyboard into converter 2015-06-03 00:49:55 +09:00
tmk
49b0c7e5ef sun_usb: Fix LED status update at startup 2015-06-03 00:29:36 +09:00
tmk
37af88217d sun_usb: Fix serial recv intrrupt trriger edge #228 2015-06-02 23:59:16 +09:00
Jack Humbert
81c672391a Merge pull request #18 from angerthosenear/master
Create extended_keymap_angerthosenear.c
2015-06-01 18:50:17 -04:00
angerthosenear
44bc2eefa3 Create extended_keymap_angerthosenear.c
Adding my keymap to the available keymaps list.
2015-06-01 17:46:08 -05:00
Jack Humbert
3d303eb6c7 Merge pull request #17 from johnlindquist/patch-1
Update PCB_GUIDE.md
2015-06-01 18:01:34 -04:00
John Lindquist
78e567896b Update PCB_GUIDE.md 2015-06-01 15:55:34 -06:00
Jack Humbert
07d090db8b guide 2015-05-30 15:47:21 -04:00
Jack Humbert
7e67c3ceda Create PCB_GUIDE.md 2015-05-30 13:31:52 -04:00
Jack Humbert
85cc5d890e daniel 2015-05-27 23:15:08 -04:00
Jack Humbert
f2ec0f3a2c Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-05-27 22:43:37 -04:00
Jack Humbert
e7435a4022 daniel 2015-05-27 22:43:34 -04:00
Jack Humbert
ed7607645a Merge pull request #16 from cr3473/master
fixed the macros for hard colemak
2015-05-27 17:09:28 -04:00
cr3473
8c788f70f6 fixed the macros for hard colemak 2015-05-27 14:03:45 -07:00
Jack Humbert
1add9b72e7 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-05-27 12:26:02 -04:00
Jack Humbert
49ba5817c4 catching up 2015-05-27 12:25:38 -04:00
Jack Humbert
c59255879d Merge pull request #15 from cr3473/master
Keymap updates
2015-05-27 12:25:03 -04:00
cr3473
a286c38797 New, improved, extended layout 2015-05-27 08:35:55 -07:00
cr3473
b36d1a87da Merge remote-tracking branch 'upstream/master' 2015-05-27 08:29:48 -07:00
tmk
fdce0c9cc0 lufa: Fix console flush #223
Old console sent unneeded empty data every one milli sencond.
After this fix console flushes endpoint data bank every 50ms only when needed.
2015-05-22 18:11:42 +09:00
Jack Humbert
d61d1f5ca3 layouts, default 2015-05-21 19:59:39 -04:00
tmk
5b46031658 Revert "Make action_for_key a weak symbol"
This reverts commit c17b8a599e.

The commit made compile error and its intention is unclear.
2015-05-21 20:30:10 +09:00
tmk
32abfacbc7 Merge pull request #216 from DigitalBrains1/modelm101
Add 101-key Model M terminal keyboard
2015-05-21 10:41:36 +09:00
tmk
63c07c9a0f Merge pull request #217 from SaskatoonTechworks/tmk_core_action
Make action_for_key a weak symbol
2015-05-21 10:35:56 +09:00
Dan McGregor
c17b8a599e Make action_for_key a weak symbol 2015-05-19 11:29:28 -07:00
Jack Humbert
cdccebafe1 default w/qwerty 2015-05-19 01:03:54 -04:00
Jack Humbert
b90ee43f57 files 2015-05-18 21:14:21 -04:00
tmk
81137b7a61 Merge branch 'ibm4704_fix_protocol' 2015-05-19 00:40:49 +09:00
tmk
80fd3b0b24 ibm4704_usb: Fix protocol handling 2015-05-19 00:39:44 +09:00
tmk
6b588eb7f7 Add keyboard_setup() and matrix_setup() 2015-05-19 00:39:43 +09:00
tmk
9a2282157f ibm4704_usb: Fix interrupt of clock(rising edge) 2015-05-19 00:39:43 +09:00
Jun Wako
6014d1014e ps2_usb: Fix pin configuration 2015-05-18 14:01:53 +09:00
Peter Lebbing
965110a041 Add 101-key Model M terminal keyboard 2015-05-17 17:18:40 +02:00
Jack Humbert
0e189b6bdd quark 2015-05-15 21:57:29 -04:00
tmk
2d9e0d5cab ibm4704_usb: Add keymaps for 107 and 50-key 2015-05-14 13:02:13 +09:00
tmk
c01ecce137 Revert "hhkb: Fix bug of matrix initialization for JP"
This reverts commit adfd5b92eb.
2015-05-13 17:31:26 +09:00
tmk
8e7153d190 hhkb: Change document 2015-05-13 17:26:24 +09:00
tmk
1ed54a5dc9 adb_usb: Change README 2015-05-13 17:19:25 +09:00
tmk
a8822a16b4 hhkb: Fix scan rate for HHKB JP #203 2015-05-13 16:53:32 +09:00
tmk
b085d762d5 hhkb: Add build options 2015-05-13 16:40:08 +09:00
tmk
81fe1fda61 hhkb: Change keymap 2015-05-13 16:30:14 +09:00
tmk
177400b7e0 alps64: Change keymap 2015-05-13 16:25:41 +09:00
tmk
e86166c904 adb_usb: Change keymap 2015-05-13 16:23:53 +09:00
tmk
9a7eeb4918 usb_usb: Fix keymap 2015-05-13 16:08:37 +09:00
tmk
b8fba54a20 usb_usb: Change debug LED pin config 2015-05-13 15:59:49 +09:00
tmk
67137a908a Reduce code size of magic commands 2015-05-13 15:29:30 +09:00
tmk
192024124b Add description of AVR bootloader and boot section 2015-05-13 15:01:49 +09:00
tmk
6057e915b5 usb_usb: Fix initialize procedure 2015-05-13 13:58:10 +09:00
tmk
f6d56675f9 Squashed 'tmk_core/' changes from caca2c0..dc0e46e
dc0e46e Rename LUFA to LUFA-git
3bfa7fa Remove LUFA-120730
215b764 Merge commit 'afa0f22a9299686fd88f58ce09c5b521ac917e8f' as 'protocol/lufa/LUFA'
afa0f22 Squashed 'protocol/lufa/LUFA/' content from commit def7fca
c0c42fa Remove submodule of LUFA
30f897d Merge commit '87ced33feb74e79c3281dda36eb6d6d153399b41' as 'protocol/usb_hid/USB_Host_Shield_2.0'
87ced33 Squashed 'protocol/usb_hid/USB_Host_Shield_2.0/' content from commit aab4a69
14f6d49 Remove submodule of USB_Host_Shield_2.0

git-subtree-dir: tmk_core
git-subtree-split: dc0e46eaa4367d4e218f8816e3c117895820f07c
2015-05-13 11:13:10 +09:00
tmk
f1f2066657 Merge commit 'f6d56675f9f981c5464f0ca7a1fbb0162154e8c5' 2015-05-13 11:13:10 +09:00
Jun Wako
1c73e574f1 Add compile options '-fdata-sections' 2015-05-10 10:01:16 +09:00
Jack Humbert
cb3e499cc7 backlight stuff 2015-05-07 15:34:46 -04:00
Jack Humbert
1e0ae2936b quark 2015-05-02 23:00:47 -04:00
Jack Humbert
03963bad85 Merge pull request #14 from rswiernik/master
Fixed quite a few things
2015-04-29 11:02:34 -04:00
Reed Swiernik
15110bf7a0 Corrected makefile common var 2015-04-29 02:55:16 -04:00
Reed Swiernik
85f8506caa Moved keymap file location and fixed bugs in keymap_reed.c 2015-04-29 02:55:00 -04:00
tmk
663909772e Merge branch 'mek-apelsin-lola' 2015-04-28 11:45:25 +09:00
tmk
4d116a04e9 Squashed 'tmk_core/' changes from b9e0ea0..caca2c0
caca2c0 Add mouse support to ADB
5b0835a Merge commit '1fe4406f374291ab2e86e95a97341fd9c475fcb8'
f2f7556 Remove unneeded tap delays #201
8124195 Fix URL of HID Usage Tables pdf
0bb4679 Fix typo of doc/keycode.txt
b24fa1a Fix handling of consumer usage #199
6ae1a3d Improve anti-ghosting behavior for fast typing
a4c9763 Fix dfu-programmer parameters
b62b3f2 Move ring_buffer.h file
6ec424f Fix debug print
502fb0c Fix ibm4704 protocol with using interrupt

git-subtree-dir: tmk_core
git-subtree-split: caca2c01553394d959550034c817520d575c7fa0
2015-04-28 11:27:10 +09:00
tmk
d9fee5571d Merge commit '4d116a04e94cf0d19317d5b44e4fa9f34a3e5594' 2015-04-28 11:27:10 +09:00
Mekaniserad Apelsin
7780fd1c01 Add mouse support to ADB
Adding the makefile options ADB_MOUSE_ENABLE and ADB_MOUSE_ACCMAX.
Might have gone overboard with comments, and tried but failed at not
adding more than necessary outside the converter/adb_usb/ folder.
2015-04-26 08:57:00 +02:00
Jack Humbert
61b4d273da Merge pull request #13 from rswiernik/master
Updated Readme and Build info
2015-04-25 12:50:56 -04:00
Reed Swiernik
eadb08b113 Update README.md 2015-04-25 12:18:45 -04:00
Reed Swiernik
79f70b20d9 Update README.md
Switched around more readme stuff
2015-04-25 12:18:34 -04:00
Reed Swiernik
d0391d9ed7 Update README.md
This stupid readme...
2015-04-25 12:18:21 -04:00
Reed Swiernik
835207193a Update README.md
Updated formatting again...
2015-04-25 12:18:11 -04:00
Reed Swiernik
c85f68d9cd Update README.md
Changed formatting mistake
2015-04-25 12:17:54 -04:00
Reed Swiernik
e3ebae521e Updated readme with new build info 2015-04-25 12:17:42 -04:00
Reed Swiernik
b060714efd Changed del key and added docs 2015-04-25 12:17:28 -04:00
Reed Swiernik
0541af4ff9 Updated makefile to properly handle non extended keymaps 2015-04-25 12:17:18 -04:00
Reed Swiernik
480b313b1e Added keymap w/ game mode 2015-04-25 12:17:07 -04:00
Reed Swiernik
bf1987e233 updated makefile 2015-04-25 12:16:51 -04:00
Jun Wako
55fc97f957 Change mbed sdk path 2015-04-24 16:27:40 +09:00
Jun Wako
1fe4406f37 Squashed 'tmk_core/' changes from 7967731..b9e0ea0
b9e0ea0 Merge commit '7fa9d8bdea3773d1195b04d98fcf27cf48ddd81d' as 'tool/mbed/mbed-sdk'
7fa9d8b Squashed 'tool/mbed/mbed-sdk/' content from commit 7c21ce5

git-subtree-dir: tmk_core
git-subtree-split: b9e0ea08cb940de20b3610ecdda18e9d8cd7c552
2015-04-24 16:26:14 +09:00
Jun Wako
a3d96d3aa9 Merge commit '1fe4406f374291ab2e86e95a97341fd9c475fcb8' 2015-04-24 16:26:14 +09:00
Jun Wako
1d5bac21dc Fix README 2015-04-24 16:24:39 +09:00
tmk
22dd5dae98 Update for the latest mbed sdk 2015-04-24 15:03:59 +09:00
Jun Wako
1f4a22ee81 Remove unneeded tap delays #201 2015-04-23 20:18:01 +09:00
Jun Wako
3f32b22478 Fix URL of HID Usage Tables pdf 2015-04-23 17:30:45 +09:00
Jun Wako
f9045bea6e Fix typo of doc/keycode.txt 2015-04-23 17:20:59 +09:00
Jun Wako
7c3f14b7bb Fix handling of consumer usage #199 2015-04-23 17:02:28 +09:00
Jun Wako
4e50df476d Merge branch 'mtharp-anti-ghost' 2015-04-23 16:33:35 +09:00
Michael Tharp
b52e29582a Improve anti-ghosting behavior for fast typing
Keypresses would be forgotten if they began while ghosting, even if they
were still pressed after ghosting ended.
2015-04-23 16:32:38 +09:00
Jun Wako
bd24de44b7 Fix dfu-programmer parameters 2015-04-23 16:07:24 +09:00
Jun Wako
c412300536 sun_usb: import dastels's keymap of Type 3
https://github.com/dastels/tmk_keyboard/tree/master/converter/sun3_usb
2015-04-23 15:24:28 +09:00
Jun Wako
c2485ebac5 Merge branch 'ibm4704_ext' 2015-04-22 14:37:13 +09:00
Jun Wako
e98b800723 Move ring_buffer.h file 2015-04-22 14:35:20 +09:00
tmk
d5482f29f4 Fix debug print 2015-04-22 14:18:13 +09:00
tmk
d42aa47809 Fix ibm4704 protocol with using interrupt 2015-04-22 14:18:13 +09:00
tmk
5ea50bfb30 Add keymap codelet for 77-key and 107-key 2015-04-22 14:18:13 +09:00
Jun Wako
799993c414 Update README 2015-04-22 13:52:28 +09:00
Jun Wako
a20ef7052c Squashed 'tmk_core/' changes from 05caacc..7967731
7967731 Update README

git-subtree-dir: tmk_core
git-subtree-split: 7967731b8bcb1f0c26f7f1f909273e6ad7ae8f36
2015-04-22 13:29:13 +09:00
Jun Wako
79cfa894af Merge commit 'a20ef7052c6e937d2f7672dd59456e55a5c08296' into master_ng 2015-04-22 13:29:13 +09:00
tmk
7860d09914 Change TMK_DIR setting 2015-04-10 01:53:24 +09:00
tmk
a074364c37 Squashed 'tmk_core/' content from commit 05caacc
git-subtree-dir: tmk_core
git-subtree-split: 05caaccec92694bb24c8c3c3a9940b96efd4605c
2015-04-10 01:32:04 +09:00
tmk
1a02ebcc61 Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
tmk
6746e37088 Remove core library and build files 2015-04-10 01:25:48 +09:00
tmk
b4e2d325f3 Change TOP_DIR to TMK_DIR in makefiles 2015-04-09 16:20:42 +09:00
Jun Wako
08ec8bbe5d usb_hid: Update USB_Host_Shield_2.0 2015-04-07 10:24:52 +09:00
Jun Wako
63f462a460 hhkb: Chane keymap for hasu 2015-04-07 09:29:06 +09:00
Jun Wako
adfd5b92eb hhkb: Fix bug of matrix initialization for JP 2015-04-07 09:27:28 +09:00
tmk
d5ac54449a Add alps64 2015-04-05 14:41:14 +09:00
Jack Humbert
71f7713739 Merge pull request #10 from huntse/pull_req
Latest custom map with lower + raise
2015-04-02 11:23:21 -04:00
Sean Hunter
4209486b13 Latest custom map with lower + raise 2015-04-02 15:05:35 +01:00
Jun Wako
2b7d217ebb Fix for dfu-programmer 0.7 #182 2015-03-26 15:09:28 +09:00
Jack Humbert
f1daa266ad macros 2015-03-23 00:35:05 -04:00
Jack Humbert
4454ded0af macros 2015-03-23 00:33:54 -04:00
Jun Wako
0d222db31f infinity: Fix disabling watchdog
- watchdog is timed out before disabling it by mbed startup
- old booloader disable watchdog while new(2015/01) doesn't
2015-03-22 10:51:30 +09:00
Jack Humbert
9514ee8df7 Update README.md 2015-03-21 01:24:01 -04:00
Jack Humbert
2e0fd30185 Merge pull request #9 from tmk/master
updating
2015-03-21 01:20:24 -04:00
Jack Humbert
a33ec2f504 updated readme 2015-03-21 01:17:22 -04:00
Jack Humbert
3d286a813e colemak shortcuts 2015-03-21 01:01:09 -04:00
Jack Humbert
5c45ba947c function stuff too 2015-03-20 22:49:32 -04:00
Jack Humbert
a94beded1a Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-03-20 13:46:40 -04:00
Jack Humbert
708f95a472 working extended keymap 2015-03-20 13:36:13 -04:00
Jack Humbert
b688e68539 Create keymap_tim.c 2015-03-19 14:18:41 -04:00
Jack Humbert
afa0f9d0aa Merge pull request #8 from nathanrosspowell/master
Housekeeping on `keymap_nathan.c`, updated documentation
2015-03-19 00:12:01 -04:00
Nathan Ross Powell
e9df959c13 Update keymap_nathan.c
Remove macro for KEYMAP_GRID that is in keymap_common.h.
Add comments with ASCII art for the two layouts in keymap_common.h.
2015-03-18 23:58:21 -04:00
Nathan Ross Powell
e958baca81 Delete .keymap_nathan.c.swp 2015-03-18 23:39:01 -04:00
Nathan Ross Powell
80c4cdb245 Merge remote-tracking branch 'upstream/master' 2015-03-18 23:33:42 -04:00
Jun Wako
d23d95381a m0110: Fix Makefile 2015-03-19 06:56:56 +09:00
Jun Wako
9b4914b005 m0110: Fix README.md and keymap_intl.c 2015-03-19 06:39:13 +09:00
Jun Wako
e3169ccc45 m0110: Add support for international keyboard 2015-03-19 06:25:48 +09:00
Jack Humbert
9c3a956634 Update README.md 2015-03-18 10:19:40 -04:00
Jack Humbert
9307a0a3e4 Merge pull request #6 from tmk/master
pulling from tmk
2015-03-16 12:01:35 -04:00
Jack Humbert
be86aefdbd Rename handwire-matrix.c to matrix-handwire.c 2015-03-16 11:59:49 -04:00
Jack Humbert
a296c83805 Create handwire-matrix.c 2015-03-16 11:59:21 -04:00
Jack Humbert
0fc820c090 Merge pull request #5 from Wilba6582/master
Pulling in PCB changes
2015-03-16 11:58:05 -04:00
Wilba6582
65680819df Replaced tabs with spaces to match TMK convention. 2015-03-17 00:56:41 +11:00
Wilba6582
b80b6b369c Added backlight.h, backlight.c 2015-03-17 00:51:36 +11:00
Wilba6582
15b9bce6ba Initial commit for Planck PCB Rev 1.
- Backlight on PB7 controlled by Timer1 Fast PWM (no interrupts).
- Backlight commands connected temporarily to top left keys.
- Backlight init called from matrix.c, since there's no generic keyboard_init() override function.
2015-03-17 00:43:37 +11:00
Jack Humbert
0fcb3b65f8 brett 2015-03-05 14:29:33 -05:00
Jun Wako
c35c4283b9 infinity: For production model and add SpaceFn 2015-03-05 10:38:18 +09:00
Jack Humbert
ceff93844b simon 2015-03-02 20:37:17 -05:00
cr3473
a4cf9ae660 layout changes to fix some nav issues
also to simplify and make way for a few ideas
2015-03-01 17:06:39 -05:00
Jack Humbert
ea6de22aee brett 2015-02-26 16:35:54 -05:00
Jack Humbert
a538f71e41 led oops 2015-02-23 23:44:11 -05:00
Jack Humbert
64dc4784e4 vlad 2015-02-21 15:35:09 -05:00
Jack Humbert
7884125b79 joe 2015-02-19 20:10:24 -05:00
Jack Humbert
88cc5ce883 joe 2015-02-19 19:41:45 -05:00
Jack Humbert
cf4363c910 joe 2015-02-19 19:39:35 -05:00
Jack Humbert
a4d091eb52 joe 2015-02-19 19:35:57 -05:00
Jack Humbert
4a3c0839f9 sean 2015-02-15 16:29:35 -05:00
Jack Humbert
24218b58b4 Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard 2015-02-05 12:58:18 -05:00
Jack Humbert
46b38fa64a Merge pull request #4 from pepers/master
defined semi-standard and short space layouts
2015-01-27 12:45:11 -05:00
pepers
b8c91951e1 defined semi-standard and short space layouts 2015-01-27 12:32:23 -05:00
Jun Wako
abf482de8e Fix call parameter of suspend_power_down() 2015-01-26 11:25:22 +09:00
tmk
e872dd2149 Merge pull request #176 from xauser/forhasu
NerD bugfix
2015-01-25 22:02:34 +09:00
Jack Humbert
1d3f3cde78 Merge pull request #3 from pepers/master
defined KEYMAP_GRID for grid layouts
2015-01-23 14:26:27 -05:00
pepers
438ff3465e defined KEYMAP_GRID for grid layouts 2015-01-23 14:17:32 -05:00
Jack Humbert
6cae90793f Create keymap_matthew.c 2015-01-23 12:15:44 -05:00
Jack Humbert
09655cc5d5 Create keymap_nathan.c 2015-01-23 12:14:55 -05:00
Jack Humbert
adf7b56e6f subproject commit? 2015-01-23 12:13:06 -05:00
Jack Humbert
6f735ca130 Update README.md 2015-01-23 12:11:28 -05:00
Ralf Schmitt
e0f32742e9 Kitten Paw, fix main README link to project. 2015-01-21 21:16:49 +01:00
Ralf Schmitt
012ec9e379 NerD, turn BRK into PAUS to get bootloader jump back. 2015-01-21 21:16:09 +01:00
tmk
771347c4a6 Add external projects using tmk_keyboard 2015-01-19 12:43:30 +09:00
tmk
c1ac7f159f Merge pull request #148 from cub-uanic/patch-1
Fix keycode.txt
2015-01-19 12:13:21 +09:00
tmk
aa95d6ff62 Merge pull request #151 from bswinnerton/typo-fix
Fixing typo in console mode
2015-01-19 11:58:04 +09:00
tmk
2e75b138c1 Merge branch 'vovcacik-ghost_squid' 2015-01-19 11:18:43 +09:00
tmk
a5122d5aba Merge branch 'ghost_squid' of https://github.com/vovcacik/tmk_keyboard into vovcacik-ghost_squid
Conflicts:
	README.md
2015-01-19 11:17:05 +09:00
tmk
703ca9de21 Merge pull request #164 from cub-uanic/patch-2
Update other_projects.md - added TMK/Ergodox
2015-01-19 11:08:05 +09:00
tmk
1cda7b79fb Fix typo 'keyobard' #166 2015-01-19 10:35:06 +09:00
tmk
8279226123 Merge branch 'xauser-forhasu' 2015-01-19 10:21:01 +09:00
tmk
507e0636f0 Revert "Changed hotkey for bootloader jump"
This reverts commit f31cbc7219.
2015-01-19 10:20:20 +09:00
tmk
d32b955af6 Merge branch 'forhasu' of https://github.com/xauser/tmk_keyboard into xauser-forhasu 2015-01-19 10:19:47 +09:00
tmk
40fd75e5ed hhkb: Update RN-42 docs 2015-01-19 10:13:42 +09:00
Ralf Schmitt
07b54cb513 Added missing keyboards to main README 2015-01-18 11:47:40 +01:00
Ralf Schmitt
2d74020331 Added NerD 80% (TKL) support 2015-01-18 11:45:24 +01:00
Ralf Schmitt
d9b5f5110e Added NerD 60% support 2015-01-18 11:43:37 +01:00
Ralf Schmitt
f31cbc7219 Changed hotkey for bootloader jump 2015-01-18 11:42:43 +01:00
Nathan Ross Powell
e7289bb029 KC_INSERT should be KC_INS
The short name was incorrectly set as `KC_INT` when we want `KC_INS`.
2015-01-16 00:07:22 -05:00
tmk
c610bae631 Merge branch 'rn42_integrate' 2015-01-16 11:51:34 +09:00
tmk
099701dd31 hhkb: Integrate RN-42 support, remove hhkb_rn42 2015-01-16 10:21:18 +09:00
Jack Humbert
83a3d7a3da Update README.md 2015-01-15 19:58:38 -05:00
tmk
ce66988650 hhkb_rn42: Move doc 2015-01-16 08:26:59 +09:00
tmk
3e88e8b761 hhkb: Fix layer stuck of keymap_hasu
- In mouse key layer with holding semicolon, press Fn0, release
  semicolon and release Fn0 now layer 1 is stuck.
2015-01-16 05:22:29 +09:00
Jack Humbert
a7a808795e Update README.md 2015-01-15 13:06:43 -05:00
tmk
65a2ce94a3 Merge branch 'rn42' 2015-01-15 17:12:26 +09:00
tmk
517817b9c7 rn42: Update doc 2015-01-15 17:08:49 +09:00
tmk
2626a32260 Use pgmspace for RN-42 commands 2015-01-15 17:08:49 +09:00
tmk
3b3af3bae0 Increase buffer of rn42_gets() and change rn42_linked() 2015-01-15 17:08:49 +09:00
tmk
1b95b3c51a rn42: Add commands for RN-42 2015-01-15 17:08:49 +09:00
tmk
4f121de7ad rn42: Add rn42_getc and rn42_gets 2015-01-15 17:08:49 +09:00
tmk
a679928620 Fxi layer stuck of keymap_hasu
- In mouse key layer with holding semicolon, press Fn0, release
  semicolon and release Fn0 now layer 1 is stuck.
2015-01-15 17:08:49 +09:00
tmk
884c2ab0f2 Update doc 2015-01-15 17:08:49 +09:00
tmk
160e02d06a Change RN42 state display 2015-01-15 17:08:49 +09:00
tmk
ebe4373258 Fix power saving while USB suspended
- doesn't pwoer save while Bluetooth turns on
2015-01-15 17:08:49 +09:00
tmk
86f82dd02d Add wait for charging capacitance of ADC S/H 2015-01-15 17:08:48 +09:00
tmk
2d7973fc3f Fix: enable digital input for PF5 2015-01-15 17:08:48 +09:00
tmk
25aee431bd Clean ADC code of battery_voltage() 2015-01-15 17:08:48 +09:00
tmk
825be9d121 Disable input buffer for ADC 2015-01-15 17:08:48 +09:00
tmk
de29f986a7 Update MEMO 2015-01-15 17:08:48 +09:00
tmk
570bcb2ed1 Add LUFA device state to command info 2015-01-15 17:08:48 +09:00
tmk
20caf673d8 Fix lufa sendchar() infinite wait loop
- FrameNumber is not updated when adapter powered
- can be blocked in sendchar() when pluged into AC adapter
2015-01-15 17:08:48 +09:00
tmk
9179246a1d Fix USB plug-in while BT mode falls to be enumerated 2015-01-15 17:08:48 +09:00
tmk
05795cb003 Compensate timer during prower down 2015-01-15 17:08:48 +09:00
Jack Humbert
a54da1b926 Merge remote-tracking branch 'upstream/master' 2015-01-14 22:48:54 -05:00
Jack Humbert
4225f0353c Merge branch 'planck-jack' 2015-01-14 22:43:01 -05:00
Jack Humbert
173dbe3b28 Create keymap_shane.c 2015-01-14 21:36:25 -05:00
Jack Humbert
2e0d872ab7 sean 2015-01-13 18:05:37 -05:00
Jack Humbert
98f486a633 atomic 2015-01-12 12:39:24 -05:00
Jack Humbert
42fe42274f names 2015-01-12 12:37:16 -05:00
Jun Wako
10a6b2c7d8 hhkb: Add Makefile.jp for HHKB JP 2015-01-11 01:54:17 +09:00
Jack Humbert
d6f2f878f9 dotcom 2015-01-05 16:32:15 -05:00
Jack Humbert
33e2a6285f dotcom 2015-01-05 16:27:03 -05:00
Jack Humbert
2de53795d6 Update keymap_jack.c 2015-01-05 13:11:34 -05:00
Jun Wako
3dbb762dcc Merge branch 'mbed_infinity' 2015-01-04 17:22:06 +09:00
Jun Wako
d0fefb76f8 infinity: Add initial files for keyboard support 2015-01-04 17:21:43 +09:00
Jun Wako
c6e533ce83 infinity: Move project specific files to local 2015-01-04 17:21:43 +09:00
Jun Wako
4acde45102 Fix linker script for NVIC vector on RAM 2015-01-04 17:21:43 +09:00
Jun Wako
d5e5dbd0aa Add openocd config files for K20 2015-01-04 17:21:43 +09:00
Jun Wako
e259a722e7 Add keyboard/infinity 2015-01-04 17:21:43 +09:00
Jun Wako
5419130291 Fix ps2 protocol build using ps2_io.h 2015-01-04 17:21:43 +09:00
Jun Wako
75a59e4d12 Update makefiles to mbed-sdk 14666bb 2015-01-04 17:21:42 +09:00
Jun Wako
8f1e311cd7 Ad hoc fix of print and debug for mbed 2015-01-04 17:21:42 +09:00
Oleg Kostyuk
02a9f8a906 Update other_projects.md - added TMK/Ergodox 2015-01-03 15:10:45 +02:00
tmk
06527bde4f bluefruit, pjrc: Update protocols for new API 2015-01-03 12:09:41 +09:00
tmk
22d99f26af Fix modifier stuck of Lock command(#127) 2015-01-01 12:17:11 +09:00
Jun Wako
2e17aa2d60 usb_usb: update README 2014-12-30 13:52:53 +09:00
Vlastimil Ovčáčík
a6d33e2c98 Added support for The Ghost Squid controller used for CM XT keyboard.
- initial commit
- created as clone of the kitten_paw subproject with pins adjusted for CM
  XT
2014-12-28 09:49:57 +01:00
Jun Wako
6a97efcea9 Merge branch 'mumchristmas-Apple_media_key_fix' #160 2014-12-26 13:30:18 +09:00
Jun Wako
af556d39d2 Remove unwanted white space 2014-12-26 13:27:06 +09:00
Colt Ma
5a8dbc63ea Add keycode for Fast Forward & Rewind
KC_MEDIA_FAST_FORWARD
KC_MEDIA_REWIND
2014-12-26 11:02:25 +08:00
tmk
bb25960424 [ps2,terminal_usb] Quick fix for build problem 2014-12-24 11:11:07 +09:00
Jack Humbert
ed8d9a099d added planck folder 2014-12-14 10:30:27 -05:00
Jack Humbert
79849ee534 Update keymap_common.h 2014-12-12 12:12:36 -05:00
Jack Humbert
4e3397ca8a Update matrix.c 2014-12-12 12:12:06 -05:00
Jack Humbert
4a8b9b8a2e Update keymap_planck.c 2014-12-12 12:11:46 -05:00
Jack Humbert
e4c4d6ad0a Merge pull request #1 from charlesmartin/patch-2
Update keymap_planck.c
2014-12-11 17:42:46 -05:00
charlesmartin
5cc0d353a5 Update keymap_planck.c 2014-12-11 17:41:00 -05:00
Jack Humbert
d9a1b9086f led 2014-12-11 17:36:42 -05:00
Jun Wako
a0d6bb1818 usb_usb: Add SpaceFn and hasu keymap 2014-12-11 03:52:05 +09:00
Jun Wako
b47450da9f Merge branch 'usb_usb_hub' 2014-12-11 01:00:32 +09:00
Jun Wako
30864ea5e4 Update README 2014-12-11 00:59:08 +09:00
Jun Wako
27795b6b19 Change debug print config 2014-12-11 00:27:37 +09:00
Jun Wako
c9674d388d Add USB Hub support 2014-12-10 23:52:38 +09:00
Jun Wako
0a181c7eb5 Add submodule legitimate USB_Host_Shield_2.0 2014-12-10 15:54:24 +09:00
Jun Wako
4b69ed2280 Remove submodule USB_Host_Shield_2.0 2014-12-10 15:20:32 +09:00
Jun Wako
0a9d9b8f9c Fix print init; print_set_sendchar in main 2014-12-10 15:10:25 +09:00
Jun Wako
9de992ba0b Change USB PID 2014-12-10 14:52:39 +09:00
Jack Humbert
1c6770f18c init 2014-12-08 17:05:41 -05:00
Jack Humbert
6c27cba5df init 2014-12-08 17:05:02 -05:00
Jun Wako
f6f698dda0 usb_usb: Update for new core layout 2014-12-05 09:59:08 +09:00
Brooks Swinnerton
60acd8996d Fixing typo in console mode 2014-11-30 13:27:59 -05:00
tmk
4192bce16b hhkb: Change keymap and bootmagic salt key 2014-11-25 11:44:57 +09:00
tmk
cc5693e0f1 Merge branch 'u2_fix' 2014-11-24 16:19:00 +09:00
tmk
b92ea1f985 Fix endpoint buffer setting for AT90USB82/162. 2014-11-24 16:04:03 +09:00
tmk
ed52ebb987 Merge branch 'merge_rn42' 2014-11-24 15:36:53 +09:00
tmk
e2077cad45 Change key_t to keypos_t 2014-11-24 15:14:52 +09:00
tmk
a996396045 Fix debug.h 2014-11-24 14:33:50 +09:00
tmk
363950982a Merge branch 'rn42' into merge_rn42
Conflicts:
	.gitignore
	common.mk
	common/debug_config.h
	common/print.h
2014-11-24 13:50:33 +09:00
tmk
60096e11c7 Update doc 2014-11-23 13:44:11 +09:00
tmk
1f96edaed6 Remove MCU dependent code from common/keyboard.c 2014-11-23 13:38:10 +09:00
tmk
608ebe2686 Matrix power saving 2014-11-23 13:08:05 +09:00
Oleg Kostyuk
1a9cec9a03 Documentation: small mistake
Originally reported as https://github.com/cub-uanic/tmk_keyboard/issues/10, all credits to @olivierpons
2014-11-20 23:55:47 +02:00
tmk
c2d830c07c USB initialize when plug-in during battery powered 2014-11-20 17:24:56 +09:00
Jun Wako
eb90ed6238 ps2_usb: Fix README 2014-11-20 16:47:40 +09:00
tmk
09e6f71bff adb_usb: Remove old comment of Makefile 2014-11-20 01:32:20 +09:00
tmk
1961641463 Merge branch 'action_fix' 2014-11-18 04:10:48 +09:00
tmk
a58b9ddbd5 Add initializer of debug_config for GCC < 4.6.0(#144) 2014-11-14 22:53:25 +09:00
tmk
8180709132 Fix for 'unnamed field in initializer' GCC bug(Fix #143) 2014-11-14 17:49:48 +09:00
Simon Stapleton
7b0b8ee017 ignore files with trailing ~ 2014-11-14 17:25:49 +09:00
tmk
c49cb01002 Merge pull request #142 from 0mark/master
fixed vusb variant of converter ps2usb
2014-11-14 04:56:00 +09:00
Stefan Mark
93915040e7 fixed vusb variant of converter ps2usb 2014-11-13 12:07:56 +01:00
tmk
6c06b9031f Add power control of key switch board 2014-10-02 09:58:47 +09:00
tmk
821c719e98 Add action 'Momentary switching with Modifiers' 2014-09-29 10:29:33 +09:00
tmk
8cec0bc9d6 Fix typo of variable name 2014-09-24 15:52:31 +09:00
tmk
27967f2008 Add TMK converter support to Next converter
- change protocol stack to LUFA
2014-09-24 15:50:29 +09:00
tmk
bfd2d969b4 Add keyboard LED control via Bluetooth 2014-09-22 14:20:49 +09:00
tmk
dd3ab65ec3 Merge branch 'usb_usb_fix' 2014-09-22 10:53:35 +09:00
tmk
e3f4f7d8c4 Merge branch 'scottjad-master' into usb_usb_fix 2014-09-22 10:52:27 +09:00
tmk
ea524d7bef Adhoc fix compile error of usb_usb 2014-09-22 10:42:20 +09:00
tmk
2015027da3 Add FET swtich for battery ADC 2014-09-20 06:12:49 +09:00
Scott Jaderholm
a59dea558e usb_usb: Remove mention of downloading LUFA 2014-09-14 21:38:10 -07:00
Scott Jaderholm
c35e3e8596 usb_usb: Remove mention of merged usb_hid branch 2014-09-14 21:37:20 -07:00
tmk
d8dd18b421 Improve rn42_task time resolution 2014-09-05 11:37:05 +09:00
tmk
38714e8c85 Update MEMO and remove a build option to save flash 2014-09-04 17:39:29 +09:00
tmk
3b81ffc16c Monitor battery and alert low voltage 2014-09-04 17:08:23 +09:00
tmk
02939ab1d8 Add battery management 2014-09-04 05:30:00 +09:00
tmk
807ed33a9a Fix rn42_linked() to use pullup 2014-08-30 15:59:41 +09:00
tmk
b9e265368f Merge branch 'rhaberkorn-serial-mouse' 2014-08-26 17:48:34 +09:00
tmk
4799c99b4d Add serialmouser_usb project 2014-08-26 17:46:41 +09:00
tmk
c672cbc31c Add option 7bit data to serial_soft.c 2014-08-26 17:39:04 +09:00
tmk
c4530ab0a8 Add serial_mouse_task in keyboard.c 2014-08-26 17:36:44 +09:00
tmk
8f5f25fcd5 Revert lufa/lufa.c 2014-08-26 17:35:16 +09:00
tmk
8b9c61ade5 Revert ps2_usb/Makefile and config.h 2014-08-26 17:34:10 +09:00
tmk
b316f19871 Merge branch 'serial-mouse' of git://github.com/rhaberkorn/tmk_keyboard into rhaberkorn-serial-mouse 2014-08-26 05:02:37 +09:00
tmk
10eb70acb4 Merge pull request #134 from xauser/master
Support for Lightpad keypad
2014-08-26 04:59:43 +09:00
Ralf Schmitt
af19f56ec9 Support for Lightpad keypad 2014-08-24 16:31:12 +02:00
tmk
28c1bf294c Add files missing for JP support. 2014-08-24 09:51:21 +09:00
tmk
4f22a45b99 Add support for HHKB JP 2014-08-20 13:36:15 +09:00
tmk
523cc6aa2e Add build option and Sun specific commands 2014-08-01 13:26:42 +09:00
tmk
17f22da3cf Update MEMO.txt 2014-07-30 14:38:27 +09:00
tmk
e4b9541041 Add connection indicator 2014-07-30 14:38:27 +09:00
tmk
f441ad07cc Add initial setting of Linked pin 2014-07-30 14:38:27 +09:00
tmk
ae28b16fc6 Add battery monitor and LED control 2014-07-30 14:38:27 +09:00
tmk
21e68fbea4 Add help message 2014-07-30 14:38:27 +09:00
tmk
4b2b32a14b Add rn42_lined(): connection status(GPIO2) 2014-07-30 14:38:26 +09:00
tmk
3e7875455e Add flow control by firmware to serial_uart 2014-07-30 14:38:26 +09:00
tmk
50bcaa66c4 Clean up mbed_onekey 2014-07-30 14:38:26 +09:00
tmk
59ea5e02f7 Mkdir rn42 2014-07-30 14:38:26 +09:00
tmk
b4e4f599df Add rn42_task 2014-07-30 14:38:26 +09:00
tmk
fa545c87f7 Fix rn42.h API 2014-07-30 14:38:26 +09:00
tmk
862f519e24 Add software UART and battery monitor 2014-07-30 14:38:26 +09:00
tmk
01fa462e2c Fix configure mode of RN-42 2014-07-30 14:38:26 +09:00
tmk
1619d68cb2 Update MEMO.txt 2014-07-30 14:38:26 +09:00
tmk
6cec158d1a Update TODO 2014-07-30 14:38:26 +09:00
tmk
faf9adb315 Change keymap for rn42
- rn42 doesn't support mouse button 4 and 5
- rn42 deosn't support browser back and forward
2014-07-30 14:38:26 +09:00
tmk
cd86104377 Fix consumer key bug 2014-07-30 14:38:26 +09:00
tmk
31a298f9d9 Add RN-42 Bluetooth module support 2014-07-30 14:38:26 +09:00
tmk
be19b2bf32 Change buffer size: 256 bytes 2014-07-30 14:38:26 +09:00
tmk
47bc3016d3 Ad hoc fix of command API 2014-07-30 14:38:25 +09:00
tmk
4069776c02 Add initial files for RN-42 2014-07-30 14:38:25 +09:00
tmk
ea60dae6e6 Fix for new API(key_t to keypos_t) 2014-07-30 14:38:25 +09:00
tmk
54aee16a84 Fix timer.h to include AVR specific header 2014-07-30 14:38:25 +09:00
tmk
2e0e21d444 Port action_* to mbed 2014-07-30 14:38:25 +09:00
tmk
adbb86b1ec Merge branch 'mbed' into dev 2014-07-30 14:37:05 +09:00
tmk
a9f5f201ad Add checksum tool for NXP LPC 2014-07-30 14:07:43 +09:00
tmk
b4a91ecf4e Add LED indicator support in mbed 2014-07-30 14:07:43 +09:00
tmk
4c8e0fd0bd Port ps2_usb to mbed 2014-07-30 14:07:43 +09:00
tmk
80c3ff5fa0 Fix build files for mbed 2014-07-30 14:07:43 +09:00
tmk
e81c70149e Fix common files for mbed 2014-07-30 14:07:43 +09:00
tmk
ee70fe59ee Fix debug.h and remove debug_config.h 2014-07-30 14:07:43 +09:00
tmk
c67ae2a6b5 Port action_* to mbed 2014-07-30 14:07:43 +09:00
tmk
04fe78ee0a Fix print and timer 2014-07-30 14:07:43 +09:00
tmk
867f115bee Port timer to mbed 2014-07-30 14:07:43 +09:00
tmk
f15b2691c9 Add keyboard/mbed_onekey 2014-07-30 14:07:43 +09:00
Robin Haberkorn
03fd4a6ff0 updated copyrights: serial_mouse.h, serial_mouse_microsoft.c and serial_mouse_mousesystems.c are new 2014-07-27 17:58:41 +02:00
Robin Haberkorn
eb90284494 serial_mouse: simplified clipping of X/Y/V/H changes below -127 using a MAX macro 2014-07-27 17:38:32 +02:00
Robin Haberkorn
0bfba7acc4 factored out serial_mouse_init() into serial_mouse.h 2014-07-27 17:38:31 +02:00
Robin Haberkorn
7dde35d4f7 integrated serial mouse drivers as a feature into the firmware architecture
* can be enabled by defining Makefile macro SERIAL_MOUSE_MICROSOFT_ENABLE or
   SERIAL_MOUSE_MOUSESYSTEMS_ENABLE.
 * Serial implementation can be chosen via SERIAL_MOUSE_USE_SOFT and
   SERIAL_MOUSE_USE_UART macros
 * UART configuration still has to be done in config.h: I added working clauses
   for both mouse protocols to ps2_usb's config.h
2014-07-27 17:38:31 +02:00
Robin Haberkorn
388fe60c67 fixed PS/2 keyboard converter config
When using the PS/2 interrupt implementation, the DATA pin should be
PD0 as the documentation (README.md) states.
2014-07-27 16:26:38 +02:00
Robin Haberkorn
6bf8000e63 added serial mouse driver for Microsoft and Mousesystems mice
* Both drivers use the interface defined in serial_mouse.h
 * They should work with any UART implementation (hardware/software UART)
 * The Microsoft driver is currently untested.
   The Mousesystems driver is confirmed to work.
2014-07-27 16:23:23 +02:00
tmk
79840c678e Just ignore ADB Service Request
- to support Adjustable keyboard(composite device?)
2014-07-21 18:17:52 +09:00
tmk
31b3e4bc38 Fix 'debug-off' target of hhkb to remove 'print' 2014-07-20 00:37:49 +09:00
tmk
32997200f7 Fix NKRO code when NKRO is disable 2014-07-20 00:31:40 +09:00
tmk
452866319b Fix READEM of hhkb and doc/build.md 2014-07-10 15:28:36 +09:00
tmk
92004d6786 Fix document on HHKB internal 2014-07-09 16:33:40 +09:00
tmk
6013483050 Add HHKB JP support
- scan matrix about twice faster
2014-07-09 15:31:52 +09:00
tmk
34373185b7 Merge pull request #124 from kairyu/6kro
USB 6KRO with pseudo- or half- NKRO feature
2014-07-07 12:46:12 +09:00
tmk
3eeb0a9623 Merge pull request #112 from shayneholmes/ee_nkro_use_reserved_bit
Adding NKRO virtual dip-switch, using existing bit in keymap byte.
2014-07-07 12:01:01 +09:00
tmk
326e559719 Merge pull request #125 from tibounise/patch-1
Fixing typo
2014-07-07 11:14:44 +09:00
tmk
7079ba5d51 Merge pull request #126 from xauser/master
Added support for bpiphany's Kitten Paw controller
2014-07-07 11:13:31 +09:00
Ralf Schmitt
a70acecb1c Added support for bpiphany's Kitten Paw controller (Costar Majestouch) 2014-06-27 13:04:23 +02:00
tmk
9c8d0f6c0d Change keymaps of M0110 2014-06-22 14:15:38 +09:00
TiBounise
91b65c0a54 Fixing typo 2014-06-20 18:43:57 +02:00
tmk
382eaebd3d Fix debug print of ps2_mouse 2014-06-15 14:04:16 +09:00
tmk
aad92d81cb Fix keymap of ps2_usb 2014-06-12 17:33:02 +09:00
tmk
9fdb02017b Add Ctrl + Up(SpaceFN) -> PgUp 2014-06-12 17:23:02 +09:00
tmk
caf7b4e68a Make keymap_hhkb as default and change keymap_hasu 2014-06-12 17:19:58 +09:00
tmk
ed8cf12d25 Add ISO keymap(issue #35) and use new keymap API 2014-05-21 02:43:19 +09:00
Kai Ryu
ac570686b6 New branch for 6KRO feature 2014-05-13 14:57:13 +09:00
tmk
abe5edcaa7 Fix set LED for NKRO keyboard interface 2014-04-29 19:46:37 +09:00
tmk
b03717a10c Unused endpoint of console OUT is commentout'd 2014-04-29 19:45:01 +09:00
tmk
7209c1d387 Add Makefiles for TMK converters. 2014-04-29 19:43:25 +09:00
tmk
110eea578b Fix remotewakeup of PJRC stack(Fix #121)
- without this fix wakeup often fails
- keyboard can wakeup once or twice but fails after that
2014-04-28 16:41:35 +09:00
tmk
37cf260764 Check if LUFA-git really exists(Fix #118) 2014-04-28 08:55:07 +09:00
tmk
22854eb71b NKRO is disable when SET_PROTOCOL(boot)
- Command can force to enable NKRO even when boot mode
- After boot keyboard may be in boot mode due to BIOS' request
2014-04-27 05:36:41 +09:00
tmk
5e3f2d2b2e Make NKRO deafult when it is available
- NKRO is used only when keyboard_protocol = 1(report)
2014-04-27 04:16:49 +09:00
tmk
62117e7ea7 Change MCU setting to ATmega32U2 2014-04-25 15:26:11 +09:00
tmk
2db27ecedd Fix description of pin usage 2014-04-25 15:16:12 +09:00
tmk
fc3a20c534 Add LUFA git repository(release 140302) 2014-04-25 13:39:35 +09:00
tmk
ad4cba172b Move macro definitions from lufa.c to lufa.h 2014-04-25 12:19:14 +09:00
tmk
00e9a342df Fix 'Shift Parentheses' example 2014-04-25 11:47:02 +09:00
tmk
3c5add5f80 Change LUFA build options 2014-04-24 11:26:06 +09:00
tmk
a5d4a1f3e1 Return when ready check loop is timeouted(Fix #115) 2014-04-22 01:37:32 +09:00
tmk
c6902681e7 Change PollingIntervalMS to 10ms(Fix #114) 2014-04-21 12:18:12 +09:00
Shayne Holmes
e5bafff725 Adding NKRO virtual dip-switch, using existing bit in keymap byte.
This takes the last, reserved bit there, but doesn't necessitate
a revision to the magic number because it doesn't alter byte order.
Add reference to NKRO virtual dip-switch to documentation.
2014-04-09 15:54:16 -07:00
tmk
894a387d1f Merge pull request #110 from xauser/master
Enhanced Backlight Support
2014-04-09 10:02:53 +09:00
Ralf Schmitt
589d99b448 New macro: ACTION_BACKLIGHT_LEVEL(level)
To have full control of the backlight level.
2014-04-08 21:02:46 +02:00
tmk
5c63751790 Merge pull request #106 from CJNE/patch-1
Show correct function name for default layer set
2014-03-28 09:22:42 +09:00
Johan Isacsson
13fbab9d8b Show correct function name for default layer set 2014-03-27 23:59:25 +01:00
tmk
1722e04e73 Merge pull request #102 from xauser/master
Support for Lightsaber keyboard
2014-03-24 10:45:46 +09:00
Ralf Schmitt
1482fe92a0 Added Lightsaber FN-layer 2014-03-22 13:13:37 +01:00
Ralf Schmitt
498ea75d1b Lightsaber clean ups 2014-03-22 12:41:45 +01:00
Ralf Schmitt
526d988a0c Added basic led+backlight support 2014-03-19 23:58:08 +01:00
Ralf Schmitt
160678a7b8 Updated Lightsaber read me 2014-03-19 00:21:45 +01:00
Ralf Schmitt
5ca3bde10a Support for Lightsaber keyboard 2014-03-19 00:15:56 +01:00
tmk
7474e14d06 Fix markdown syntax 2014-02-17 16:57:02 +09:00
tmk
a03a197fe2 Merge branch 'ibm4704' 2014-02-17 16:43:19 +09:00
tmk
48d27378f4 Fix README.md and ibm4704.txt 2014-02-17 16:42:43 +09:00
tmk
01f02e8457 Change IS_COMMAND macro 2014-02-17 16:41:40 +09:00
tmk
188ab49dd3 Merge branch 'ibm4704' 2014-02-13 09:45:54 +09:00
tmk
428b236461 Add converter/ibm4704_usb 2014-02-13 09:45:02 +09:00
tmk
294aa396da Rename a file 2014-02-13 09:33:34 +09:00
tmk
776ccd3e67 Change keymap_plain.c 2014-02-11 01:55:49 +09:00
tmk
4ab0ebb199 Change pin configuration 2014-02-11 00:37:19 +09:00
tmk
47d812bfd6 Add connector pinouts 2014-02-10 23:49:57 +09:00
tmk
902afcc509 Add doc 4704.txt and protocol comment 2014-02-10 11:05:18 +09:00
tmk
0f827cf94c Add keymap_hasu.c 2014-02-10 10:01:42 +09:00
tmk
89c7b9b097 Add README.md 2014-02-10 07:02:48 +09:00
tmk
54a06c2520 Change error no and clean debug code 2014-02-10 06:46:43 +09:00
tmk
c4efadf68a Tweak keyboard initialize 2014-02-09 08:25:23 +09:00
tmk
ebe951a445 Add Initial files of 4704_usb 2014-02-09 02:42:17 +09:00
tmk
cb3a547ebf Make modifiers 'weak' in macro 2014-01-28 10:55:51 +09:00
Thomas Russell Murphy
a86c1e2b71 Spellchecking keyboard README files. 2014-01-07 11:03:18 +09:00
Thomas Russell Murphy
3ee5f565ae Spellchecking converter README files. 2014-01-07 11:03:18 +09:00
tmk
6e9260cc17 Merge pull request #92 from bgould/upstream
Added NeXT keyboard converter
2014-01-06 17:57:30 -08:00
Benjamin Gould
f7bb7c4fa9 Added NeXT keyboard converter 2014-01-06 17:07:10 -05:00
tmk
a35cf0e458 Merge pull request #90 from thomasrussellmurphy/master
Spellcheck of README.md and Documentation
2014-01-02 21:10:16 -08:00
Thomas Russell Murphy
e0a95d4075 Spellchecked documentation. 2014-01-02 19:05:52 -05:00
Thomas Russell Murphy
22bd315b64 Spellcheck of README.md 2014-01-02 18:37:20 -05:00
tmk
73ab537bfc Add TRS-80 model 100 instruction 2014-01-03 08:05:19 +09:00
tmk
cb33e78126 Merge branch 'master' of github.com:tmk/tmk_keyboard 2014-01-03 07:10:53 +09:00
tmk
92cda14f7a Add ascii_usb ASCII Serial Console terminal converter 2014-01-03 07:07:42 +09:00
tmk
dcfae0beb5 Merge pull request #88 from sigma/sun_usb_fixes
Sun usb fixes
2013-12-28 03:08:11 -08:00
Yann Hodique
8e9498f066 fix hard-coded keys
values provided to macro were not used for the "K61,K49,K33, K30" block
2013-12-26 21:52:58 -08:00
Yann Hodique
8fc26a1360 fix compilation 2013-12-26 21:16:27 -08:00
tmk
37bf34d5b1 Merge pull request #86 from tibounise/master
Fixing a typo
2013-12-16 16:02:08 -08:00
TiBounise
696a7fbc6f Fixing a typo 2013-12-16 19:53:02 +01:00
tmk
ac1acca8d7 Add description of keyboard report in report.h 2013-12-16 21:56:44 +09:00
tmk
c9dee36e42 Make ps2_usart default and fix SpaceFN 2013-12-02 12:04:50 +09:00
tmk
0b917d4f10 Fix README.md of hhkb 2013-11-30 12:33:32 +09:00
tmk
6d76e60095 Merge branch 'hhkb_spaceFN' 2013-11-30 12:04:39 +09:00
tmk
119c34e094 Add SpaceFN layout for HHKB 2013-11-30 12:03:19 +09:00
tmk
e3bcdd8211 Add SpaceFN keymap and JIS keymap 2013-11-29 23:52:29 +09:00
tmk
fd7833388c Add new keymap framework 2013-11-29 09:12:28 +09:00
tmk
d2a83dae8f Merge pull request #80 from gblargg/master
Fixed handling of ADB event with key down and key up for same key all in...
2013-11-27 23:35:38 -08:00
tmk
fd9ee507a5 Merge branch 'modstaptoggle' of git://github.com/simonmelhart/tmk_keyboard into simonmelhart-modstaptoggle
Conflicts:
	common/action_code.h
2013-11-28 16:31:06 +09:00
tmk
f3132adb33 Merge pull request #81 from bgould/master
Add support for Adafruit's Bluefruit
2013-11-27 23:23:08 -08:00
tmk
bc5b64d832 Merge branch 'ps2_keyboard_fix' 2013-11-28 16:02:29 +09:00
tmk
0b9c0f6012 Add new keymap file 2013-11-28 16:00:16 +09:00
tmk
10b2b1ae43 Fix key stack and PS/2 Overrun 2013-11-28 15:50:55 +09:00
tmk
8b4fa599cf Add included header file and fix debug print 2013-11-28 14:44:59 +09:00
tmk
05be3d85d1 Fix pin configuration of onekey for PS/2 mouse 2013-11-28 14:43:47 +09:00
tmk
4eb27ee890 Add ps2_interrupt.c 2013-11-28 14:20:00 +09:00
tmk
532e100450 Add ps2_usart.c and fix set_led at USB wake 2013-11-28 11:31:48 +09:00
Benjamin Gould
f7db144959 changed tabs to spaces in bluefruit.c 2013-11-27 00:32:20 -05:00
Benjamin Gould
05792e2b83 Added bluefruit protocol and converter for 70% M 2013-11-27 00:24:57 -05:00
Shay Green
263c462656 Fixed handling of ADB event with key down and key up for same key all in one 2013-11-26 15:21:43 -06:00
tmk
9d26053f1c Fix ps2_host_recv_response 2013-11-26 14:31:57 +09:00
tmk
9ae9742ac5 Add ps2_busywait.c and recfactor PS/2 protocol 2013-11-25 17:43:26 +09:00
tmk
d5ecbb83da Add printf macro as alias of xprintf 2013-11-25 17:39:45 +09:00
tmk
04c9501574 Fix Makfile and config.h for LUFA in ps2_usb 2013-11-25 11:25:44 +09:00
Simon Melhart
a6afa845b9 Add tap toggle modifiers
Including documentation.
2013-11-20 09:21:33 -08:00
2509 changed files with 296052 additions and 83532 deletions

94
.gitattributes vendored Normal file
View File

@@ -0,0 +1,94 @@
# auto for anything unspecified
* text=auto
# sources
*.c text
*.cc text
*.cxx text
*.cpp text
*.c++ text
*.hpp text
*.h text
*.h++ text
*.hh text
*.bat text
*.coffee text
*.css text
*.htm text
*.html text
*.inc text
*.ini text
*.js text
*.jsx text
*.json text
*.less text
*.php text
*.pl text
*.py text
*.rb text
*.sass text
*.scm text
*.scss text
*.sh text
*.sql text
*.styl text
*.ts text
*.xml text
*.xhtml text
# make files (need to always use lf for compatibility with Windows 10 bash)
Makefile eol=lf
*.mk eol=lf
# make files (need to always use lf for compatibility with Windows 10 bash)
*.sh eol=lf
# documentation
*.markdown text
*.md text
*.mdwn text
*.mdown text
*.mkd text
*.mkdn text
*.mdtxt text
*.mdtext text
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
INSTALL text
license text
LICENSE text
NEWS text
readme text
*README* text
TODO text
GRAPHICS
*.ai binary
*.bmp binary
*.eps binary
*.gif binary
*.ico binary
*.jng binary
*.jp2 binary
*.jpg binary
*.jpeg binary
*.jpx binary
*.jxr binary
*.pdf binary
*.png binary
*.psb binary
*.psd binary
*.svg text
*.svgz binary
*.tif binary
*.tiff binary
*.wbmp binary
*.webp binary
# hex files
*.hex binary
*.eep binary

24
.gitignore vendored
View File

@@ -3,8 +3,32 @@
*.eep
*.elf
*.hex
!util/bootloader.hex
!quantum/tools/eeprom_reset.hex
*.log
*.lss
*.lst
*.map
*.sym
*.swp
tags
*~
build/
.build/
*.bak
.vagrant/
quantum/version.h
.idea/
CMakeLists.txt
.DS_STORE
# Eclipse/PyCharm/Other IDE Settings
.cproject
.project
.settings/
.idea
.browse.VC.db*
*.stackdump
util/Win_Check_Output.txt
.vscode
.stfolder

15
.gitmodules vendored
View File

@@ -1,3 +1,12 @@
[submodule "protocol/usb_hid/USB_Host_Shield_2.0"]
path = protocol/usb_hid/USB_Host_Shield_2.0
url = git@github.com:tmk/USB_Host_Shield_2.0.git
[submodule "lib/chibios"]
path = lib/chibios
url = https://github.com/ChibiOS/ChibiOS.git
[submodule "lib/chibios-contrib"]
path = lib/chibios-contrib
url = https://github.com/ChibiOS/ChibiOS-Contrib.git
[submodule "lib/ugfx"]
path = lib/ugfx
url = https://bitbucket.org/Tectu/ugfx
[submodule "lib/googletest"]
path = lib/googletest
url = https://github.com/google/googletest

39
.travis.yml Normal file
View File

@@ -0,0 +1,39 @@
os: linux
dist: trusty
sudo: required
language: c
branches:
except:
- /^.*-automated-build$/
- /^[0-9]+\.[0-9]+\.[0-9]+/
env:
global:
- secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM=
before_install:
- wget http://www.atmel.com/images/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz
install:
- tar -zxf avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz
- export PATH="$PATH:$TRAVIS_BUILD_DIR/avr8-gnu-toolchain-linux_x86_64/bin"
before_script:
- avr-gcc --version
script:
- make test AUTOGEN=false
- bash util/travis_build.sh
addons:
apt:
packages:
- dfu-programmer
- pandoc
- gcc-arm-none-eabi
- binutils-arm-none-eabi
- libnewlib-arm-none-eabi
- diffutils
after_success:
bash util/travis_compiled_push.sh
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/cca31de3d44b9adb617b
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always

29
Dockerfile Normal file
View File

@@ -0,0 +1,29 @@
FROM debian:jessie
MAINTAINER Erik Dasque <erik@frenchguys.com>
RUN apt-get update
RUN apt-get install --no-install-recommends -y build-essential \
gcc \
unzip \
wget \
zip \
gcc-avr \
binutils-avr \
avr-libc \
dfu-programmer \
dfu-util \
gcc-arm-none-eabi \
binutils-arm-none-eabi \
libnewlib-arm-none-eabi \
git
RUN apt-get clean
RUN rm -rf /var/lib/apt/lists/*
ENV keyboard=ergodox
ENV subproject=ez
ENV keymap=default
VOLUME /qmk
WORKDIR /qmk
CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap}

540
Makefile Normal file
View File

@@ -0,0 +1,540 @@
ifndef VERBOSE
.SILENT:
endif
# Never run this makefile in parallel, as it could screw things up
# It won't affect the submakes, so you still get the speedup from specifying -jx
.NOTPARALLEL:
# Allow the silent with lower caps to work the same way as upper caps
ifdef silent
SILENT = $(silent)
endif
ifdef SILENT
SUB_IS_SILENT := $(SILENT)
endif
# We need to make sure that silent is always turned off at the top level
# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly
override SILENT := false
ON_ERROR := error_occurred=1
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
ROOT_DIR := $(dir $(ROOT_MAKEFILE))
ifeq ($(ROOT_DIR),)
ROOT_DIR := .
endif
ABS_STARTING_MAKEFILE := $(abspath $(STARTING_MAKEFILE))
ABS_ROOT_MAKEFILE := $(abspath $(ROOT_MAKEFILE))
ABS_STARTING_DIR := $(dir $(ABS_STARTING_MAKEFILE))
ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE))
STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR))
BUILD_DIR := $(ROOT_DIR)/.build
TEST_DIR := $(BUILD_DIR)/test
ERROR_FILE := $(BUILD_DIR)/error_occurred
MAKEFILE_INCLUDED=yes
# Helper function to process the newt element of a space separated path
# It works a bit like the traditional functional head tail
# so the CURRENT_PATH_ELEMENT will become the new head
# and the PATH_ELEMENTS are the rest that are still unprocessed
define NEXT_PATH_ELEMENT
$$(eval CURRENT_PATH_ELEMENT := $$(firstword $$(PATH_ELEMENTS)))
$$(eval PATH_ELEMENTS := $$(wordlist 2,9999,$$(PATH_ELEMENTS)))
endef
# We change the / to spaces so that we more easily can work with the elements
# separately
PATH_ELEMENTS := $(subst /, ,$(STARTING_DIR))
# Initialize the path elements list for further processing
$(eval $(call NEXT_PATH_ELEMENT))
# This function sets the KEYBOARD; KEYMAP and SUBPROJECT to the correct
# variables depending on which directory you stand in.
# It's really a very simple if else chain, if you squint enough,
# but the makefile syntax makes it very verbose.
# If we are in a subfolder of keyboards
ifeq ($(CURRENT_PATH_ELEMENT),keyboards)
$(eval $(call NEXT_PATH_ELEMENT))
KEYBOARD := $(CURRENT_PATH_ELEMENT)
$(eval $(call NEXT_PATH_ELEMENT))
# If we are in a subfolder of keymaps, or in other words in a keymap
# folder
ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
$(eval $(call NEXT_PATH_ELEMENT))
KEYMAP := $(CURRENT_PATH_ELEMENT)
# else if we are not in the keyboard folder itself
else ifneq ($(CURRENT_PATH_ELEMENT),)
# the we can assume it's a subproject, as no other folders
# should have make files in them
SUBPROJECT := $(CURRENT_PATH_ELEMENT)
$(eval $(call NEXT_PATH_ELEMENT))
# if we are inside a keymap folder of a subproject
ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
$(eval $(call NEXT_PATH_ELEMENT))
KEYMAP := $(CURRENT_PATH_ELEMENT)
endif
endif
endif
# Only consider folders with makefiles, to prevent errors in case there are extra folders
KEYBOARDS := $(notdir $(patsubst %/Makefile,%,$(wildcard $(ROOT_DIR)/keyboards/*/Makefile)))
#Compatibility with the old make variables, anything you specify directly on the command line
# always overrides the detected folders
ifdef keyboard
KEYBOARD := $(keyboard)
endif
ifdef sub
SUBPROJECT := $(sub)
endif
ifdef subproject
SUBPROJECT := $(subproject)
endif
ifdef keymap
KEYMAP := $(keymap)
endif
# Uncomment these for debugging
#$(info Keyboard: $(KEYBOARD))
#$(info Keymap: $(KEYMAP))
#$(info Subproject: $(SUBPROJECT))
#$(info Keyboards: $(KEYBOARDS))
# Set the default goal depending on where we are running make from
# this handles the case where you run make without any arguments
.DEFAULT_GOAL := all
ifneq ($(KEYMAP),)
ifeq ($(SUBPROJECT),)
# Inside a keymap folder, just build the keymap, with the
# default subproject
.DEFAULT_GOAL := $(KEYBOARD)-$(KEYMAP)
else
# Inside a subproject keyamp folder, build the keymap
# for that subproject
.DEFAULT_GOAL := $(KEYBOARD)-$(SUBPROJECT)-$(KEYMAP)
endif
else ifneq ($(SUBPROJECT),)
# Inside a subproject folder, build all keymaps for that subproject
.DEFAULT_GOAL := $(KEYBOARD)-$(SUBPROJECT)-allkm
else ifneq ($(KEYBOARD),)
# Inside a keyboard folder, build all keymaps for all subprojects
# Note that this is different from the old behaviour, which would
# build only the default keymap of the default keyboard
.DEFAULT_GOAL := $(KEYBOARD)-allsp-allkm
endif
# Compare the start of the RULE variable with the first argument($1)
# If the rules equals $1 or starts with $1-, RULE_FOUND is set to true
# and $1 is removed from the RULE variable
# Otherwise the RULE_FOUND variable is set to false, and RULE left as it was
# The function is a bit tricky, since there's no built in $(startswith) function
define COMPARE_AND_REMOVE_FROM_RULE_HELPER
ifeq ($1,$$(RULE))
RULE:=
RULE_FOUND := true
else
STARTDASH_REMOVED=$$(subst START$1-,,START$$(RULE))
ifneq ($$(STARTDASH_REMOVED),START$$(RULE))
RULE_FOUND := true
RULE := $$(STARTDASH_REMOVED)
else
RULE_FOUND := false
endif
endif
endef
# This makes it easier to call COMPARE_AND_REMOVE_FROM_RULE, since it makes it behave like
# a function that returns the value
COMPARE_AND_REMOVE_FROM_RULE = $(eval $(call COMPARE_AND_REMOVE_FROM_RULE_HELPER,$1))$(RULE_FOUND)
# Recursively try to find a match for the start of the rule to be checked
# $1 The list to be checked
# If a match is found, then RULE_FOUND is set to true
# and MATCHED_ITEM to the item that was matched
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER3
ifneq ($1,)
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,$$(firstword $1)),true)
MATCHED_ITEM := $$(firstword $1)
else
$$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER3,$$(wordlist 2,9999,$1)))
endif
endif
endef
# A recursive helper function for finding the longest match
# $1 The list to be checked
# It works by always removing the currently matched item from the list
# and call itself recursively, until a match is found
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2
# Stop the recursion when the list is empty
ifneq ($1,)
RULE_BEFORE := $$(RULE)
$$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER3,$1))
# If a match is found in the current list, otherwise just return what we had before
ifeq ($$(RULE_FOUND),true)
# Save the best match so far and call itself recursively
BEST_MATCH := $$(MATCHED_ITEM)
BEST_MATCH_RULE := $$(RULE)
RULE_FOUND := false
RULE := $$(RULE_BEFORE)
$$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER2,$$(filter-out $$(MATCHED_ITEM),$1)))
endif
endif
endef
# Recursively try to find the longest match for the start of the rule to be checked
# $1 The list to be checked
# If a match is found, then RULE_FOUND is set to true
# and MATCHED_ITEM to the item that was matched
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER
BEST_MATCH :=
$$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER2,$1))
ifneq ($$(BEST_MATCH),)
RULE_FOUND := true
RULE := $$(BEST_MATCH_RULE)
MATCHED_ITEM := $$(BEST_MATCH)
else
RULE_FOUND := false
MATCHED_ITEM :=
endif
endef
# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST
TRY_TO_MATCH_RULE_FROM_LIST = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER,$1))$(RULE_FOUND)
define ALL_IN_LIST_LOOP
OLD_RULE$1 := $$(RULE)
$$(eval $$(call $1,$$(ITEM$1)))
RULE := $$(OLD_RULE$1)
endef
define PARSE_ALL_IN_LIST
$$(foreach ITEM$1,$2,$$(eval $$(call ALL_IN_LIST_LOOP,$1)))
endef
# The entry point for rule parsing
# parses a rule in the format <keyboard>-<subproject>-<keymap>-<target>
# but this particular function only deals with the first <keyboard> part
define PARSE_RULE
RULE := $1
COMMANDS :=
# If the rule starts with allkb, then continue the parsing from
# PARSE_ALL_KEYBOARDS
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkb),true)
$$(eval $$(call PARSE_ALL_KEYBOARDS))
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
$$(eval $$(call PARSE_TEST))
# If the rule starts with the name of a known keyboard, then continue
# the parsing from PARSE_KEYBOARD
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true)
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
# Otherwise use the KEYBOARD variable, which is determined either by
# the current directory you run make from, or passed in as an argument
else ifneq ($$(KEYBOARD),)
$$(eval $$(call PARSE_KEYBOARD,$$(KEYBOARD)))
else
$$(info make: *** No rule to make target '$1'. Stop.)
# Notice the tab instead of spaces below!
exit 1
endif
endef
# $1 = Keyboard
# Parses a rule in the format <subproject>-<keymap>-<target>
# the keyboard is already known when entering this function
define PARSE_KEYBOARD
CURRENT_KB := $1
# A subproject is any keyboard subfolder with a makefile
SUBPROJECTS := $$(notdir $$(patsubst %/Makefile,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/*/Makefile)))
# if the rule starts with allsp, then continue with looping over all subprojects
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allsp),true)
$$(eval $$(call PARSE_ALL_SUBPROJECTS))
# A special case for matching the defaultsp (default subproject)
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,defaultsp),true)
$$(eval $$(call PARSE_SUBPROJECT,defaultsp))
# If the rule starts with the name of a known subproject
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(SUBPROJECTS)),true)
$$(eval $$(call PARSE_SUBPROJECT,$$(MATCHED_ITEM)))
# Try to use the SUBPROJECT variable, which is either determined by the
# directory which invoked make, or passed as an argument to make
else ifneq ($$(SUBPROJECT),)
$$(eval $$(call PARSE_SUBPROJECT,$$(SUBPROJECT)))
# If there's no matching subproject, we assume it's the default
# This will allow you to leave the subproject part of the target out
else
$$(eval $$(call PARSE_SUBPROJECT,))
endif
endef
# if we are going to compile all keyboards, match the rest of the rule
# for each of them
define PARSE_ALL_KEYBOARDS
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(KEYBOARDS)))
endef
# $1 Subproject
# When entering this, the keyboard and subproject are known, so now we need
# to determine which keymaps are going to get compiled
define PARSE_SUBPROJECT
# If we want to compile the default subproject, then we need to
# include the correct makefile to determine the actual name of it
CURRENT_SP := $1
ifeq ($$(CURRENT_SP),)
CURRENT_SP := defaultsp
endif
ifeq ($$(CURRENT_SP),defaultsp)
SUBPROJECT_DEFAULT=
$$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/Makefile)
CURRENT_SP := $$(SUBPROJECT_DEFAULT)
endif
# If current subproject is empty (the default was not defined), and we have a list of subproject
# then make all of them
ifeq ($$(CURRENT_SP),)
ifneq ($$(SUBPROJECTS),)
CURRENT_SP := allsp
endif
endif
# The special allsp is handled later
ifneq ($$(CURRENT_SP),allsp)
# get a list of all keymaps
KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.)))
ifneq ($$(CURRENT_SP),)
# if the subproject is defined, then also look for keymaps inside the subproject folder
SP_KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/$$(CURRENT_SP)/keymaps/*/.)))
KEYMAPS := $$(sort $$(KEYMAPS) $$(SP_KEYMAPS))
endif
# if the rule after removing the start of it is empty (we haven't specified a kemap or target)
# compile all the keymaps
ifeq ($$(RULE),)
$$(eval $$(call PARSE_ALL_KEYMAPS))
# The same if allkm was specified
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkm),true)
$$(eval $$(call PARSE_ALL_KEYMAPS))
# Try to match the specified keyamp with the list of known keymaps
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true)
$$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
# Otherwise try to match the keymap from the current folder, or arguments to the make command
else ifneq ($$(KEYMAP),)
$$(eval $$(call PARSE_KEYMAP,$$(KEYMAP)))
# No matching keymap found, so we assume that the rest of the rule is the target
# If we haven't been able to parse out a subproject, then make all of them
# This is consistent with running make without any arguments from the keyboard
# folder
else ifeq ($1,)
$$(eval $$(call PARSE_ALL_SUBPROJECTS))
# Otherwise, make all keymaps, again this is consistent with how it works without
# any arguments
else
$$(eval $$(call PARSE_ALL_KEYMAPS))
endif
else
# As earlier mentioned when allsb is specified, we call our self recursively
# for all of the subprojects
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$(SUBPROJECTS)))
endif
endef
# If we want to parse all subprojects, but the keyboard doesn't have any,
# then use defaultsp instead
define PARSE_ALL_SUBPROJECTS
ifeq ($$(SUBPROJECTS),)
$$(eval $$(call PARSE_SUBPROJECT,defaultsp))
else
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS)))
endif
endef
# $1 Keymap
# This is the meat of compiling a keyboard, when entering this, everything is known
# keyboard, subproject, and keymap
# Note that we are not directly calling the command here, but instead building a list,
# which will later be processed
define PARSE_KEYMAP
CURRENT_KM = $1
# The rest of the rule is the target
# Remove the leading "-" from the target, as it acts as a separator
MAKE_TARGET := $$(patsubst -%,%,$$(RULE))
# We need to generate an unique indentifer to append to the COMMANDS list
COMMAND := COMMAND_KEYBOARD_$$(CURRENT_KB)_SUBPROJECT_$(CURRENT_SP)_KEYMAP_$$(CURRENT_KM)
# If we are compiling a keyboard without a subproject, we want to display just the name
# of the keyboard, otherwise keyboard/subproject
ifeq ($$(CURRENT_SP),)
KB_SP := $(CURRENT_KB)
else
KB_SP := $(CURRENT_KB)/$$(CURRENT_SP)
endif
# Format it in bold
KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
# Specify the variables that we are passing forward to submake
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) SUBPROJECT=$$(CURRENT_SP) KEYMAP=$$(CURRENT_KM)
# And the first part of the make command
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET)
# The message to display
MAKE_MSG := $$(MSG_MAKE_KB)
# We run the command differently, depending on if we want more output or not
# The true version for silent output and the false version otherwise
$$(eval $$(call BUILD))
endef
define BUILD
MAKE_VARS += VERBOSE=$(VERBOSE) COLOR=$(COLOR)
COMMANDS += $$(COMMAND)
COMMAND_true_$$(COMMAND) := \
printf "$$(MAKE_MSG)" | \
$$(MAKE_MSG_FORMAT); \
LOG=$$$$($$(MAKE_CMD) $$(MAKE_VARS) SILENT=true 2>&1) ; \
if [ $$$$? -gt 0 ]; \
then $$(PRINT_ERROR_PLAIN); \
elif [ "$$$$LOG" != "" ] ; \
then $$(PRINT_WARNING_PLAIN); \
else \
$$(PRINT_OK); \
fi;
COMMAND_false_$$(COMMAND) := \
printf "$$(MAKE_MSG)\n\n"; \
$$(MAKE_CMD) $$(MAKE_VARS) SILENT=false; \
if [ $$$$? -gt 0 ]; \
then error_occurred=1; \
fi;
endef
# Just parse all the keymaps for a specific keyboard
define PARSE_ALL_KEYMAPS
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS)))
endef
define BUILD_TEST
TEST_NAME := $1
MAKE_TARGET := $2
COMMAND := $1
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_test.mk $$(MAKE_TARGET)
MAKE_VARS := TEST=$$(TEST_NAME)
MAKE_MSG := $$(MSG_MAKE_TEST)
$$(eval $$(call BUILD))
ifneq ($$(MAKE_TARGET),clean)
TEST_EXECUTABLE := $$(TEST_DIR)/$$(TEST_NAME).elf
TESTS += $$(TEST_NAME)
TEST_MSG := $$(MSG_TEST)
$$(TEST_NAME)_COMMAND := \
printf "$$(TEST_MSG)\n"; \
$$(TEST_EXECUTABLE); \
if [ $$$$? -gt 0 ]; \
then error_occurred=1; \
fi; \
printf "\n";
endif
endef
define PARSE_TEST
TESTS :=
TEST_NAME := $$(firstword $$(subst -, ,$$(RULE)))
TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME)-,,$$(RULE)))
ifeq ($$(TEST_NAME),all)
MATCHED_TESTS := $$(TEST_LIST)
else
MATCHED_TESTS := $$(foreach TEST,$$(TEST_LIST),$$(if $$(findstring $$(TEST_NAME),$$(TEST)),$$(TEST),))
endif
$$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(TEST_TARGET))))
endef
# Set the silent mode depending on if we are trying to compile multiple keyboards or not
# By default it's on in that case, but it can be overridden by specifying silent=false
# from the command line
define SET_SILENT_MODE
ifdef SUB_IS_SILENT
SILENT_MODE := $(SUB_IS_SILENT)
else ifeq ($$(words $$(COMMANDS)),1)
SILENT_MODE := false
else
SILENT_MODE := true
endif
endef
include $(ROOT_DIR)/message.mk
# The empty line is important here, as it will force a new shell to be created for each command
# Otherwise the command line will become too long with a lot of keyboards and keymaps
define RUN_COMMAND
+error_occurred=0;\
$(COMMAND_$(SILENT_MODE)_$(COMMAND))\
if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
endef
define RUN_TEST
+error_occurred=0;\
$($(TEST)_COMMAND)\
if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
endef
# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
SUBPROJECTS := $(notdir $(patsubst %/Makefile,%,$(wildcard ./*/Makefile)))
.PHONY: $(SUBPROJECTS)
$(SUBPROJECTS): %: %-allkm
# Let's match everything, we handle all the rule parsing ourselves
.PHONY: %
%:
# Check if we have the CMP tool installed
cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
# Check if the submodules are dirty, and display a warning if they are
ifndef SKIP_GIT
git submodule status --recursive 2>/dev/null | \
while IFS= read -r x; do \
case "$$x" in \
\ *) ;; \
*) printf "$(MSG_SUBMODULE_DIRTY)";break;; \
esac \
done
endif
rm -f $(ERROR_FILE) > /dev/null 2>&1
$(eval $(call PARSE_RULE,$@))
$(eval $(call SET_SILENT_MODE))
# Run all the commands in the same shell, notice the + at the first line
# it has to be there to allow parallel execution of the submake
# This always tries to compile everything, even if error occurs in the middle
# But we return the error code at the end, to trigger travis failures
$(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND))
if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
$(foreach TEST,$(TESTS),$(RUN_TEST))
if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
# All should compile everything
.PHONY: all
all: all-keyboards test-all
# Define some shortcuts, mostly for compatibility with the old syntax
.PHONY: all-keyboards
all-keyboards: allkb-allsp-allkm
.PHONY: all-keyboards-defaults
all-keyboards-defaults: allkb-allsp-default
.PHONY: test
test: test-all
.PHONY: test-clean
test-clean: test-all-clean
# Generate the version.h file
ifndef SKIP_GIT
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
else
GIT_VERSION := NA
endif
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
include $(ROOT_DIR)/testlist.mk

98
Vagrantfile vendored Normal file
View File

@@ -0,0 +1,98 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
# You can only have one config.vm.box uncommented at a time
# Comment this and uncomment another if you don't want to use the minimal Arch box
#config.vm.box = "dragon788/arch-ala-elasticdog"
# VMware/Virtualbox 64 bit
config.vm.box = "phusion/ubuntu-14.04-amd64"
#
# VMware/Virtualbox 64 bit
#config.vm.box = "puphpet/centos65-x64"
#
# The opensuse boxes don't have dfu-util in their default repositories
#
# The virtualbox version has tools issues
# VMware/Virtualbox 64 bit
#config.vm.box = "bento/opensuse-13.2-x86_64"
#
# Virtualbox only
#config.vm.box = "bento/opensuse-13.2-i386"
# config.vm.box = ""
# config.vm.box = ""
# This section allows you to customize the Virtualbox VM
# settings, ie showing the GUI or upping the memory
# or cores if desired
config.vm.provider "virtualbox" do |vb|
# Hide the VirtualBox GUI when booting the machine
vb.gui = false
# Uncomment the below lines if you want to program
# your Teensy via the VM rather than your host OS
#vb.customize ['modifyvm', :id, '--usb', 'on']
#vb.customize ['usbfilter', 'add', '0',
# '--target', :id,
# '--name', 'teensy',
# '--vendorid', '0x16c0',
# '--productid','0x0478'
# ]
# Customize the amount of memory on the VM:
vb.memory = "512"
end
# This section allows you to customize the VMware VM
# settings, ie showing the GUI or upping the memory
# or cores if desired
config.vm.provider "vmware_workstation" do |vmw|
# Hide the VMware GUI when booting the machine
vmw.gui = false
# Customize the amount of memory on the VM:
vmw.memory = "512"
end
config.vm.provider "vmware_fusion" do |vmf|
# Hide the vmfare GUI when booting the machine
vmf.gui = false
# Customize the amount of memory on the VM:
vmf.memory = "512"
end
# Docker provider pulls from hub.docker.com respecting docker.image if
# config.vm.box is nil. Note that this bind-mounts from the current dir to
# /vagrant in the guest, so unless your UID is 1000 to match vagrant in the
# image, you'll need to: chmod -R a+rw .
config.vm.provider "docker" do |docker, override|
override.vm.box = nil
docker.image = "jesselang/debian-vagrant:jessie"
docker.has_ssh = true
end
# This script ensures the required packages for AVR programming are installed
# It also ensures the system always gets the latest updates when powered on
# If this causes issues you can run a 'vagrant destroy' and then
# add a # before ,args: and run 'vagrant up' to get a working
# non-updated box and then attempt to troubleshoot or open a Github issue
config.vm.provision "shell", run: "always", path: "./util/install_dependencies.sh", args: "-update"
config.vm.post_up_message = <<-EOT
Log into the VM using 'vagrant ssh' on OSX or from Git Bash (Win)
or 'vagrant ssh-config' and Putty or Bitvise SSH or another SSH tool
Change directory (cd) to the keyboard you wish to program
(Optionally) modify your layout,
then run 'make clean'
and then 'make' to compile the .eep and .hex files.
Or you can copy and paste the example line below.
cd /vagrant; cd keyboards; cd ergodox; make clean; make
EOT
end

271
build_keyboard.mk Normal file
View File

@@ -0,0 +1,271 @@
ifndef VERBOSE
.SILENT:
endif
.DEFAULT_GOAL := all
include common.mk
ifneq ($(SUBPROJECT),)
TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP)
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)_$(SUBPROJECT)
else
TARGET ?= $(KEYBOARD)_$(KEYMAP)
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)
endif
# Force expansion
TARGET := $(TARGET)
MASTER ?= left
ifdef master
MASTER = $(master)
endif
ifeq ($(MASTER),right)
OPT_DEFS += -DMASTER_IS_ON_RIGHT
else
ifneq ($(MASTER),left)
$(error MASTER does not have a valid value(left/right))
endif
endif
KEYBOARD_PATH := keyboards/$(KEYBOARD)
KEYBOARD_C := $(KEYBOARD_PATH)/$(KEYBOARD).c
ifneq ("$(wildcard $(KEYBOARD_C))","")
include $(KEYBOARD_PATH)/rules.mk
else
$(error "$(KEYBOARD_C)" does not exist)
endif
ifneq ($(SUBPROJECT),)
SUBPROJECT_PATH := keyboards/$(KEYBOARD)/$(SUBPROJECT)
SUBPROJECT_C := $(SUBPROJECT_PATH)/$(SUBPROJECT).c
ifneq ("$(wildcard $(SUBPROJECT_C))","")
OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT)
include $(SUBPROJECT_PATH)/rules.mk
else
$(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist)
endif
endif
# We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA
ifdef MCU_FAMILY
PLATFORM=CHIBIOS
else
PLATFORM=AVR
endif
ifeq ($(PLATFORM),CHIBIOS)
include $(TMK_PATH)/protocol/chibios.mk
include $(TMK_PATH)/chibios.mk
OPT_OS = chibios
ifneq ("$(wildcard $(SUBPROJECT_PATH)/bootloader_defs.h)","")
OPT_DEFS += -include $(SUBPROJECT_PATH)/bootloader_defs.h
else ifneq ("$(wildcard $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
OPT_DEFS += -include $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h
endif
endif
CONFIG_H = $(KEYBOARD_PATH)/config.h
ifneq ($(SUBPROJECT),)
ifneq ("$(wildcard $(SUBPROJECT_C))","")
CONFIG_H = $(SUBPROJECT_PATH)/config.h
endif
endif
# Save the defines and includes here, so we don't include any keymap specific ones
PROJECT_DEFS := $(OPT_DEFS)
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(SUBPROJECT_PATH) $(KEYBOARD_PATH)
PROJECT_CONFIG := $(CONFIG_H)
MAIN_KEYMAP_PATH := $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
MAIN_KEYMAP_C := $(MAIN_KEYMAP_PATH)/keymap.c
SUBPROJ_KEYMAP_PATH := $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)
SUBPROJ_KEYMAP_C := $(SUBPROJ_KEYMAP_PATH)/keymap.c
ifneq ("$(wildcard $(SUBPROJ_KEYMAP_C))","")
-include $(SUBPROJ_KEYMAP_PATH)/Makefile
KEYMAP_C := $(SUBPROJ_KEYMAP_C)
KEYMAP_PATH := $(SUBPROJ_KEYMAP_PATH)
else ifneq ("$(wildcard $(MAIN_KEYMAP_C))","")
-include $(MAIN_KEYMAP_PATH)/Makefile
KEYMAP_C := $(MAIN_KEYMAP_C)
KEYMAP_PATH := $(MAIN_KEYMAP_PATH)
else
$(error "$(MAIN_KEYMAP_C)/keymap.c" does not exist)
endif
# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
CONFIG_H = $(KEYMAP_PATH)/config.h
endif
# # project specific files
SRC += $(KEYBOARD_C) \
$(KEYMAP_C) \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c \
$(QUANTUM_DIR)/process_keycode/process_leader.c
ifneq ($(SUBPROJECT),)
SRC += $(SUBPROJECT_C)
endif
ifndef CUSTOM_MATRIX
SRC += $(QUANTUM_DIR)/matrix.c
endif
ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
OPT_DEFS += -DAPI_SYSEX_ENABLE
SRC += $(QUANTUM_DIR)/api/api_sysex.c
OPT_DEFS += -DAPI_ENABLE
SRC += $(QUANTUM_DIR)/api.c
MIDI_ENABLE=yes
endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
ifeq ($(strip $(COMBO_ENABLE)), yes)
OPT_DEFS += -DCOMBO_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
endif
ifeq ($(strip $(VIRTSER_ENABLE)), yes)
OPT_DEFS += -DVIRTSER_ENABLE
endif
ifeq ($(strip $(AUDIO_ENABLE)), yes)
OPT_DEFS += -DAUDIO_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
SRC += $(QUANTUM_DIR)/audio/audio.c
SRC += $(QUANTUM_DIR)/audio/voices.c
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes)
OPT_DEFS += -DFAUXCLICKY_ENABLE
SRC += $(QUANTUM_DIR)/fauxclicky.c
endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
OPT_DEFS += -DRGBLIGHT_ENABLE
SRC += $(QUANTUM_DIR)/light_ws2812.c
SRC += $(QUANTUM_DIR)/rgblight.c
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
endif
ifeq ($(strip $(PRINTING_ENABLE)), yes)
OPT_DEFS += -DPRINTING_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
SRC += $(TMK_DIR)/protocol/serial_uart.c
endif
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
OPT_DEFS += $(SERIAL_DEFS)
VAPTH += $(SERIAL_PATH)
endif
ifneq ($(strip $(VARIABLE_TRACE)),)
SRC += $(QUANTUM_DIR)/variable_trace.c
OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE))
ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
endif
endif
# Optimize size but this may cause error "relocation truncated to fit"
#EXTRALDFLAGS = -Wl,--relax
# Search Path
VPATH += $(KEYMAP_PATH)
ifneq ($(SUBPROJECT),)
VPATH += $(SUBPROJECT_PATH)
endif
VPATH += $(KEYBOARD_PATH)
VPATH += $(COMMON_VPATH)
include $(TMK_PATH)/protocol.mk
include $(TMK_PATH)/common.mk
SRC += $(TMK_COMMON_SRC)
OPT_DEFS += $(TMK_COMMON_DEFS)
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
ifeq ($(PLATFORM),AVR)
ifeq ($(strip $(PROTOCOL)), VUSB)
include $(TMK_PATH)/protocol/vusb.mk
else
include $(TMK_PATH)/protocol/lufa.mk
endif
include $(TMK_PATH)/avr.mk
endif
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer
VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer
include $(VISUALIZER_PATH)/visualizer.mk
endif
OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
$(KEYMAP_OUTPUT)_SRC := $(SRC)
$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\"
$(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS)
$(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H)
$(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC)
$(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS)
$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC)
$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
# Default target.
all: build sizeafter
# Change the build target to build a HEX file or a library.
build: elf hex
#build: elf hex eep lss sym
#build: lib
include $(TMK_PATH)/rules.mk

57
build_test.mk Normal file
View File

@@ -0,0 +1,57 @@
ifndef VERBOSE
.SILENT:
endif
.DEFAULT_GOAL := all
include common.mk
TARGET=test/$(TEST)
GTEST_OUTPUT = $(BUILD_DIR)/gtest
TEST_OBJ = $(BUILD_DIR)/test_obj
OUTPUTS := $(TEST_OBJ)/$(TEST) $(GTEST_OUTPUT)
GTEST_INC := \
$(LIB_PATH)/googletest/googletest/include\
$(LIB_PATH)/googletest/googlemock/include\
GTEST_INTERNAL_INC :=\
$(LIB_PATH)/googletest/googletest\
$(LIB_PATH)/googletest/googlemock
$(GTEST_OUTPUT)_SRC :=\
googletest/src/gtest-all.cc\
googletest/src/gtest_main.cc\
googlemock/src/gmock-all.cc
$(GTEST_OUTPUT)_DEFS :=
$(GTEST_OUTPUT)_INC := $(GTEST_INC) $(GTEST_INTERNAL_INC)
LDFLAGS += -lstdc++ -lpthread -shared-libgcc
CREATE_MAP := no
VPATH +=\
$(LIB_PATH)/googletest\
$(LIB_PATH)/googlemock
all: elf
VPATH += $(COMMON_VPATH)
include $(TMK_PATH)/common.mk
include $(QUANTUM_PATH)/serial_link/tests/rules.mk
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
include $(TMK_PATH)/native.mk
include $(TMK_PATH)/rules.mk
$(shell mkdir -p $(BUILD_DIR)/test 2>/dev/null)
$(shell mkdir -p $(TEST_OBJ) 2>/dev/null)

View File

@@ -1,72 +1,27 @@
COMMON_DIR = common
SRC += $(COMMON_DIR)/host.c \
$(COMMON_DIR)/keyboard.c \
$(COMMON_DIR)/action.c \
$(COMMON_DIR)/action_tapping.c \
$(COMMON_DIR)/action_macro.c \
$(COMMON_DIR)/action_layer.c \
$(COMMON_DIR)/action_util.c \
$(COMMON_DIR)/keymap.c \
$(COMMON_DIR)/timer.c \
$(COMMON_DIR)/print.c \
$(COMMON_DIR)/bootloader.c \
$(COMMON_DIR)/suspend.c \
$(COMMON_DIR)/xprintf.S \
$(COMMON_DIR)/util.c
include message.mk
# Directory common source files exist
TOP_DIR = .
TMK_DIR = tmk_core
TMK_PATH = $(TOP_DIR)/$(TMK_DIR)
LIB_PATH = $(TOP_DIR)/lib
# Option modules
ifdef BOOTMAGIC_ENABLE
SRC += $(COMMON_DIR)/bootmagic.c
SRC += $(COMMON_DIR)/eeconfig.c
OPT_DEFS += -DBOOTMAGIC_ENABLE
endif
QUANTUM_DIR = quantum
QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR)
ifdef MOUSEKEY_ENABLE
SRC += $(COMMON_DIR)/mousekey.c
OPT_DEFS += -DMOUSEKEY_ENABLE
OPT_DEFS += -DMOUSE_ENABLE
endif
BUILD_DIR := $(TOP_DIR)/.build
ifdef EXTRAKEY_ENABLE
OPT_DEFS += -DEXTRAKEY_ENABLE
endif
SERIAL_DIR := $(QUANTUM_DIR)/serial_link
SERIAL_PATH := $(QUANTUM_PATH)/serial_link
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
ifdef CONSOLE_ENABLE
OPT_DEFS += -DCONSOLE_ENABLE
else
OPT_DEFS += -DNO_PRINT
OPT_DEFS += -DNO_DEBUG
endif
ifdef COMMAND_ENABLE
SRC += $(COMMON_DIR)/command.c
OPT_DEFS += -DCOMMAND_ENABLE
endif
ifdef NKRO_ENABLE
OPT_DEFS += -DNKRO_ENABLE
endif
ifdef SLEEP_LED_ENABLE
SRC += $(COMMON_DIR)/sleep_led.c
OPT_DEFS += -DSLEEP_LED_ENABLE
OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
endif
ifdef BACKLIGHT_ENABLE
SRC += $(COMMON_DIR)/backlight.c
OPT_DEFS += -DBACKLIGHT_ENABLE
endif
ifdef KEYMAP_SECTION_ENABLE
OPT_DEFS += -DKEYMAP_SECTION_ENABLE
EXTRALDFLAGS = -Wl,-L$(TOP_DIR),-Tldscript_keymap_avr5.x
endif
# Version string
OPT_DEFS += -DVERSION=$(shell (git describe --always --dirty || echo 'unknown') 2> /dev/null)
# Search Path
VPATH += $(TOP_DIR)/common
COMMON_VPATH := $(TOP_DIR)
COMMON_VPATH += $(TMK_PATH)
COMMON_VPATH += $(QUANTUM_PATH)
COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras
COMMON_VPATH += $(QUANTUM_PATH)/audio
COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
COMMON_VPATH += $(QUANTUM_PATH)/api
COMMON_VPATH += $(SERIAL_PATH)

View File

@@ -1,213 +0,0 @@
/*
Copyright 2013 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "host.h"
#include "report.h"
#include "debug.h"
#include "action_util.h"
#include "timer.h"
static inline void add_key_byte(uint8_t code);
static inline void del_key_byte(uint8_t code);
#ifdef NKRO_ENABLE
static inline void add_key_bit(uint8_t code);
static inline void del_key_bit(uint8_t code);
#endif
static uint8_t real_mods = 0;
static uint8_t weak_mods = 0;
// TODO: pointer variable is not needed
//report_keyboard_t keyboard_report = {};
report_keyboard_t *keyboard_report = &(report_keyboard_t){};
#ifndef NO_ACTION_ONESHOT
static int8_t oneshot_mods = 0;
#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
static int16_t oneshot_time = 0;
#endif
#endif
void send_keyboard_report(void) {
keyboard_report->mods = real_mods;
keyboard_report->mods |= weak_mods;
#ifndef NO_ACTION_ONESHOT
if (oneshot_mods) {
#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
if (TIMER_DIFF_16(timer_read(), oneshot_time) >= ONESHOT_TIMEOUT) {
dprintf("Oneshot: timeout\n");
clear_oneshot_mods();
}
#endif
keyboard_report->mods |= oneshot_mods;
if (has_anykey()) {
clear_oneshot_mods();
}
}
#endif
host_keyboard_send(keyboard_report);
}
/* key */
void add_key(uint8_t key)
{
#ifdef NKRO_ENABLE
if (keyboard_nkro) {
add_key_bit(key);
return;
}
#endif
add_key_byte(key);
}
void del_key(uint8_t key)
{
#ifdef NKRO_ENABLE
if (keyboard_nkro) {
del_key_bit(key);
return;
}
#endif
del_key_byte(key);
}
void clear_keys(void)
{
// not clear mods
for (int8_t i = 1; i < REPORT_SIZE; i++) {
keyboard_report->raw[i] = 0;
}
}
/* modifier */
uint8_t get_mods(void) { return real_mods; }
void add_mods(uint8_t mods) { real_mods |= mods; }
void del_mods(uint8_t mods) { real_mods &= ~mods; }
void set_mods(uint8_t mods) { real_mods = mods; }
void clear_mods(void) { real_mods = 0; }
/* weak modifier */
uint8_t get_weak_mods(void) { return weak_mods; }
void add_weak_mods(uint8_t mods) { weak_mods |= mods; }
void del_weak_mods(uint8_t mods) { weak_mods &= ~mods; }
void set_weak_mods(uint8_t mods) { weak_mods = mods; }
void clear_weak_mods(void) { weak_mods = 0; }
/* Oneshot modifier */
#ifndef NO_ACTION_ONESHOT
void set_oneshot_mods(uint8_t mods)
{
oneshot_mods = mods;
#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
oneshot_time = timer_read();
#endif
}
void clear_oneshot_mods(void)
{
oneshot_mods = 0;
#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
oneshot_time = 0;
#endif
}
#endif
/*
* inspect keyboard state
*/
uint8_t has_anykey(void)
{
uint8_t cnt = 0;
for (uint8_t i = 1; i < REPORT_SIZE; i++) {
if (keyboard_report->raw[i])
cnt++;
}
return cnt;
}
uint8_t has_anymod(void)
{
return bitpop(real_mods);
}
uint8_t get_first_key(void)
{
#ifdef NKRO_ENABLE
if (keyboard_nkro) {
uint8_t i = 0;
for (; i < REPORT_BITS && !keyboard_report->nkro.bits[i]; i++)
;
return i<<3 | biton(keyboard_report->nkro.bits[i]);
}
#endif
return keyboard_report->keys[0];
}
/* local functions */
static inline void add_key_byte(uint8_t code)
{
int8_t i = 0;
int8_t empty = -1;
for (; i < REPORT_KEYS; i++) {
if (keyboard_report->keys[i] == code) {
break;
}
if (empty == -1 && keyboard_report->keys[i] == 0) {
empty = i;
}
}
if (i == REPORT_KEYS) {
if (empty != -1) {
keyboard_report->keys[empty] = code;
}
}
}
static inline void del_key_byte(uint8_t code)
{
for (uint8_t i = 0; i < REPORT_KEYS; i++) {
if (keyboard_report->keys[i] == code) {
keyboard_report->keys[i] = 0;
}
}
}
#ifdef NKRO_ENABLE
static inline void add_key_bit(uint8_t code)
{
if ((code>>3) < REPORT_BITS) {
keyboard_report->nkro.bits[code>>3] |= 1<<(code&7);
} else {
dprintf("add_key_bit: can't add: %02X\n", code);
}
}
static inline void del_key_bit(uint8_t code)
{
if ((code>>3) < REPORT_BITS) {
keyboard_report->nkro.bits[code>>3] &= ~(1<<(code&7));
} else {
dprintf("del_key_bit: can't del: %02X\n", code);
}
}
#endif

View File

@@ -1,62 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEBUG_H
#define DEBUG_H 1
#include "print.h"
#include "debug_config.h"
#ifndef NO_DEBUG
#define dprint(s) do { if (debug_enable) print(s); } while (0)
#define dprintln() do { if (debug_enable) print_crlf(); } while (0)
#define dprintf(fmt, ...) do { if (debug_enable) __xprintf(PSTR(fmt), ##__VA_ARGS__); } while (0)
#define dmsg(s) dprintf("%s at %s: %S\n", __FILE__, __LINE__, PSTR(s))
/* DO NOT USE these anymore */
#define debug(s) do { if (debug_enable) print(s); } while (0)
#define debugln(s) do { if (debug_enable) print_crlf(); } while (0)
#define debug_S(s) do { if (debug_enable) print_S(s); } while (0)
#define debug_P(s) do { if (debug_enable) print_P(s); } while (0)
#define debug_msg(s) do { \
if (debug_enable) { \
print(__FILE__); print(" at "); print_dec(__LINE__); print(" in "); print(": "); print(s); \
} \
} while (0)
#define debug_dec(data) do { if (debug_enable) print_dec(data); } while (0)
#define debug_decs(data) do { if (debug_enable) print_decs(data); } while (0)
#define debug_hex4(data) do { if (debug_enable) print_hex4(data); } while (0)
#define debug_hex8(data) do { if (debug_enable) print_hex8(data); } while (0)
#define debug_hex16(data) do { if (debug_enable) print_hex16(data); } while (0)
#define debug_hex32(data) do { if (debug_enable) print_hex32(data); } while (0)
#define debug_bin8(data) do { if (debug_enable) print_bin8(data); } while (0)
#define debug_bin16(data) do { if (debug_enable) print_bin16(data); } while (0)
#define debug_bin32(data) do { if (debug_enable) print_bin32(data); } while (0)
#define debug_bin_reverse8(data) do { if (debug_enable) print_bin_reverse8(data); } while (0)
#define debug_bin_reverse16(data) do { if (debug_enable) print_bin_reverse16(data); } while (0)
#define debug_bin_reverse32(data) do { if (debug_enable) print_bin_reverse32(data); } while (0)
#define debug_hex(data) debug_hex8(data)
#define debug_bin(data) debug_bin8(data)
#define debug_bin_reverse(data) debug_bin8(data)
#else
#include "nodebug.h"
#endif
#endif

View File

@@ -1,51 +0,0 @@
/*
Copyright 2013 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEBUG_CONFIG_H
#define DEBUG_CONFIG_H 1
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
/* NOTE: Not portable. Bit field order depends on implementation */
typedef union {
uint8_t raw;
struct {
bool enable:1;
bool matrix:1;
bool keyboard:1;
bool mouse:1;
uint8_t reserved:4;
};
} debug_config_t;
debug_config_t debug_config;
/* for backward compatibility */
#define debug_enable (debug_config.enable)
#define debug_matrix (debug_config.matrix)
#define debug_keyboard (debug_config.keyboard)
#define debug_mouse (debug_config.mouse)
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,45 +0,0 @@
#include <stdint.h>
#include <stdbool.h>
#include <avr/eeprom.h>
#include "eeconfig.h"
void eeconfig_init(void)
{
eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER);
eeprom_write_byte(EECONFIG_DEBUG, 0);
eeprom_write_byte(EECONFIG_DEFAULT_LAYER, 0);
eeprom_write_byte(EECONFIG_KEYMAP, 0);
eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0);
#ifdef BACKLIGHT_ENABLE
eeprom_write_byte(EECONFIG_BACKLIGHT, 0);
#endif
}
void eeconfig_enable(void)
{
eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER);
}
void eeconfig_disable(void)
{
eeprom_write_word(EECONFIG_MAGIC, 0xFFFF);
}
bool eeconfig_is_enabled(void)
{
return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER);
}
uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); }
void eeconfig_write_debug(uint8_t val) { eeprom_write_byte(EECONFIG_DEBUG, val); }
uint8_t eeconfig_read_default_layer(void) { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); }
void eeconfig_write_default_layer(uint8_t val) { eeprom_write_byte(EECONFIG_DEFAULT_LAYER, val); }
uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMAP); }
void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val); }
#ifdef BACKLIGHT_ENABLE
uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); }
void eeconfig_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); }
#endif

View File

@@ -1,186 +0,0 @@
/*
Copyright 2013 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <avr/pgmspace.h>
#include "keymap.h"
#include "report.h"
#include "keycode.h"
#include "action_layer.h"
#include "action.h"
#include "action_macro.h"
#include "debug.h"
static action_t keycode_to_action(uint8_t keycode);
/* converts key to action */
action_t action_for_key(uint8_t layer, key_t key)
{
uint8_t keycode = keymap_key_to_keycode(layer, key);
switch (keycode) {
case KC_FN0 ... KC_FN31:
return keymap_fn_to_action(keycode);
#ifdef BOOTMAGIC_ENABLE
case KC_CAPSLOCK:
case KC_LOCKING_CAPS:
if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) {
return keycode_to_action(KC_LCTL);
}
return keycode_to_action(keycode);
case KC_LCTL:
if (keymap_config.swap_control_capslock) {
return keycode_to_action(KC_CAPSLOCK);
}
return keycode_to_action(KC_LCTL);
case KC_LALT:
if (keymap_config.swap_lalt_lgui) {
if (keymap_config.no_gui) {
return keycode_to_action(ACTION_NO);
}
return keycode_to_action(KC_LGUI);
}
return keycode_to_action(KC_LALT);
case KC_LGUI:
if (keymap_config.swap_lalt_lgui) {
return keycode_to_action(KC_LALT);
}
if (keymap_config.no_gui) {
return keycode_to_action(ACTION_NO);
}
return keycode_to_action(KC_LGUI);
case KC_RALT:
if (keymap_config.swap_ralt_rgui) {
if (keymap_config.no_gui) {
return keycode_to_action(ACTION_NO);
}
return keycode_to_action(KC_RGUI);
}
return keycode_to_action(KC_RALT);
case KC_RGUI:
if (keymap_config.swap_ralt_rgui) {
return keycode_to_action(KC_RALT);
}
if (keymap_config.no_gui) {
return keycode_to_action(ACTION_NO);
}
return keycode_to_action(KC_RGUI);
case KC_GRAVE:
if (keymap_config.swap_grave_esc) {
return keycode_to_action(KC_ESC);
}
return keycode_to_action(KC_GRAVE);
case KC_ESC:
if (keymap_config.swap_grave_esc) {
return keycode_to_action(KC_GRAVE);
}
return keycode_to_action(KC_ESC);
case KC_BSLASH:
if (keymap_config.swap_backslash_backspace) {
return keycode_to_action(KC_BSPACE);
}
return keycode_to_action(KC_BSLASH);
case KC_BSPACE:
if (keymap_config.swap_backslash_backspace) {
return keycode_to_action(KC_BSLASH);
}
return keycode_to_action(KC_BSPACE);
#endif
default:
return keycode_to_action(keycode);
}
}
/* Macro */
__attribute__ ((weak))
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
return MACRO_NONE;
}
/* Function */
__attribute__ ((weak))
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
{
}
/* translates keycode to action */
static action_t keycode_to_action(uint8_t keycode)
{
action_t action;
switch (keycode) {
case KC_A ... KC_EXSEL:
case KC_LCTRL ... KC_RGUI:
action.code = ACTION_KEY(keycode);
break;
case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode));
break;
case KC_AUDIO_MUTE ... KC_WWW_FAVORITES:
action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
break;
case KC_MS_UP ... KC_MS_ACCEL2:
action.code = ACTION_MOUSEKEY(keycode);
break;
case KC_TRNS:
action.code = ACTION_TRANSPARENT;
break;
default:
action.code = ACTION_NO;
break;
}
return action;
}
#ifdef USE_LEGACY_KEYMAP
/*
* Legacy keymap support
* Consider using new keymap API instead.
*/
__attribute__ ((weak))
uint8_t keymap_key_to_keycode(uint8_t layer, key_t key)
{
return keymap_get_keycode(layer, key.row, key.col);
}
/* Legacy keymap support */
__attribute__ ((weak))
action_t keymap_fn_to_action(uint8_t keycode)
{
action_t action = { .code = ACTION_NO };
switch (keycode) {
case KC_FN0 ... KC_FN31:
{
uint8_t layer = keymap_fn_layer(FN_INDEX(keycode));
uint8_t key = keymap_fn_keycode(FN_INDEX(keycode));
if (key) {
action.code = ACTION_LAYER_TAP_KEY(layer, key);
} else {
action.code = ACTION_LAYER_MOMENTARY(layer);
}
}
return action;
default:
return action;
}
}
#endif

View File

@@ -1,71 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef KEYMAP_H
#define KEYMAP_H
#include <stdint.h>
#include <stdbool.h>
#include "action.h"
#ifdef BOOTMAGIC_ENABLE
/* NOTE: Not portable. Bit field order depends on implementation */
typedef union {
uint8_t raw;
struct {
bool swap_control_capslock:1;
bool capslock_to_control:1;
bool swap_lalt_lgui:1;
bool swap_ralt_rgui:1;
bool no_gui:1;
bool swap_grave_esc:1;
bool swap_backslash_backspace:1;
bool reserved:1;
};
} keymap_config_t;
keymap_config_t keymap_config;
#endif
/* translates key to keycode */
uint8_t keymap_key_to_keycode(uint8_t layer, key_t key);
/* translates Fn keycode to action */
action_t keymap_fn_to_action(uint8_t keycode);
#ifdef USE_LEGACY_KEYMAP
/*
* Legacy keymap
* Consider using new keymap API above instead.
*/
/* keycode of key */
__attribute__ ((deprecated))
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col);
/* layer to move during press Fn key */
__attribute__ ((deprecated))
uint8_t keymap_fn_layer(uint8_t fn_bits);
/* keycode to send when release Fn key without using */
__attribute__ ((deprecated))
uint8_t keymap_fn_keycode(uint8_t fn_bits);
#endif
#endif

View File

@@ -1,49 +0,0 @@
/*
Copyright 2013 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef NODEBUG_H
#define NODEBUG_H 1
#include "debug_config.h"
#define dprint(s)
#define dprintln(s)
#define dprintf(fmt, ...)
#define dmsg(s)
#define debug(s)
#define debugln(s)
#define debug_S(s)
#define debug_P(s)
#define debug_msg(s)
#define debug_dec(data)
#define debug_decs(data)
#define debug_hex4(data)
#define debug_hex8(data)
#define debug_hex16(data)
#define debug_hex32(data)
#define debug_bin8(data)
#define debug_bin16(data)
#define debug_bin32(data)
#define debug_bin_reverse8(data)
#define debug_bin_reverse16(data)
#define debug_bin_reverse32(data)
#define debug_hex(data)
#define debug_bin(data)
#define debug_bin_reverse(data)
#endif

View File

@@ -1,139 +0,0 @@
/* Copyright 2012 Jun Wako <wakojun@gmail.com> */
/* Very basic print functions, intended to be used with usb_debug_only.c
* http://www.pjrc.com/teensy/
* Copyright (c) 2008 PJRC.COM, LLC
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef PRINT_H__
#define PRINT_H__ 1
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "xprintf.h"
#include "util.h"
// this macro allows you to write print("some text") and
// the string is automatically placed into flash memory :)
// TODO: avoid collision with arduino/Print.h
#ifndef __cplusplus
#define print(s) print_P(PSTR(s))
#endif
#define println(s) print_P(PSTR(s "\n"))
/* for old name */
#define pdec(data) print_dec(data)
#define pdec16(data) print_dec(data)
#define phex(data) print_hex8(data)
#define phex16(data) print_hex16(data)
#define pbin(data) print_bin8(data)
#define pbin16(data) print_bin16(data)
#define pbin_reverse(data) print_bin_reverse8(data)
#define pbin_reverse16(data) print_bin_reverse16(data)
/* print value utility */
#define print_val_dec(v) xprintf(#v ": %u\n", v)
#define print_val_decs(v) xprintf(#v ": %d\n", v)
#define print_val_hex8(v) xprintf(#v ": %X\n", v)
#define print_val_hex16(v) xprintf(#v ": %02X\n", v)
#define print_val_hex32(v) xprintf(#v ": %04lX\n", v)
#define print_val_bin8(v) xprintf(#v ": %08b\n", v)
#define print_val_bin16(v) xprintf(#v ": %016b\n", v)
#define print_val_bin32(v) xprintf(#v ": %032lb\n", v)
#define print_val_bin_reverse8(v) xprintf(#v ": %08b\n", bitrev(v))
#define print_val_bin_reverse16(v) xprintf(#v ": %016b\n", bitrev16(v))
#define print_val_bin_reverse32(v) xprintf(#v ": %032lb\n", bitrev32(v))
#ifndef NO_PRINT
#ifdef __cplusplus
extern "C" {
#endif
/* function pointer of sendchar to be used by print utility */
void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t));
/* print string stored in data memory(SRAM)
* print_S("hello world");
* This consumes precious SRAM memory space for string.
*/
void print_S(const char *s);
void print_lf(void);
void print_crlf(void);
/* print string stored in program memory(FLASH)
* print_P(PSTR("hello world");
* This consumes relatively abundant FLASH memory area not SRAM.
*/
#define print_P(s) xputs(s)
/* decimal */
#define print_dec(i) xprintf("%u", i)
#define print_decs(i) xprintf("%d", i)
/* hex */
#define print_hex4(i) xprintf("%X", i)
#define print_hex8(i) xprintf("%02X", i)
#define print_hex16(i) xprintf("%04X", i)
#define print_hex32(i) xprintf("%08lX", i)
/* binary */
#define print_bin4(i) xprintf("%04b", i)
#define print_bin8(i) xprintf("%08b", i)
#define print_bin16(i) xprintf("%016b", i)
#define print_bin32(i) xprintf("%032lb", i)
#define print_bin_reverse8(i) xprintf("%08b", bitrev(i))
#define print_bin_reverse16(i) xprintf("%016b", bitrev16(i))
#define print_bin_reverse32(i) xprintf("%032lb", bitrev32(i))
#ifdef __cplusplus
}
#endif
#else
#define print_set_sendchar(func)
#define print_S(s)
#define print_P(s)
#define print_dec(data)
#define print_decs(data)
#define print_hex4(data)
#define print_hex8(data)
#define print_hex16(data)
#define print_hex32(data)
#define print_bin4(data)
#define print_bin8(data)
#define print_bin16(data)
#define print_bin32(data)
#define print_bin_reverse8(data)
#define print_bin_reverse16(data)
#define print_bin_reverse32(data)
#endif
#endif

View File

@@ -1,76 +0,0 @@
#include "suspend.h"
#include "matrix.h"
#include "action.h"
#include "backlight.h"
void suspend_power_down(void)
{
#ifdef BACKLIGHT_ENABLE
backlight_set(0);
#endif
#ifndef NO_SUSPEND_POWER_DOWN
// Enable watchdog to wake from MCU sleep
cli();
wdt_reset();
// Watchdog Interrupt and System Reset Mode
//wdt_enable(WDTO_1S);
//WDTCSR |= _BV(WDIE);
// Watchdog Interrupt Mode
wdt_intr_enable(WDTO_120MS);
// TODO: more power saving
// See PicoPower application note
// - I/O port input with pullup
// - prescale clock
// - BOD disable
// - Power Reduction Register PRR
// sleep in power down mode
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sei();
sleep_cpu();
sleep_disable();
// Disable watchdog after sleep
wdt_disable();
#endif
}
bool suspend_wakeup_condition(void)
{
matrix_scan();
for (uint8_t r = 0; r < MATRIX_ROWS; r++) {
if (matrix_get_row(r)) return true;
}
return false;
}
// run immediately after wakeup
void suspend_wakeup_init(void)
{
// clear keyboard state
clear_keyboard();
#ifdef BACKLIGHT_ENABLE
backlight_init();
#endif
}
#ifndef NO_SUSPEND_POWER_DOWN
/* watchdog timeout */
ISR(WDT_vect)
{
/* wakeup from MCU sleep mode */
/*
// blink LED
static uint8_t led_state = 0;
static uint8_t led_count = 0;
led_count++;
if ((led_count & 0x07) == 0) {
led_set((led_state ^= (1<<USB_LED_CAPS_LOCK)));
}
*/
}
#endif

View File

@@ -1,63 +0,0 @@
# Target file name (without extension).
TARGET = adb_usb_pjrc
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# keyboard dependent files
SRC = keymap.c \
matrix.c \
led.c \
adb.c
CONFIG_H = config.h
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Teensy++ halfKay 1024
# Atmel DFU loader 4096
# LUFA bootloader 4096
# USBaspLoader 2048
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+5000)
EXTRAKEY_ENABLE = yes # Audio control and System control(+600)
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover(+500)
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/pjrc.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,78 +0,0 @@
ADB to USB keyboard converter
=============================
This firmware converts ADB keyboard protocol to USB.
You can use PJRC Teensy for this converter, though, other USB AVR(ATMega32U4, AT90USB64/128 or etc) should work.
But binary size is about 10KB or more it doesn't fit into 8K flash like ATMega8U2.
Discuss: http://geekhack.org/showwiki.php?title=Island:14290
Build
-----
0. Connect ADB keyboard to Teensy by 3 lines(Vcc, GND, Data). By default Data line uses port D0.
This converter uses AVR's internal pull-up, but it seems to be too weak, in particular when you want to use a long or coiled cable.
The external pull-up resistor(1K-10K Ohm) on Data is strongly recommended.
1. Define following macros for ADB connection in config.h if you use other than port D0.
ADB_PORT, ADB_PIN, ADB_DDR, ADB_DATA_BIT
2. make
3. program Teensy
LOCKING CAPSLOCK
----------------
Many of old ADB keyboards have mechanical push-lock switch for Capslock key and this converter supports the locking Capslock key by default. See README in top directory for more detail about this feature.
Also you may want to remove locking pin from the push-lock switch to use capslock as a normal momentary switch.
http://www.youtube.com/watch?v=9wqnt2mGJ2Y
Keymap
------
You can change a keymap by editing code of keymap.c like following.
This is a keymap for AEK, however, also used for other keyboards.
How to define the keymap is probably obvious. You can find key symbols in keycode.h.
If you want to define some keymaps than just one, see hhkb/keymap.c and
macway/keymap.c as examples. Keymap(layer) switching may needs a bit of
effort at this time.
/* Default Layer: plain keymap
* ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,---.
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|
* `---' `---------------' `---------------' `---------------' `-----------' `---'
* ,-----------------------------------------------------------. ,-----------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| =| /| *|
* |-----------------------------------------------------------| |-----------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| -|
* |-----------------------------------------------------------| `-----------' |---------------|
* |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| +|
* |-----------------------------------------------------------| ,---. |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
* |-----------------------------------------------------------| ,-----------. |-----------|Ent|
* |Ctrl |Gui |Alt | Space | | | | |Lef|Dow|Rig| | 0| .| |
* `-----------------------------------------------------------' `-----------' `---------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, PWR,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,EQL, PSLS,PAST,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, PMNS,
LCAP,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
Magic command
-------------
To get help press `h` holding Magic key. Magic key is `Power key`.
Notes
-----
Many ADB keyboards has no discrimination between right modifier and left one,
you will always see left control even if you press right control key.
Apple Extended Keyboard and Apple Extended Keyboard II are the examples.
Though ADB protocol itsef has the ability of distinction between right and left.
And most ADB keyboard has no NKRO functionality, though ADB protocol itsef has that.
See protocol/adb.c for more info.
EOF

View File

@@ -1,63 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0ADB
#define DEVICE_VER 0x0101
#define MANUFACTURER t.m.k.
#define PRODUCT ADB keyboard converter
#define DESCRIPTION convert ADB keyboard to USB
/* matrix size */
#define MATRIX_ROWS 16 // keycode bit: 3-0
#define MATRIX_COLS 8 // keycode bit: 6-4
#define MATRIX_ROW(code) ((code)>>3&0x0F)
#define MATRIX_COL(code) ((code)&0x07)
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* legacy keymap support */
#define USE_LEGACY_KEYMAP
/* ADB port setting */
#define ADB_PORT PORTD
#define ADB_PIN PIND
#define ADB_DDR DDRD
#define ADB_DATA_BIT 0
//#define ADB_PSW_BIT 1 // optional
/* key combination for command */
#ifndef __ASSEMBLER__
#include "adb.h"
#include "matrix.h"
#define IS_COMMAND() ( \
matrix_is_on(MATRIX_ROW(ADB_POWER), MATRIX_COL(ADB_POWER)) \
)
#endif
#endif

View File

@@ -1,214 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Keymap for ADB keyboard
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "keymap.h"
#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
#define KEYMAP_ALL( \
K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C, \
/* for ISO/JIS keyboard */ \
K0A, /* NON-US \ and | 0x64 */ \
K34, /* Keypad ENTER 0x58 */ \
K40, /* F17 0x6C */ \
K44, /* F18? 0x6d */ \
K4F, /* F18 0x6d */ \
K50, /* F19 0x6e */ \
K5A, /* F20 0x6f */ \
K5D, /* INTL3(Yen) 0x89 */ \
K5E, /* INTL1(Ro) 0x87 */ \
K5F, /* Keypad Comma 0x85 */ \
K66, /* LANG2(Eisu) 0x91 */ \
K68, /* LANG1(Kana) 0x90 */ \
K6A, /* F16 0x6B */ \
K6E /* Application 0x65 */ \
) { \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
{ KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
{ KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_NO }, \
{ KC_##K40, KC_##K41, KC_NO, KC_##K43, KC_##K44, KC_##K45, KC_NO, KC_##K47 }, \
{ KC_NO, KC_NO, KC_NO, KC_##K4B, KC_##K4C, KC_NO, KC_##K4E, KC_##K4F }, \
{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, \
{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \
{ KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_NO, KC_##K6D, KC_##K6E, KC_##K6F }, \
{ KC_NO, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 }, \
{ KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_##K7C, KC_##K7D, KC_NO, KC_##K7F } \
}
/* Apple Extended Keyboard US
* ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,---.
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|
* `---' `---------------' `---------------' `---------------' `-----------' `---'
* ,-----------------------------------------------------------. ,-----------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| =| /| *|
* |-----------------------------------------------------------| |-----------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| -|
* |-----------------------------------------------------------| `-----------' |---------------|
* |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| +|
* |-----------------------------------------------------------| ,---. |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
* |-----------------------------------------------------------| ,-----------. |-----------|Ent|
* |Ctrl |Opt |Cmd | Space | |Opt |Ctrl | |Lef|Dow|Rig| | 0| .| |
* `-----------------------------------------------------------' `-----------' `---------------'
*/
#define KEYMAP_EXTENDED_US( \
K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C \
) KEYMAP_ALL( \
K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C, \
/* for ISO/JIS keyboard */ \
NONUS_BSLASH, /* NON-US \ and | 0x64 */ \
KP_ENTER, /* Keypad ENTER 0x58 */ \
F17, /* F17 0x6C */ \
F18, /* F18? 0x6d */ \
F18, /* F18 0x6d */ \
F19, /* F19 0x6e */ \
F20, /* F20 0x6f */ \
INT3, /* INTL3(Yen) 0x89 */ \
INT1, /* INTL1(Ro) 0x87 */ \
KP_COMMA, /* Keypad Comma 0x85 */ \
LANG2, /* LANG2(Eisu) 0x91 */ \
LANG1, /* LANG1(Kana) 0x90 */ \
F16, /* F16 0x6B */ \
APPLICATION /* Application 0x65 */ \
)
/* M0116
* +-------+
* | power |
* +-------+
* +---+---+---+---+---+---+---+---+---+---+---+---+---+-----+ +---+---+---+---+
* |esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | bks | |clr| = | / | * |
* +---------------------------------------------------------+ +---+---+---+---+
* | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | | | 7 | 8 | 9 | + |
* +-----------------------------------------------------+ | +---+---+---+---+
* | ctrl | a | s | d | f | g | h | j | k | l | ; | ' |return| | 4 | 5 | 6 | - |
* +---------------------------------------------------------+ +---+---+---+---+
* | shift | z | x | c | v | b | n | m | , | . | / | shift | | 1 | 2 | 3 | |
* +---------------------------------------------------------+ +-------+---|ent|
* |cap|opt|comnd| ` | | \ |lef|rig|dwn|up | | 0 | . | |
* +---------------------------------------------------------+ +-------+---+---+
*/
#define KEYMAP_M0116( \
K7F, \
K35,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K47,K51,K4B,K43, \
K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E, K59,K5B,K5C,K45, \
K36,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K4E, \
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K53,K54,K55, \
K39,K3A,K37,K32, K31, K2A,K3B,K3C,K3D,K3E, K52, K41,K4C \
) { \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_NO, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
{ KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_NO, KC_##K35, KC_##K36, KC_##K37 }, \
{ KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_NO }, \
{ KC_NO, KC_##K41, KC_NO, KC_##K43, KC_NO, KC_##K45, KC_NO, KC_##K47 }, \
{ KC_NO, KC_NO, KC_NO, KC_##K4B, KC_##K4C, KC_NO, KC_##K4E, KC_NO }, \
{ KC_NO, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_NO, KC_##K5B, KC_##K5C, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO , KC_NO, KC_NO , KC_##K7B, KC_NO, KC_NO, KC_NO, KC_##K7F } \
}
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
0, // Fn0
0, // Fn1
0, // Fn2
0, // Fn3
0, // Fn4
0, // Fn5
0, // Fn6
0 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KC_NO, // Fn0
KC_NO, // Fn1
KC_NO, // Fn2
KC_NO, // Fn3
KC_NO, // Fn4
KC_NO, // Fn5
KC_NO, // Fn6
KC_NO // Fn7
};
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP_EXTENDED_US(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, PWR,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PEQL,PSLS,PAST,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, PMNS,
LCAP,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RGUI,RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return KEYCODE(layer, row, col);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,221 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* scan matrix
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "util.h"
#include "debug.h"
#include "adb.h"
#include "matrix.h"
#if (MATRIX_COLS > 16)
# error "MATRIX_COLS must not exceed 16"
#endif
#if (MATRIX_ROWS > 255)
# error "MATRIX_ROWS must not exceed 255"
#endif
static bool is_modified = false;
// matrix state buffer(1:on, 0:off)
#if (MATRIX_COLS <= 8)
static uint8_t matrix[MATRIX_ROWS];
#else
static uint16_t matrix[MATRIX_ROWS];
#endif
#ifdef MATRIX_HAS_GHOST
static bool matrix_has_ghost_in_row(uint8_t row);
#endif
static void register_key(uint8_t key);
inline
uint8_t matrix_rows(void)
{
return MATRIX_ROWS;
}
inline
uint8_t matrix_cols(void)
{
return MATRIX_COLS;
}
void matrix_init(void)
{
adb_host_init();
// wait for keyboard to boot up and receive command
_delay_ms(1000);
// Enable keyboard left/right modifier distinction
// Addr:Keyboard(0010), Cmd:Listen(10), Register3(11)
// upper byte: reserved bits 0000, device address 0010
// lower byte: device handler 00000011
adb_host_listen(0x2B,0x02,0x03);
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
debug_enable = true;
//debug_matrix = true;
//debug_keyboard = true;
//debug_mouse = true;
print("debug enabled.\n");
return;
}
uint8_t matrix_scan(void)
{
uint16_t codes;
uint8_t key0, key1;
is_modified = false;
_delay_ms(12); // delay for preventing overload of poor ADB keyboard controller
codes = adb_host_kbd_recv();
key0 = codes>>8;
key1 = codes&0xFF;
if (debug_matrix && codes) {
print("adb_host_kbd_recv: "); phex16(codes); print("\n");
}
if (codes == 0) { // no keys
return 0;
} else if (codes == 0x7F7F) { // power key press
register_key(0x7F);
} else if (codes == 0xFFFF) { // power key release
register_key(0xFF);
} else if (key0 == 0xFF) { // error
xprintf("adb_host_kbd_recv: ERROR(%d)\n", codes);
return key1;
} else {
register_key(key0);
if (key1 != 0xFF) // key1 is 0xFF when no second key.
register_key(key1);
}
return 1;
}
bool matrix_is_modified(void)
{
return is_modified;
}
inline
bool matrix_has_ghost(void)
{
#ifdef MATRIX_HAS_GHOST
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
if (matrix_has_ghost_in_row(i))
return true;
}
#endif
return false;
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
return (matrix[row] & (1<<col));
}
inline
#if (MATRIX_COLS <= 8)
uint8_t matrix_get_row(uint8_t row)
#else
uint16_t matrix_get_row(uint8_t row)
#endif
{
return matrix[row];
}
void matrix_print(void)
{
if (!debug_matrix) return;
#if (MATRIX_COLS <= 8)
print("r/c 01234567\n");
#else
print("r/c 0123456789ABCDEF\n");
#endif
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
#if (MATRIX_COLS <= 8)
pbin_reverse(matrix_get_row(row));
#else
pbin_reverse16(matrix_get_row(row));
#endif
#ifdef MATRIX_HAS_GHOST
if (matrix_has_ghost_in_row(row)) {
print(" <ghost");
}
#endif
print("\n");
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
#if (MATRIX_COLS <= 8)
count += bitpop(matrix[i]);
#else
count += bitpop16(matrix[i]);
#endif
}
return count;
}
#ifdef MATRIX_HAS_GHOST
inline
static bool matrix_has_ghost_in_row(uint8_t row)
{
// no ghost exists in case less than 2 keys on
if (((matrix[row] - 1) & matrix[row]) == 0)
return false;
// ghost exists in case same state as other row
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
if (i != row && (matrix[i] & matrix[row]) == matrix[row])
return true;
}
return false;
}
#endif
inline
static void register_key(uint8_t key)
{
uint8_t col, row;
col = key&0x07;
row = (key>>3)&0x0F;
if (key&0x80) {
matrix[row] &= ~(1<<col);
} else {
matrix[row] |= (1<<col);
}
is_modified = true;
}

View File

@@ -1,97 +0,0 @@
# Target file name (without extension).
TARGET = m0110_lufa
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# keyboard dependent files
SRC = matrix.c \
led.c \
m0110.c
# To use own keymap file run make like: make keymap=hasu
ifdef keymap
SRC += keymap_$(keymap).c
else
SRC += keymap.c
endif
CONFIG_H = config.h
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8
# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU)
# Interrupt driven control endpoint task
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Boot Section Size in bytes
# Teensy halfKay 512
# Atmel DFU loader 4096
# LUFA bootloader 4096
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# *Comment out* to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
KEYMAP_SECTION_ENABLE = yes # fixed address keymap for keymap editor
#---------------- Programming Options --------------------------
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/lufa.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,73 +0,0 @@
# Target file name (without extension).
TARGET = m0110_pjrc
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# keyboard dependent files
SRC = matrix.c \
led.c \
m0110.c
# To use own keymap file run make like: make keymap=hasu
ifdef keymap
SRC += keymap_$(keymap).c
else
SRC += keymap.c
endif
CONFIG_H = config.h
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
# Boot Section Size in bytes
# Teensy halfKay 512
# Atmel DFU loader 4096
# LUFA bootloader 4096
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# *Comment out* to disable the options.
#
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
#---------------- Programming Options --------------------------
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/pjrc.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,134 +0,0 @@
M0110/M0110A to USB keyboard converter
======================================
This firmware converts the protocol of Apple Macintosh keyboard **M0110**, **M0110A** and **M0120** into USB. Target of this project is USB AVR controller **ATmega32U4**. Using this converter you can revive these retro keyboards with modern computer.
Pics of **M0110 + M0120** and **M0110A**.
![M0110+M0120](http://i.imgur.com/dyvXb2Tm.jpg)
![M0110A](http://i.imgur.com/HuHOEoHm.jpg)
- M0110A support was contributed by [skagon@github](https://github.com/skagon).
- M0120 also is supported. keys(+ * / and ,) on M0120 are recognized as cursor keys.
Update
------
- 2013/08: Change port for signals `PF` to `PD`
- 2013/09: Change port again, it uses inversely `PD0` for data and `PD1` for clock line now.
Building Hardware
-----------------
You need **4P4C** cable and **ATMega32U4** board like PJRC [Teensy]. Port of the MCU `PD1` is assigned to `CLOCK` line and `PD0` to `DATA` by default, you can change pin configuration with editing `config.h`.
[![M0110 Converter](http://i.imgur.com/4G2ZOegm.jpg)](http://i.imgur.com/4G2ZOeg.jpg)
### 4P4C phone handset cable
Note that original cable used with Mac is **straight** while phone handset cable is **crossover**.
<http://en.wikipedia.org/wiki/Modular_connector#4P4C>
Close-up pic of handset cable. You can see one end of plug has reverse color codes against the other. Click to enlarge.
[![4P4C cable](http://i.imgur.com/3S9P1mYm.jpg?1)](http://i.imgur.com/3S9P1mY.jpg?1)
[Teensy]: http://www.pjrc.com/teensy/
### Socket Pinout
- <http://pinouts.ru/Inputs/MacKeyboard_pinout.shtml>
![Jack fig](http://www.kbdbabel.org/conn/kbd_connector_macplus.png)
### Pull-up Registor
You may need pull-up registors on signal lines(`CLOCK`, `DATA`) in particular when you have long or coiled cable. **1k-10k Ohm** will be OK for this purpose. In that case the converter may not read signal from keyboard correctly without pull-up resistors.
Building Frimware
-----------------
To compile firmware you need AVR GCC. You can edit *Makefile* and *config.h* to change compile options and pin configuration.
$ git clone git://github.com/tmk/tmk_keyboard.git (or download source)
$ cd m0110_usb
$ make -f Makefile clean
$ make -f Makefile
and program your Teensy with [PJRC Teensy loader](http://www.pjrc.com/teensy/loader.html).
Keymap
------
You can change keymaps by editing *keymap.c*.
### M0110 & M0120
#### *Default Layer*
,---------------------------------------------------------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| -|Lft|Rgt|
|---------------------------------------------------------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | 7| 8| 9| Up|
|---------------------------------------------------------| |---------------|
|Caps | A| S| D| F| G| H| J| K| L| ;| '|Enter | | 4| 5| 6| Dn|
|---------------------------------------------------------| |---------------|
|Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | | 1| 2| 3| |
`---------------------------------------------------------' |-----------|Ent|
|Ctl|Gui | Space |Alt |Ctl| | 0| .| |
`-----------------------------------------------' `---------------'
- `Space` and `Enter` also work as `Fn` layer switch key when holding down.
#### *Function Layer(WASD/HHKB)*
,---------------------------------------------------------. ,---------------.
|Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| -|Lft|Rgt|
|---------------------------------------------------------| |---------------|
|Caps |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |Ins| \| | 7| 8| 9| Up|
|---------------------------------------------------------| |---------------|
|Caps |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Enter | | 4| 5| 6| Dn|
|---------------------------------------------------------| |---------------|
|Shift |End| |PgD| | | | |End|PgD|Dow|Shift | | 1| 2| 3| |
`---------------------------------------------------------' |-----------|Ent|
|Ctl|Gui | Space |Alt |Ctl| | 0| .| |
`-----------------------------------------------' `---------------'
### M0110A
#### *Default Layer*
,---------------------------------------------------------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| =| /| *|
|---------------------------------------------------------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -|
|-----------------------------------------------------' | |---------------|
|Caps | A| S| D| F| G| H| J| K| L| ;| '|Enter | | 4| 5| 6| +|
|---------------------------------------------------------| |---------------|
|Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft| Up| | 1| 2| 3| |
|---------------------------------------------------------| |-----------|Ent|
|Ctrl |Gui | Space | \|Lft|Rgt|Dwn| | 0| .| |
`---------------------------------------------------------' `---------------'
- `Space` and `Enter` also work as `Fn` layer switch key when holding down.
- `Backslash(\)` also works as `Alt` when holding down.
#### *Function Layer(WASD/HHKB)*
,---------------------------------------------------------. ,---------------.
|Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *|
|---------------------------------------------------------| |---------------|
|Caps |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |Ins| | | 7| 8| 9| -|
|-----------------------------------------------------' | |---------------|
|Caps |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Enter | | 4| 5| 6| +|
|---------------------------------------------------------| |---------------|
|Shift |End| |PgD| | | | |End|PgD|Dow|Shif|PgU| | 1| 2| 3| |
|---------------------------------------------------------| |-----------|Ent|
|Ctrl |Gui | Space | \|Hom|End|PgD| | 0| .| |
`---------------------------------------------------------' `---------------'
Debug
-----
You can use [PJRC HID listen](http://www.pjrc.com/teensy/hid_listen.html) to see debug output. The converter has some functions for debug, press `<Command>+H` simultaneously to get help.
- Command: `Shift+Option+Command`(`Shift+Alt+Gui` or `Shift+Alt+Control`)

View File

@@ -1,62 +0,0 @@
/*
Copyright 2011,2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0110
#define DEVICE_VER 0x0101
#define MANUFACTURER t.m.k.
#define PRODUCT M0110 keyboard converter
#define DESCRIPTION convert M0110 keyboard to USB
/* matrix size */
#define MATRIX_ROWS 14
#define MATRIX_COLS 8
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* magic key */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI)) || \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LCTL)) \
)
/* boot magic key */
#define BOOTMAGIC_KEY_SALT KC_FN0
#define BOOTMAGIC_KEY_CAPSLOCK_TO_CONTROL KC_LCAP
/* ports */
#define M0110_CLOCK_PORT PORTD
#define M0110_CLOCK_PIN PIND
#define M0110_CLOCK_DDR DDRD
#define M0110_CLOCK_BIT 1
#define M0110_DATA_PORT PORTD
#define M0110_DATA_PIN PIND
#define M0110_DATA_DDR DDRD
#define M0110_DATA_BIT 0
#endif

View File

@@ -1,223 +0,0 @@
/*
Copyright 2011,2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* M0110A Support was contributed by skagon@github */
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "keymap.h"
/*
* The keymap works with both M0110 and M0110A keyboards. As you can see, the M0110A is a superset
* of the M0110 keyboard, with only one exception: 'Enter' in M0110 does not exist
* on the M0110A, but since it generates a unique scan code which is not used for some other key in
* the M0110A, they are totally interchangeable. In fact, the M0110A is functionally (almost)
* identical to the combination of the M0110 along with the M0120 keypad. The only difference
* (which is causing some problems as you will read below) is that the M0110+M0120 don't have
* dedicated arrow keys, while the M0110A does. However, the M0120 did have arrow keys, which
* doubled as the [comma], [/], [*] and [+] keys, when used with the [Shift] key. The M0110A has
* substituted the [comma] key with the [=] key, however its scancode is the same.
*
* Physical layout:
* M0110A
* ,---------------------------------------------------------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Bcksp| |Clr| =| /| *|
* |---------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -|
* |-----------------------------------------------------' | |---------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Enter | | 4| 5| 6| +|
* |---------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| |
* |---------------------------------------------------------' |-----------|Ent|
* |Opt |Mac | Space | \|Lft|Rgt|Dn | | 0| .| |
* `---------------------------------------------------------' `---------------'
*
* M0110 M0120
* ,---------------------------------------------------------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| -| +| *|
* |---------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | 7| 8| 9| /|
* |---------------------------------------------------------| |---------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Enter | | 4| 5| 6| ,|
* |---------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | | 1| 2| 3| |
* `---------------------------------------------------------' |-----------|Ent|
* |Opt|Mac | Space |Ent |Opt| | 0| .| |
* `-----------------------------------------------' `---------------'
* With Shift keys on M0120 work as curosor.(-:Left *:Right /:Up ,:Down)
*
* NOTE: \ is located differently.
* NOTE: Enter on M0110 is different from Enter on keypad(M0120 and M0110A).
* NOTE: Left Shift and right Shift are logically same key.
* NOTE: Left Option and right Option are logically same key.
*/
/* Keymap definition Macro
* ,---------------------------------------------------------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| =| /| *|
* |---------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -|
* |-----------------------------------------------------' | |---------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Enter | | 4| 5| 6| +|
* |---------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| |
* |---------------------------------------------------------| |-----------|Ent|
* |Opt |Mac | Space |Ent| \|Lft|Rgt|Dn | | 0| .| |
* `---------------------------------------------------------' `---------------'
* NOTE: Ent between Space and \ means Enter on M0110.
*/
#define KEYMAP( \
K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K47,K68,K6D,K62, \
K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E, K59,K5B,K5C,K4E, \
K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K66, \
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K4D, K53,K54,K55,K4C, \
K3A,K37, K31, K34,K2A,K46,K42,K48, K52, K41 \
) { \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_NO, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
{ KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_NO, KC_NO, KC_##K37 }, \
{ KC_##K38, KC_##K39, KC_##K3A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_##K47 }, \
{ KC_##K48, KC_NO, KC_NO, KC_NO, KC_##K4C, KC_##K4D, KC_##K4E, KC_NO }, \
{ KC_NO, KC_NO, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_NO, KC_##K5B, KC_##K5C, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_##K62, KC_NO, KC_NO, KC_NO, KC_##K66, KC_NO }, \
{ KC_##K68, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K6D, KC_NO, KC_NO }, \
}
#ifdef KEYMAP_SECTION_ENABLE
const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = {
#else
static const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
#endif
/* Default:
* ,---------------------------------------------------------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| =| /| *|
* |---------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -|
* |-----------------------------------------------------' | |---------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Enter | | 4| 5| 6| +|
* |---------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| |
* |---------------------------------------------------------| |-----------|Ent|
* |Ctl |Gui | Space |Alt| \|Lft|Rgt|Dn | | 0| .| |
* `---------------------------------------------------------' `---------------'
*/
[0] = KEYMAP(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, CLR, EQL, PSLS,PAST,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, P7, P8, P9, PMNS,
LCAP,A, S, D, F, G, H, J, K, L, SCLN,QUOT, FN15, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, UP, P1, P2, P3, PENT,
LCTL,LGUI, FN16, LALT,FN31,LEFT,RGHT,DOWN, P0, PDOT
),
/* Cursor Layer(WASD, IJKL)
* ,---------------------------------------------------------. ,---------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *|
* |---------------------------------------------------------| |---------------|
* |Caps |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |Ins| | | 7| 8| 9| -|
* |-----------------------------------------------------' | |---------------|
* |Caps |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Enter | | 4| 5| 6| +|
* |---------------------------------------------------------| |---------------|
* |Shift |End| |PgD| | | | |End|PgD|Dow|Shif|PgU| | 1| 2| 3| |
* |---------------------------------------------------------| |-----------|Ent|
* |Ctl |Gui | Space |Alt | \|Hom|End|PgD| | 0| .| |
* `---------------------------------------------------------' `---------------'
*/
[3] = KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,EQL, PSLS,PAST,
CAPS,HOME,UP, PGUP,NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, INS, P7, P8, P9, PMNS,
LCAP,LEFT,DOWN,RGHT,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT, FN15, P4, P5, P6, PPLS,
LSFT,END, NO, PGDN,NO, NO, NO, NO, END, PGDN,DOWN, PGUP, P1, P2, P3, PENT,
LCTL,LGUI, FN16, LALT,FN31,HOME,END, PGDN, P0, PDOT
),
[4] = KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,EQL, PSLS,PAST,
CAPS,HOME,UP, PGUP,NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, INS, P7, P8, P9, PMNS,
LCAP,LEFT,DOWN,RGHT,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT, FN15, P4, P5, P6, PPLS,
LSFT,END, NO, PGDN,NO, NO, NO, NO, END, PGDN,DOWN, PGUP, P1, P2, P3, PENT,
LCTL,LGUI, FN16, LALT,FN31,HOME,END, PGDN, P0, PDOT
),
[7] = {},
};
/*
* Fn action definition
*/
#ifdef KEYMAP_SECTION_ENABLE
const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = {
#else
static const uint16_t fn_actions[] PROGMEM = {
#endif
[0] = ACTION_LAYER_MOMENTARY(1),
[1] = ACTION_LAYER_MOMENTARY(2),
[2] = ACTION_LAYER_MOMENTARY(3),
[3] = ACTION_LAYER_MOMENTARY(4),
[4] = ACTION_LAYER_MOMENTARY(5),
[5] = ACTION_LAYER_MOMENTARY(6),
[6] = ACTION_LAYER_MOMENTARY(7),
[7] = ACTION_LAYER_TOGGLE(1),
[8] = ACTION_LAYER_TOGGLE(2),
[9] = ACTION_LAYER_TOGGLE(3),
[10] = ACTION_LAYER_TAP_TOGGLE(1),
[11] = ACTION_LAYER_TAP_TOGGLE(2),
[12] = ACTION_LAYER_TAP_TOGGLE(3),
[13] = ACTION_LAYER_TAP_KEY(1, KC_F),
[14] = ACTION_LAYER_TAP_KEY(2, KC_J),
[15] = ACTION_LAYER_TAP_KEY(3, KC_ENTER),
[16] = ACTION_LAYER_TAP_KEY(4, KC_SPACE),
[17] = ACTION_LAYER_TAP_KEY(5, KC_SCOLON),
[18] = ACTION_LAYER_TAP_KEY(6, KC_QUOTE),
[19] = ACTION_LAYER_TAP_KEY(7, KC_SLASH),
[20] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPACE),
[21] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_SPACE),
[22] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_QUOTE),
[23] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENTER),
[24] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ESC),
[25] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPACE),
[26] = ACTION_MODS_ONESHOT(MOD_LCTL),
[27] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_ESC),
[28] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPACE),
[29] = ACTION_MODS_ONESHOT(MOD_LSFT),
[30] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRAVE),
[31] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_BSLASH),
};
/* translates key to keycode */
uint8_t keymap_key_to_keycode(uint8_t layer, key_t key)
{
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
}
/* translates Fn index to action */
action_t keymap_fn_to_action(uint8_t keycode)
{
action_t action;
action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]);
return action;
}

View File

@@ -1,201 +0,0 @@
/*
Copyright 2011,2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* M0110A Support was contributed by skagon@github */
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "keymap.h"
/*
* The keymap works with both M0110 and M0110A keyboards. As you can see, the M0110A is a superset
* of the M0110 keyboard, with only one exception: 'Enter' in M0110 does not exist
* on the M0110A, but since it generates a unique scan code which is not used for some other key in
* the M0110A, they are totally interchangeable. In fact, the M0110A is functionally (almost)
* identical to the combination of the M0110 along with the M0120 keypad. The only difference
* (which is causing some problems as you will read below) is that the M0110+M0120 don't have
* dedicated arrow keys, while the M0110A does. However, the M0120 did have arrow keys, which
* doubled as the [comma], [/], [*] and [+] keys, when used with the [Shift] key. The M0110A has
* substituted the [comma] key with the [=] key, however its scancode is the same.
*
* Physical layout:
* M0110A
* ,---------------------------------------------------------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Bcksp| |Clr| =| /| *|
* |---------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -|
* |-----------------------------------------------------' | |---------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +|
* |---------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| |
* |---------------------------------------------------------' |-----------|Ent|
* |Opt |Mac | Space | \|Lft|Rgt|Dn | | 0| .| |
* `---------------------------------------------------------' `---------------'
*
* M0110 M0120
* ,---------------------------------------------------------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| -| +| *|
* |---------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | 7| 8| 9| /|
* |---------------------------------------------------------| |---------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| ,|
* |---------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | | 1| 2| 3| |
* `---------------------------------------------------------' |-----------|Ent|
* |Opt|Mac | Space |Ent |Opt| | 0| .| |
* `-----------------------------------------------' `---------------'
* With Shift keys on M0120 work as curosor.(-:Left *:Right /:Up ,:Down)
*
* NOTE: \ is located differently.
* NOTE: Enter on M0110 is different from Enter on keypad(M0120 and M0110A).
* NOTE: Left Shift and right Shift are logically same key.
* NOTE: Left Option and right Option are logically same key.
*/
/* Keymap definition Macro
* ,---------------------------------------------------------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| =| /| *|
* |---------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -|
* |-----------------------------------------------------' | |---------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +|
* |---------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| |
* |---------------------------------------------------------| |-----------|Ent|
* |Opt |Mac | Space |Ent| \|Lft|Rgt|Dn | | 0| .| |
* `---------------------------------------------------------' `---------------'
* NOTE: Ent between Space and \ means Enter on M0110.
*/
#define KEYMAP( \
K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K47,K68,K6D,K62, \
K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E, K59,K5B,K5C,K4E, \
K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K66, \
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K4D, K53,K54,K55,K4C, \
K3A,K37, K31, K34,K2A,K46,K42,K48, K52, K41 \
) { \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_NO, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
{ KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_NO, KC_NO, KC_##K37 }, \
{ KC_##K38, KC_##K39, KC_##K3A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_##K47 }, \
{ KC_##K48, KC_NO, KC_NO, KC_NO, KC_##K4C, KC_##K4D, KC_##K4E, KC_NO }, \
{ KC_NO, KC_NO, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_NO, KC_##K5B, KC_##K5C, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_##K62, KC_NO, KC_NO, KC_NO, KC_##K66, KC_NO }, \
{ KC_##K68, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K6D, KC_NO, KC_NO }, \
}
#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
1, // Fn0
2, // Fn1
3, // Fn2
1, // Fn3
2, // Fn4
0, // Fn5
0, // Fn6
0 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KC_ENTER, // Fn0
KC_SCOLON, // Fn1
KC_SLASH, // Fn2
KC_UP, // Fn3
KC_NO, // Fn4
KC_NO, // Fn5
KC_NO, // Fn6
KC_NO // Fn7
};
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default:
* M0110 M0120
* ,---------------------------------------------------------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Gui| -| +| *|
* |---------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | 7| 8| 9| /|
* |---------------------------------------------------------| |---------------|
* |Ctrl | A| S| D| F| G| H| J| K| L| Fn| '|Return| | 4| 5| 6| ,|
* |---------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| Fn|Shift | | 1| 2| 3| |
* `---------------------------------------------------------' |-----------|Ent|
* |Fn |alt | Space |Gui |Fn | | 0| .| |
* `-----------------------------------------------' `---------------'
*/
KEYMAP(
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, NLCK,EQL, PSLS,PAST,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, P7, P8, P9, PMNS,
LCTL,A, S, D, F, G, H, J, K, L, FN1, QUOT, FN0, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, FN3, P1, P2, P3, PENT,
FN4, LALT, SPC, LGUI,BSLS,LGUI,RCTL,RCTL, LGUI, PDOT
),
// HHKB & WASD
KEYMAP(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,EQL, PSLS,PAST,
CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, P7, P8, P9, PMNS,
LCTL,VOLD,VOLU,MUTE,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT, FN0, P4, P5, P6, PPLS,
LSFT,NO, NO, NO, NO, NO, NO, NO, END, PGDN,DOWN, FN3, P1, P2, P3, PENT,
LCTL,LALT, SPC, LGUI,INS, LGUI,RCTL,RCTL, P0, PDOT
),
// vi mousekeys
KEYMAP(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,EQL, PSLS,PAST,
CAPS,NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,PSCR,SLCK,PAUS, P7, P8, P9, PMNS,
LCTL,VOLD,VOLU,MUTE,NO, NO, MS_L,MS_D,MS_U,MS_R,FN1, NO, ENT, P4, P5, P6, PPLS,
LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,NO, NO, NO, NO, P1, P2, P3, PENT,
FN4, LALT, BTN1, LGUI,NO, LGUI,RCTL,RCTL, P0, PDOT
),
// vi cusorkeys
KEYMAP(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,EQL, PSLS,PAST,
CAPS,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, PSCR,SLCK,PAUS, P7, P8, P9, PMNS,
LCTL,NO, NO, NO, NO, NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS,
LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, NO, P1, P2, P3, PENT,
LCTL,LALT, SPC, LGUI,INS, LGUI,RCTL,RCTL, P0, PDOT
),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return KEYCODE(layer, row, col);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,142 +0,0 @@
/*
Copyright 2011,2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* scan matrix
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "util.h"
#include "debug.h"
#include "host.h"
#include "led.h"
#include "m0110.h"
#include "matrix.h"
#define CAPS 0x39
#define CAPS_BREAK (CAPS | 0x80)
#define ROW(key) ((key)>>3&0x0F)
#define COL(key) ((key)&0x07)
static bool is_modified = false;
// matrix state buffer(1:on, 0:off)
static uint8_t *matrix;
static uint8_t _matrix0[MATRIX_ROWS];
static void register_key(uint8_t key);
inline
uint8_t matrix_rows(void)
{
return MATRIX_ROWS;
}
inline
uint8_t matrix_cols(void)
{
return MATRIX_COLS;
}
void matrix_init(void)
{
m0110_init();
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00;
matrix = _matrix0;
return;
}
uint8_t matrix_scan(void)
{
uint8_t key;
is_modified = false;
key = m0110_recv_key();
if (key == M0110_NULL) {
return 0;
} else if (key == M0110_ERROR) {
return 0;
} else {
is_modified = true;
register_key(key);
}
if (debug_enable) {
print("["); phex(key); print("]\n");
}
return 1;
}
bool matrix_is_modified(void)
{
return is_modified;
}
inline
bool matrix_has_ghost(void)
{
return false;
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
return (matrix[row] & (1<<col));
}
inline
uint8_t matrix_get_row(uint8_t row)
{
return matrix[row];
}
void matrix_print(void)
{
print("\nr/c 01234567\n");
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
pbin_reverse(matrix_get_row(row));
print("\n");
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
count += bitpop(matrix[i]);
}
return count;
}
inline
static void register_key(uint8_t key)
{
if (key&0x80) {
matrix[ROW(key)] &= ~(1<<COL(key));
} else {
matrix[ROW(key)] |= (1<<COL(key));
}
}

View File

@@ -1,74 +0,0 @@
#
# Makefile for PJRC Teensy
#
# Target file name (without extension).
TARGET = news_usb_pjrc
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# keyboard dependent files
SRC = keymap.c \
matrix.c \
led.c \
news.c
CONFIG_H = config_pjrc.h
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Teensy++ halfKay 1024
# Atmel DFU loader 4096
# LUFA bootloader 4096
# USBaspLoader 2048
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# *Comment out* to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+5000)
EXTRAKEY_ENABLE = yes # Audio control and System control(+600)
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover(+500)
#---------------- Programming Options --------------------------
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/pjrc.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,62 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x5021
#define MANUFACTURER t.m.k.
#define PRODUCT SONY NEWS keyboard converter
#define DESCRIPTION converts SONY NEWS protocol into USB
/* matrix size */
#define MATRIX_ROWS 16 // keycode bit: 3-0
#define MATRIX_COLS 8 // keycode bit: 6-4
/* legacy keymap support */
#define USE_LEGACY_KEYMAP
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) || \
keyboard_report->mods == (MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RSHIFT)) \
)
/* Asynchronous USART
* 8-data bit, non parity, 1-stop bit, no flow control
*/
#ifdef __AVR_ATmega32U4__
# define NEWS_KBD_RX_VECT USART1_RX_vect
# define NEWS_KBD_RX_DATA UDR1
# define NEWS_KBD_RX_BAUD 9600
# define NEWS_KBD_RX_UBBR ((F_CPU/(16UL*NEWS_KBD_RX_BAUD))-1)
# define NEWS_KBD_RX_INIT() do { \
UBRR1L = (uint8_t) NEWS_KBD_RX_UBBR; \
UBRR1H = (uint8_t) (NEWS_KBD_RX_UBBR>>8); \
UCSR1B |= (1<<RXCIE1) | (1<<RXEN1); \
} while(0)
#else
# error "USART configuration is needed."
#endif
#endif

View File

@@ -1,125 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "util.h"
#include "keymap.h"
// Following macros help you to define a keymap with the form of actual keyboard layout.
/* SONY NEWS NWP-5461 */
#define KEYMAP( \
K7A, K01,K02,K03,K04,K05, K06,K07,K08,K09,K0A, K68,K69, K64,K65,K52, \
K0B,K0C,K0D,K0E,K0F,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19, K6A, K4B,K4C,K4D,K4E, \
K1A,K1B,K1C,K1D,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27, K6B, K4F,K50,K51,K56, \
K28,K29,K2A,K2B,K2C,K2D,K2E,K2F,K30,K31,K32,K33,K34, K35, K6C, K53,K54,K55,K5A, \
K36,K37,K38,K39,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41, K42, K6D, K57,K59,K58, \
K43,K44,K45, K46, K47, K48,K49,K4A, K6E, K66,K5B,K5C,K5D \
) { \
{ KC_NO, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
{ KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
{ KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, \
{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, \
{ KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, \
{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_##K64, KC_##K65, KC_##K66, KC_NO }, \
{ KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_##K6C, KC_##K6D, KC_##K6E, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, }, \
{ KC_NO, KC_NO, KC_##K7A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
}
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
0, // Fn0
0, // Fn1
0, // Fn2
0, // Fn3
0, // Fn4
0, // Fn5
0, // Fn6
0 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KC_NO, // Fn0
KC_NO, // Fn1
KC_NO, // Fn2
KC_NO, // Fn3
KC_NO, // Fn4
KC_NO, // Fn5
KC_NO, // Fn6
KC_NO // Fn7
};
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: default
* ,---. ,------------------------, ,------------------------. ,---------.
* |Pow| | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10| | F11| F12| ,-----------.
* `---' `------------------------' `------------------------' `---------' | *| /| +|
* ,-------------------------------------------------------------. ,---. ,---------------|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS | |Hlp| | 7| 8| 9| -|
* |-------------------------------------------------------------| |---| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Del| | |Ins| | 4| 5| 6| ,|
* |---------------------------------------------------------' | |---| |---------------|
* |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `|Return| |Clr| | 1| 2| 3| |
* |-------------------------------------------------------------| |---| |-----------|Ent|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /| |Shift | |PgU| | 0| .| Up| |
* |-------------------------------------------------------------| |---| |---------------|
* |Alt |Gui |Alt | Space | |Gui|App|Ctrl | |PgD| |Tab|Lef|Dow|Rig|
* `-------------------------------------------------------------' `---' `---------------'
*/
KEYMAP(
PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PAST,PSLS,PPLS,
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,BSPC, HELP, P7, P8, P9, PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,DEL, INS, P4, P5, P6, PCMM,
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,GRV, ENT, CLR, P1, P2, P3, PENT,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RO, RSFT, PGUP, P0, PDOT,UP,
LALT,CAPS,LALT, SPC, ERAS, RALT,RGUI,RCTL, PGDN, TAB, LEFT,DOWN,RGHT
),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,142 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "util.h"
#include "news.h"
#include "matrix.h"
#include "debug.h"
/*
* Matrix Array usage:
*
* ROW: 16
* COL:8
*
* 8bit wide
* +---------+
* 0|00 ... 07|
* 1|08 ... 0F|
* :| ... |
* :| ... |
* E|70 ... 77|
* F|78 ... 7F|
* +---------+
*
*/
static uint8_t matrix[MATRIX_ROWS];
#define ROW(code) ((code>>3)&0xF)
#define COL(code) (code&0x07)
static bool is_modified = false;
inline
uint8_t matrix_rows(void)
{
return MATRIX_ROWS;
}
inline
uint8_t matrix_cols(void)
{
return MATRIX_COLS;
}
void matrix_init(void)
{
news_init();
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
return;
}
uint8_t matrix_scan(void)
{
is_modified = false;
uint8_t code;
code = news_recv();
if (code == 0) {
return 0;
}
phex(code); print(" ");
if (code&0x80) {
// break code
if (matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] &= ~(1<<COL(code));
is_modified = true;
}
} else {
// make code
if (!matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] |= (1<<COL(code));
is_modified = true;
}
}
return code;
}
bool matrix_is_modified(void)
{
return is_modified;
}
inline
bool matrix_has_ghost(void)
{
return false;
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
return (matrix[row] & (1<<col));
}
inline
uint8_t matrix_get_row(uint8_t row)
{
return matrix[row];
}
void matrix_print(void)
{
print("\nr/c 01234567\n");
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
pbin_reverse(matrix_get_row(row));
print("\n");
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
count += bitpop(matrix[i]);
}
return count;
}

View File

@@ -1,83 +0,0 @@
# Target file name (without extension).
TARGET = pc98_usb
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# keyboard dependent files
SRC = keymap.c \
matrix.c \
led.c \
protocol/serial_uart.c
# protocol/serial_soft.c
CONFIG_H = config.h
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8
# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU)
# Interrupt driven control endpoint task
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Build Options
# *Comment out* to disable the options.
#
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
#NKRO_ENABLE = yes # USB Nkey Rollover
# Boot Section Size in bytes
# Teensy halfKay 512
# Atmel DFU loader 4096
# LUFA bootloader 4096
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/lufa.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,70 +0,0 @@
PC98 to USB keyboard protocol converter
=======================================
Target MCU is ATMega32u4 but other USB capable AVR will also work.
Connector
---------
8Pin mini DIN
___ ___
/ |_| \
/ 8 7 6 \
| 5 4 3 |
\_ 2 1 _/
\_____/
(receptacle)
Wiring: You can change this with ediging config.h.
Pin mini DIN MCU
----------------------------------
1 ~RST PD1
2 GND GND
3 ~RDY PD4
4 RXD PD2
5 ~RTY PD5
6 NC
7 NC
8 5V VCC
Protocol
--------
Singnal: Asynchronous, Positive logic, 19200baud, Least bit first
Frame format: 1-Start bit(Lo), 8-Data bits, Odd-Parity, 1-Stop bit
This converter uses software method for testing purpose. AVR UART engine will work better.
Build Firmware
--------------
Just use 'make'
$ cd pc98_usb
$ make
Then, load the binary to MCU with your favorite programmer.
Other PC98 converter projects and resource
------------------------------------------
PC98 to USB
http://davy.nyacom.net/kbd98usb/
PC98 to PS/2
http://www.tsp.ne.jp/~sawada/mago/c_gka98at.htm
http://www.tsp.ne.jp/~sawada/mago/src/gka98at.asm
PC98 keyboard commands
http://www.webtech.co.jp/company/doc/undocumented_mem/io_kb.txt
Inhibit repeating key:
0x9C, 0x70

View File

@@ -1,123 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x9898
#define DEVICE_VER 0x0100
#define MANUFACTURER t.m.k.
#define PRODUCT PC98 keyboard converter
#define DESCRIPTION converts PC98 keyboard protocol into USB
/* matrix size */
#define MATRIX_ROWS 16
#define MATRIX_COLS 8
/* key combination for command */
#define IS_COMMAND() ( \
host_get_first_key() == KC_CANCEL \
)
/* PC98 Reset Port shared with TXD */
#define PC98_RST_DDR DDRD
#define PC98_RST_PORT PORTD
#define PC98_RST_BIT 3
/* PC98 Ready Port */
#define PC98_RDY_DDR DDRD
#define PC98_RDY_PORT PORTD
#define PC98_RDY_BIT 4
/* PC98 Retry Port */
#define PC98_RTY_DDR DDRD
#define PC98_RTY_PORT PORTD
#define PC98_RTY_BIT 5
/*
* PC98 Serial(USART) configuration
* asynchronous, positive logic, 19200baud, bit order: LSB first
* 1-start bit, 8-data bit, odd parity, 1-stop bit
*/
/*
* Software Serial
*/
#define SERIAL_SOFT_BAUD 19200
#define SERIAL_SOFT_PARITY_ODD
#define SERIAL_SOFT_BIT_ORDER_LSB
#define SERIAL_SOFT_LOGIC_POSITIVE
/* RXD Port */
#define SERIAL_SOFT_RXD_DDR DDRD
#define SERIAL_SOFT_RXD_PORT PORTD
#define SERIAL_SOFT_RXD_PIN PIND
#define SERIAL_SOFT_RXD_BIT 2
#define SERIAL_SOFT_RXD_READ() (SERIAL_SOFT_RXD_PIN&(1<<SERIAL_SOFT_RXD_BIT))
/* RXD Interupt */
#define SERIAL_SOFT_RXD_VECT INT2_vect
#define SERIAL_SOFT_RXD_INIT() do { \
/* pin configuration: input with pull-up */ \
SERIAL_SOFT_RXD_DDR &= ~(1<<SERIAL_SOFT_RXD_BIT); \
SERIAL_SOFT_RXD_PORT |= (1<<SERIAL_SOFT_RXD_BIT); \
/* enable interrupt: INT2(falling edge) */ \
EICRA |= ((1<<ISC21)|(0<<ISC20)); \
EIMSK |= (1<<INT2); \
sei(); \
} while (0)
#define SERIAL_SOFT_RXD_INT_ENTER()
#define SERIAL_SOFT_RXD_INT_EXIT() do { \
/* clear interrupt flag */ \
EIFR = (1<<INTF2); \
} while (0)
/* TXD Port */
#define SERIAL_SOFT_TXD_DDR DDRD
#define SERIAL_SOFT_TXD_PORT PORTD
#define SERIAL_SOFT_TXD_PIN PIND
#define SERIAL_SOFT_TXD_BIT 3
#define SERIAL_SOFT_TXD_HI() do { SERIAL_SOFT_TXD_PORT |= (1<<SERIAL_SOFT_TXD_BIT); } while (0)
#define SERIAL_SOFT_TXD_LO() do { SERIAL_SOFT_TXD_PORT &= ~(1<<SERIAL_SOFT_TXD_BIT); } while (0)
#define SERIAL_SOFT_TXD_INIT() do { \
/* pin configuration: output */ \
SERIAL_SOFT_TXD_DDR |= (1<<SERIAL_SOFT_TXD_BIT); \
/* idle */ \
SERIAL_SOFT_TXD_ON(); \
} while (0)
/*
* Hardware Serial(UART)
*/
#ifdef __AVR_ATmega32U4__
#define SERIAL_UART_BAUD 19200
#define SERIAL_UART_DATA UDR1
#define SERIAL_UART_UBRR ((F_CPU/(16UL*SERIAL_UART_BAUD))-1)
#define SERIAL_UART_RXD_VECT USART1_RX_vect
#define SERIAL_UART_TXD_READY (UCSR1A&(1<<UDRE1))
#define SERIAL_UART_INIT() do { \
UBRR1L = (uint8_t) SERIAL_UART_UBRR; /* baud rate */ \
UBRR1H = (uint8_t) (SERIAL_UART_UBRR>>8); /* baud rate */ \
UCSR1B |= (1<<RXCIE1) | (1<<RXEN1); /* RX interrupt, RX: enable */ \
UCSR1B |= (0<<TXCIE1) | (1<<TXEN1); /* TX interrupt, TX: enable */ \
UCSR1C |= (1<<UPM11) | (1<<UPM10); /* parity: none(00), even(01), odd(11) */ \
sei(); \
} while(0)
#else
#error "USART configuration is needed."
#endif
#endif

View File

@@ -1,208 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "action.h"
#include "action_macro.h"
#include "util.h"
#include "keymap.h"
/* PC-9801-98-S02 Raku Raku keyboard(Luckyboard) Normal Mode
,---------------------------------------------------------------.
| 60| 61| 62| 63| 64| 65| 66| 67| 68| 69| 6A| 6B| 36| 37| 3F| 3E|
`---------------------------------------------------------------'
,---------------------------------------------------------------.
| 00| 01| 02| 03| 04| 05| 58| 71| 06| 07| 08| 09| 0A| 0E|
|---------------------------------------------------------------|
| 0F| 10| 11| 12| 13| 14| 3A | 15| 16| 17| 18| 19| 1C|
|---------------------------------------------------------'. |
| 74| 20| 21| 22| 23| 24| 3B | 3C | 25| 26| 27| 28| 29| |
|---------------------------------------------------------------|
| 70| 2A| 2B| 2C| 2D| 2E| 38| 3D | 39| 2F| 30| 31| 32| 33| 70|
`---------------------------------------------------------------'
| 73| 51| 5B| 59| 34| 5A| 35| xx|
`-----------------------------------------------'
xx: 74 35 F4 B5
*/
#define KEYMAP( \
K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, K36, K37, K3F, K3E, \
K00, K01, K02, K03, K04, K05, K58, K71, K06, K07, K08, K09, K0A, K0E, \
K0F, K10, K11, K12, K13, K14, K3A, K15, K16, K17, K18, K19, K1C, \
K74, K20, K21, K22, K23, K24, K3B, K3C, K25, K26, K27, K28, K29, \
K70,K2A, K2B, K2C, K2D, K2E, K38, K3D, K39, K2F, K30, K31, K32, K33, \
K73, K51, K5B, K59, K34, K5A, K35 \
) { \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_##K0A, KC_NO, KC_NO, KC_NO, KC_##K0E, KC_##K0F }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
{ KC_##K18, KC_##K19, KC_NO, KC_NO, KC_##K1C, KC_NO, KC_NO, KC_NO }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
{ KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_##K51, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \
{ KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_##K70, KC_##K71, KC_NO, KC_##K73, KC_##K74, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
}
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
,---------------------------------------------------------------.
| 60| 61| 62| 63| 64| 65| 66| 67| 68| 69| 6A| 6B| 36| 37| 3F| 3E|
`---------------------------------------------------------------'
,---------------------------------------------------------------.
| 00| 01| 02| 03| 04| 05| 58| 71| 06| 07| 08| 09| 0A| 0E|
|---------------------------------------------------------------|
| 0F| 10| 11| 12| 13| 14| 3A | 15| 16| 17| 18| 19| 1C|
|---------------------------------------------------------------|
| 74| 20| 21| 22| 23| 24| MINS| EQL| 25| 26| 27| 28| 29| |
|---------------------------------------------------------------|
| 70| 2A| 2B| 2C| 2D| 2E| 38| 3D | 39| 2F| 30| 31| 32| 33| 70|
`---------------------------------------------------------------'
| 73| 51| 5B| 59| 34| 5A| 35| xx|
`-----------------------------------------------'
*/
KEYMAP(
CANCEL,COPY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, FN6,
ESC, 1, 2, 3, 4, 5, FN4, FN5, 6, 7, 8, 9, 0, BSPC,
TAB, Q, W, E, R, T, UP, Y, U, I, O, P, ENT,
LCTL, A, S, D, F, G, MINS, EQL, H, J, K, L, FN2,
LSFT, Z, X, C, V, B, GRV, BSLS, QUOT, N, M,COMM, DOT, FN1,
LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
),
KEYMAP(
PAUS,COPY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14,
GRV, F1, F2, F3, F4, F5, NO, NO, F6, F7, F8, F9, F10, DEL,
TAB, Q, W, E, R, T, UP, HOME,PGDN,PGUP, END, P, ENT,
LCTL, A, S, D, F, G, MINS, EQL, LEFT,DOWN, UP,RGHT,SCLN,
LSFT, Z, X, C, V, B, INS, DOWN, DEL,HOME,PGDN,PGUP, END,TRNS,
LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
),
KEYMAP(
PAUS,COPY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14,
GRV, F1, F2, F3, F4, F5, NO, NO, F6, F7, F8, F9, F10, DEL,
TAB, Q, W, E, R, T, UP, WH_L,WH_D,WH_U,WH_R, P, ENT,
LCTL, A, S, D, F, G, MINS, EQL, MS_L,MS_D,MS_U,MS_R,TRNS,
LSFT, Z, X, C, V, B, INS, DOWN, BTN3,BTN2,BTN1,BTN4,BTN5,TRNS,
LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
),
};
static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {};
/*
* Macro definition
*/
enum macro_id {
LBRACKET,
RBRACKET,
DUMMY,
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
keyevent_t event = record->event;
//uint8_t tap_count = record->tap_count;
switch (id) {
case LBRACKET:
return (event.pressed ?
MACRO( T(LBRC), END ) :
MACRO( T(LBRC), END ) );
case RBRACKET:
return (event.pressed ?
MACRO( T(RBRC), END ) :
MACRO( T(RBRC), END ) );
}
return MACRO_NONE;
}
/*
* Action function
*/
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
{
/*
keyevent_t event = record->event;
uint8_t tap_count = record->tap_count;
switch (id) {
case 0xFF:
action_macro_play(get_macro(opt, event.pressed));
break;
}
*/
}
/*
* Fn actions
*/
static const uint16_t PROGMEM fn_actions[] = {
ACTION_LAYER_TAP_TOGGLE(0), // FN0
ACTION_LAYER_TAP_KEY(1, KC_SLASH), // FN1
ACTION_LAYER_TAP_KEY(2, KC_SCLN), // FN2
ACTION_LAYER_MOMENTARY(2), // FN3
ACTION_MACRO(LBRACKET), // FN4
ACTION_MACRO(RBRACKET), // FN5
ACTION_MACRO(DUMMY), // FN6
};
/*
* No need to edit.
*/
#define KEYMAPS_SIZE (sizeof(keymaps) / sizeof(keymaps[0]))
#define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0]))
/* translates key to keycode */
uint8_t keymap_key_to_keycode(uint8_t layer, key_t key)
{
if (layer < KEYMAPS_SIZE) {
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
} else {
// fall back to layer 0
return pgm_read_byte(&keymaps[0][(key.row)][(key.col)]);
}
}
/* translates Fn keycode to action */
action_t keymap_fn_to_action(uint8_t keycode)
{
action_t action;
if (FN_INDEX(keycode) < FN_ACTIONS_SIZE) {
action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]);
} else {
action.code = ACTION_NO;
}
return action;
}

View File

@@ -1,211 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "util.h"
#include "matrix.h"
#include "debug.h"
#include "protocol/serial.h"
/*
* Matrix Array usage:
*
* ROW: 16(4bits)
* COL: 8(3bits)
*
* 8bit wide
* +---------+
* 0|00 ... 07|
* 1|08 ... 0F|
* :| ... |
* :| ... |
* E|70 ... 77|
* F|78 ... 7F|
* +---------+
*/
static uint8_t matrix[MATRIX_ROWS];
#define ROW(code) ((code>>3)&0xF)
#define COL(code) (code&0x07)
static bool is_modified = false;
inline
uint8_t matrix_rows(void)
{
return MATRIX_ROWS;
}
inline
uint8_t matrix_cols(void)
{
return MATRIX_COLS;
}
static void pc98_inhibit_repeat(void)
{
uint8_t code;
while (serial_recv()) ;
RETRY:
PC98_RDY_PORT |= (1<<PC98_RDY_BIT);
_delay_ms(500);
serial_send(0x9C);
PC98_RDY_PORT &= ~(1<<PC98_RDY_BIT);
_delay_ms(100);
while (!(code = serial_recv())) ;
print("PC98: send 9C: "); print_hex8(code); print("\n");
if (code != 0xFA) goto RETRY;
PC98_RDY_PORT |= (1<<PC98_RDY_BIT);
_delay_ms(100);
serial_send(0x70);
PC98_RDY_PORT &= ~(1<<PC98_RDY_BIT);
_delay_ms(100);
//code = serial_recv();
while (!(code = serial_recv())) ;
print("PC98: send 70: "); print_hex8(code); print("\n");
if (code != 0xFA) goto RETRY;
}
void matrix_init(void)
{
PC98_RST_DDR |= (1<<PC98_RST_BIT);
PC98_RDY_DDR |= (1<<PC98_RDY_BIT);
PC98_RTY_DDR |= (1<<PC98_RTY_BIT);
PC98_RST_PORT |= (1<<PC98_RST_BIT);
PC98_RDY_PORT |= (1<<PC98_RDY_BIT);
PC98_RTY_PORT |= (1<<PC98_RTY_BIT);
serial_init();
// PC98 reset
/*
PC98_RST_PORT &= ~(1<<PC98_RST_BIT);
_delay_us(15);
PC98_RST_PORT |= (1<<PC98_RST_BIT);
_delay_us(13);
PC98_RDY_PORT &= ~(1<<PC98_RDY_BIT);
*/
_delay_ms(500);
pc98_inhibit_repeat();
// PC98 ready
PC98_RDY_PORT &= ~(1<<PC98_RDY_BIT);
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
debug("init\n");
return;
}
uint8_t matrix_scan(void)
{
is_modified = false;
uint16_t code;
PC98_RDY_PORT |= (1<<PC98_RDY_BIT);
_delay_us(30);
code = serial_recv2();
PC98_RDY_PORT &= ~(1<<PC98_RDY_BIT);
if (code == -1) return 0;
if (code == 0x60) {
pc98_inhibit_repeat();
/*
PC98_RDY_PORT |= (1<<PC98_RDY_BIT);
_delay_ms(100);
serial_send(0x96);
PC98_RDY_PORT &= ~(1<<PC98_RDY_BIT);
*/
return 0;
}
print_hex8(code); print(" ");
if (code&0x80) {
// break code
if (matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] &= ~(1<<COL(code));
is_modified = true;
}
} else {
// make code
if (!matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] |= (1<<COL(code));
is_modified = true;
}
}
return code;
}
bool matrix_is_modified(void)
{
return is_modified;
}
inline
bool matrix_has_ghost(void)
{
return false;
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
return (matrix[row] & (1<<col));
}
inline
uint8_t matrix_get_row(uint8_t row)
{
return matrix[row];
}
void matrix_print(void)
{
print("\nr/c 01234567\n");
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
pbin_reverse(matrix_get_row(row));
print("\n");
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
count += bitpop(matrix[i]);
}
return count;
}

View File

@@ -1,75 +0,0 @@
# Target file name (without extension).
TARGET = ps2_usb
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
# Build Options
# *Comment out* to disable the options.
#
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
NKRO_ENABLE = yes # USB Nkey Rollover
PS2_USE_USART = yes # uses hardware USART engine for PS/2 signal receive(recomened)
#PS2_USE_INT = yes # uses external interrupt for falling edge of PS/2 clock pin
#PS2_USE_BUSYWAIT = yes # uses primitive reference code
# keyboard dependent files
SRC = keymap.c \
matrix.c \
led.c
ifdef PS2_USE_USART
SRC += protocol/ps2_usart.c
OPT_DEFS += -DPS2_USE_USART
endif
ifdef PS2_USE_INT
SRC += protocol/ps2.c
OPT_DEFS += -DPS2_USE_INT
endif
ifdef PS2_USE_BUSYWAIT
SRC += protocol/ps2.c
OPT_DEFS += -DPS2_USE_BUSYWAIT
endif
#CONFIG_H = config_pjrc_usart.h
CONFIG_H = config.h
#---------------- Programming Options --------------------------
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/pjrc.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,75 +0,0 @@
# Target file name (without extension).
TARGET = ps2_usb_jis
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
# Build Options
# *Comment out* to disable the options.
#
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
NKRO_ENABLE = yes # USB Nkey Rollover
#PS2_USE_USART = yes # uses hardware USART engine for PS/2 signal receive(recomened)
#PS2_USE_INT = yes # uses external interrupt for falling edge of PS/2 clock pin
PS2_USE_BUSYWAIT = yes # uses primitive reference code
# keyboard dependent files
SRC = keymap_jis.c \
matrix.c \
led.c
ifdef PS2_USE_USART
SRC += protocol/ps2_usart.c
OPT_DEFS += -DPS2_USE_USART
endif
ifdef PS2_USE_INT
SRC += protocol/ps2.c
OPT_DEFS += -DPS2_USE_INT
endif
ifdef PS2_USE_BUSYWAIT
SRC += protocol/ps2.c
OPT_DEFS += -DPS2_USE_BUSYWAIT
endif
#CONFIG_H = config_pjrc_usart.h
CONFIG_H = config.h
#---------------- Programming Options --------------------------
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/pjrc.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,101 +0,0 @@
# Target file name (without extension).
TARGET = ps2_usb_vusb
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# keyboard dependent files
SRC = keymap.c \
matrix.c \
led.c
# Use USART for PS/2. With V-USB INT and BUSYWAIT code is not useful.
SRC += protocol/ps2_usart.c
OPT_DEFS += -DPS2_USE_USART
CONFIG_H = config.h
# V-USB debug level: To use ps2_usart.c level must be 0
# ps2_usart.c requires USART to receive PS/2 signal.
OPT_DEFS += -DDEBUG_LEVEL=0
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
#MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
MCU = atmega168
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 20000000
# Build Options
# comment out to disable the options.
#
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
#NKRO_ENABLE = yes # USB Nkey Rollover
NO_UART = yes # UART is unavailable
#---------------- Programming Options --------------------------
AVRDUDE = avrdude
# Type: avrdude -c ? to get a full listing.
AVRDUDE_PROGRAMMER = usbasp
AVRDUDE_PORT =
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
# Uncomment the following if you want avrdude's erase cycle counter.
# Note that this counter needs to be initialized first using -Yn,
# see avrdude manual.
#AVRDUDE_ERASE_COUNTER = -y
# Uncomment the following if you do /not/ wish a verification to be
# performed after programming the device.
#AVRDUDE_NO_VERIFY = -V
# Increase verbosity level. Please use this when submitting bug
# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
# to submit bug reports.
#AVRDUDE_VERBOSE = -v -v
#AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
AVRDUDE_FLAGS = -p $(MCU) -c $(AVRDUDE_PROGRAMMER)
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
PROGRAM_CMD = $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
# Boot Section Size in bytes
# Teensy halfKay 512
# Atmel DFU loader 4096
# LUFA bootloader 4096
# USBasp 2048
OPT_DEFS += -DBOOTLOADER_SIZE=2048
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/vusb.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,122 +0,0 @@
PS/2 to USB keyboard converter
==============================
This firmware converts PS/2 keyboard protocol to USB and supports only Scan Code Set 2.
This will works on USB AVR(ATMega32U4, AT90USB) or V-USB(ATMega168, 328...).
Features
--------
Mouse keys
You can emulates mouse move and button click using keyboard.
System/Media control
You can sends Power event, Volume down/up and Mute.
USB NKRO(actually 120KRO+8Modifiers)
You can tolggles NKRO feature.
Keymap customization
You can customize keymaps easily by editing source code. See keymap.c.
PS/2 signal handling implementations
------------------------------------
Following three methods are used to implement PS/2 signal handling.
a. Simple and stupid busy-wait(ps2.c)
This is expected to implemented with portable C code for reference.
b. Interrupt driven(ps2.c)
Uses external interrupt to detect falling edge of clock line.
c. USART hardware module(ps2_usart.c)
Uses AVR USART engine to recevie PS/2 signal. Recomended and default.
This is required to work with V-USB, preceding two methods tend to
miss signal edges while V-USB handles USB.
To select method edit Makefile.
Connect Wires
-------------
In case of Teensy2.0(ATMega32U4):
0. Connect Vcc and GND.
1. Connect Clock and Data line.
For a. Clock is on PF0 and Data on PF1.
For b. Clock is on PD1 and Data on PD2.
For c. Clock is on PD5 and Data on PD2.
2. Optionally you need pull-up register. 1K-10K Ohm is OK.
To change pin configuration edit config.h.
Build Frimware
--------------
1. Edit Makefile for build options and MCU setting.
Use 'atmega32u4' for Teensy 2.0 or 'at90usb1286' for Teensy++ 2.0.
2. make
Just type `make` in a terminal.
Use `-f Makefile.vusb` option to build V-USB converter.
Use `-f Makefile.jis` option to use JIS keyboard.
3. program MCU.
In case of Teensy use `Teensy Loader`.(http://www.pjrc.com/teensy/loader.html)
Otherwise you want to use `avrdude` or `dfu-programmer`.
Demonstration of Features
-------------------------
In default configuration, you can try several keymaps, mousekeys and USB NKRO.
Use following magic key combinations to enable some features.
keymaps and NKRO:
Magic+0: Qwerty with mousekeys(default)
Magic+1: Qwerty without mousekeys
Magic+2: Colemak
Magic+3: Dvorak
Magic+4: Workman
Magic+N: toggles NKRO/6KRO(6KRO by default)
Magic+Esc: sends Power Event(Power button)
where Magic=(LShift+RShift) or (LControl+RShift)
Fn layer function:
Fn0+(hjkl): Mousekey move(vi cursor like)
Fn0+(yuio): Mouse wheel(left,down,up,right)
Fn0+space: Mouse left button
Fn0+(mnb): Mouse buttons(m=left, n=right, b=middle)
Fn0+(zxc): Media control(Volup, Voldown, Mute)
Fn1+(hjkl): Cursor move(vi cursor like)
Fn1+(nm,.): Cursor move(Home,PageDown,PageUp,End)
where Fn0=;, Fn1=/
Keymap
------
You can change a keymap by editing code of keymap. See common/keycode.h for key symbols.
V-USB Support
-------------
You can also use this converter on ATmega(168/328) with V-USB instead of Teensy.
The converter on V-USB lacks some features for now: USB NKRO and System/Media control.
Circuit
-------
+---+ +---------------+
USB GND | | ATmega168 |
=== C3 | |
5V <-------+--------+---|Vcc,AVCC | PS/2
R1 | | ====
D- <----+--+-----R2-----|INT1 RXD|------->DATA
D+ <----|---+----R3-----|INT0 XCK|------->CLOCK
Z1 Z2 | | ->5V
GND<----+---+--+--+-----|GND | ->GND
| | | |
| C2-+--|XTAL1 |
| X1 | |
+--C3-+--|XTAL2 |
+---------------+
R1: 1.5K Ohm
R2,R3: 68 Ohm
Z1,Z2: Zenner 3.6V
C1,C2: 22pF
C3: 0.1uF
X1: Crystal 20MHz(16MHz/12MHz)
EOF

View File

@@ -1,170 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
#include <avr/interrupt.h>
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6512
#define MANUFACTURER t.m.k.
#define PRODUCT PS/2 keyboard converter
#define DESCRIPTION convert PS/2 keyboard to USB
/* matrix size */
#define MATRIX_ROWS 32 // keycode bit: 3-0
#define MATRIX_COLS 8 // keycode bit: 6-4
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) || \
keyboard_report->mods == (MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RSHIFT)) \
)
/* legacy keymap support */
#define USE_LEGACY_KEYMAP
#ifdef PS2_USE_USART
#if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)
/* XCK for clock line and RXD for data line */
#define PS2_CLOCK_PORT PORTD
#define PS2_CLOCK_PIN PIND
#define PS2_CLOCK_DDR DDRD
#define PS2_CLOCK_BIT 5
#define PS2_DATA_PORT PORTD
#define PS2_DATA_PIN PIND
#define PS2_DATA_DDR DDRD
#define PS2_DATA_BIT 2
/* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */
/* set DDR of CLOCK as input to be slave */
#define PS2_USART_INIT() do { \
PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT); \
PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT); \
UCSR1C = ((1 << UMSEL10) | \
(3 << UPM10) | \
(0 << USBS1) | \
(3 << UCSZ10) | \
(0 << UCPOL1)); \
UCSR1A = 0; \
UBRR1H = 0; \
UBRR1L = 0; \
} while (0)
#define PS2_USART_RX_INT_ON() do { \
UCSR1B = ((1 << RXCIE1) | \
(1 << RXEN1)); \
} while (0)
#define PS2_USART_RX_POLL_ON() do { \
UCSR1B = (1 << RXEN1); \
} while (0)
#define PS2_USART_OFF() do { \
UCSR1C = 0; \
UCSR1B &= ~((1 << RXEN1) | \
(1 << TXEN1)); \
} while (0)
#define PS2_USART_RX_READY (UCSR1A & (1<<RXC1))
#define PS2_USART_RX_DATA UDR1
#define PS2_USART_ERROR (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))
#define PS2_USART_RX_VECT USART1_RX_vect
#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__)
/* XCK for clock line and RXD for data line */
#define PS2_CLOCK_PORT PORTD
#define PS2_CLOCK_PIN PIND
#define PS2_CLOCK_DDR DDRD
#define PS2_CLOCK_BIT 4
#define PS2_DATA_PORT PORTD
#define PS2_DATA_PIN PIND
#define PS2_DATA_DDR DDRD
#define PS2_DATA_BIT 0
/* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */
/* set DDR of CLOCK as input to be slave */
#define PS2_USART_INIT() do { \
PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT); \
PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT); \
UCSR0C = ((1 << UMSEL00) | \
(3 << UPM00) | \
(0 << USBS0) | \
(3 << UCSZ00) | \
(0 << UCPOL0)); \
UCSR0A = 0; \
UBRR0H = 0; \
UBRR0L = 0; \
} while (0)
#define PS2_USART_RX_INT_ON() do { \
UCSR0B = ((1 << RXCIE0) | \
(1 << RXEN0)); \
} while (0)
#define PS2_USART_RX_POLL_ON() do { \
UCSR0B = (1 << RXEN0); \
} while (0)
#define PS2_USART_OFF() do { \
UCSR0C = 0; \
UCSR0B &= ~((1 << RXEN0) | \
(1 << TXEN0)); \
} while (0)
#define PS2_USART_RX_READY (UCSR0A & (1<<RXC0))
#define PS2_USART_RX_DATA UDR0
#define PS2_USART_ERROR (UCSR0A & ((1<<FE0) | (1<<DOR0) | (1<<UPE0)))
#define PS2_USART_RX_VECT USART_RX_vect
#endif
#endif
#ifdef PS2_USE_INT
/* uses INT1 for clock line(ATMega32U4) */
#define PS2_CLOCK_PORT PORTD
#define PS2_CLOCK_PIN PIND
#define PS2_CLOCK_DDR DDRD
#define PS2_CLOCK_BIT 1
#define PS2_DATA_PORT PORTD
#define PS2_DATA_PIN PIND
#define PS2_DATA_DDR DDRD
#define PS2_DATA_BIT 2
#define PS2_INT_INIT() do { \
EICRA |= ((1<<ISC11) | \
(0<<ISC10)); \
} while (0)
#define PS2_INT_ON() do { \
EIMSK |= (1<<INT1); \
} while (0)
#define PS2_INT_OFF() do { \
EIMSK &= ~(1<<INT1); \
} while (0)
#define PS2_INT_VECT INT1_vect
#endif
#ifdef PS2_USE_BUSYWAIT
#define PS2_CLOCK_PORT PORTF
#define PS2_CLOCK_PIN PINF
#define PS2_CLOCK_DDR DDRF
#define PS2_CLOCK_BIT 0
#define PS2_DATA_PORT PORTF
#define PS2_DATA_PIN PINF
#define PS2_DATA_DDR DDRF
#define PS2_DATA_BIT 1
#endif
#endif

View File

@@ -1,379 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Keymap for PS/2 keyboard
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "keymap.h"
// Following macros help you to define a keymap with the form of actual keyboard layout.
/* US layout plus all other various keys */
#define KEYMAP_ALL( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, K6B,K73,K74,K79, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K29, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA, \
\
K61, /* for European ISO */ \
K51, K13, K6A, K64, K67, /* for Japanese JIS */ \
K08, K10, K18, K20, K28, K30, K38, K40, K48, K50, K57, K5F, /* F13-24 */ \
KB7, KBF, KDE, /* System Power, Sleep, Wake */ \
KA3, KB2, KA1, /* Mute, Volume Up, Volume Down */ \
KCD, K95, KBB, KB4, KD0, /* Next, Previous, Stop, Pause, Media Select */ \
KC8, KAB, KC0, /* Mail, Calculator, My Computer */ \
K90, KBA, KB8, KB0, /* WWW Search, Home, Back, Forward */ \
KA8, KA0, K98 /* WWW Stop, Refresh, Favorites */ \
) { \
{ KC_NO, KC_##K01, KC_NO, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_NO }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_NO }, \
{ KC_##K18, KC_NO, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_NO }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_NO }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_NO }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_NO }, \
{ KC_##K38, KC_NO, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_NO }, \
{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_NO }, \
{ KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_NO }, \
{ KC_##K50, KC_##K51, KC_##K52, KC_NO, KC_##K54, KC_##K55, KC_NO, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_NO, KC_##K5D, KC_NO, KC_##K5F }, \
{ KC_NO, KC_##K61, KC_NO, KC_NO, KC_##K64, KC_NO, KC_##K66, KC_##K67 }, \
{ KC_NO, KC_##K69, KC_##K6A, KC_##K6B, KC_##K6C, KC_NO, KC_NO, KC_NO }, \
{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 }, \
{ KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_##K7C, KC_##K7D, KC_##K7E, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_##K83, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_##K90, KC_##K91, KC_NO, KC_NO, KC_##K94, KC_##K95, KC_NO, KC_NO }, \
{ KC_##K98, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K9F }, \
{ KC_##KA0, KC_##KA1, KC_NO, KC_##KA3, KC_NO, KC_NO, KC_NO, KC_##KA7 }, \
{ KC_##KA8, KC_NO, KC_NO, KC_##KAB, KC_NO, KC_NO, KC_NO, KC_##KAF }, \
{ KC_##KB0, KC_NO, KC_##KB2, KC_NO, KC_##KB4, KC_NO, KC_NO, KC_##KB7 }, \
{ KC_##KB8, KC_NO, KC_##KBA, KC_##KBB, KC_NO, KC_NO, KC_NO, KC_##KBF }, \
{ KC_##KC0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_##KC8, KC_NO, KC_##KCA, KC_NO, KC_NO, KC_##KCD, KC_NO, KC_NO }, \
{ KC_##KD0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_##KDA, KC_NO, KC_NO, KC_NO, KC_##KDE, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_##KE9, KC_NO, KC_##KEB, KC_##KEC, KC_NO, KC_NO, KC_NO }, \
{ KC_##KF0, KC_##KF1, KC_##KF2, KC_NO, KC_##KF4, KC_##KF5, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_##KFA, KC_NO, KC_##KFC, KC_##KFD, KC_##KFE, KC_NO }, \
}
/* US layout */
#define KEYMAP( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, K6B,K73,K74,K79, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K29, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA \
) \
KEYMAP_ALL( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, K6B,K73,K74,K79, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K29, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA, \
\
NUBS, \
RO, KANA, JYEN, HENK, MHEN, \
F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24, \
SYSTEM_POWER, SYSTEM_SLEEP, SYSTEM_WAKE, \
AUDIO_MUTE, AUDIO_VOL_UP, AUDIO_VOL_DOWN, \
MEDIA_NEXT_TRACK, MEDIA_PREV_TRACK, MEDIA_STOP, MEDIA_PLAY_PAUSE, MEDIA_SELECT, \
MAIL, CALCULATOR, MY_COMPUTER, \
WWW_SEARCH, WWW_HOME, WWW_BACK, WWW_FORWARD, \
WWW_STOP, WWW_REFRESH, WWW_FAVORITES \
)
/* ISO layout */
#define KEYMAP_ISO( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,K5D,K5A, K6B,K73,K74,K79, \
K12,K61,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K29, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA \
) \
KEYMAP_ALL( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, K6B,K73,K74,K79, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K29, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA, \
\
K61, \
RO, KANA, JYEN, HENK, MHEN, \
F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24, \
SYSTEM_POWER, SYSTEM_SLEEP, SYSTEM_WAKE, \
AUDIO_MUTE, AUDIO_VOL_UP, AUDIO_VOL_DOWN, \
MEDIA_NEXT_TRACK, MEDIA_PREV_TRACK, MEDIA_STOP, MEDIA_PLAY_PAUSE, MEDIA_SELECT, \
MAIL, CALCULATOR, MY_COMPUTER, \
WWW_SEARCH, WWW_HOME, WWW_BACK, WWW_FORWARD, \
WWW_STOP, WWW_REFRESH, WWW_FAVORITES \
)
/* JIS layout */
#define KEYMAP_JIS( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K6A,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,K5D, K5A, K6B,K73,K74,K79, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A,K51, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K67,K29,K64,K13, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA \
) \
KEYMAP_ALL( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, K6B,K73,K74,K79, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K29, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA, \
\
NUBS, \
K51, K13, K6A, K64, K67, \
F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24, \
SYSTEM_POWER, SYSTEM_SLEEP, SYSTEM_WAKE, \
AUDIO_MUTE, AUDIO_VOL_UP, AUDIO_VOL_DOWN, \
MEDIA_NEXT_TRACK, MEDIA_PREV_TRACK, MEDIA_STOP, MEDIA_PLAY_PAUSE, MEDIA_SELECT, \
MAIL, CALCULATOR, MY_COMPUTER, \
WWW_SEARCH, WWW_HOME, WWW_BACK, WWW_FORWARD, \
WWW_STOP, WWW_REFRESH, WWW_FAVORITES \
)
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
5, // Fn0
6, // Fn1
0, // Fn2
0, // Fn3
0, // Fn4
0, // Fn5
0, // Fn6
0 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KC_SCLN, // Fn0
KC_SLSH, // Fn1
KC_NO, // Fn2
KC_NO, // Fn3
KC_NO, // Fn4
KC_NO, // Fn5
KC_NO, // Fn6
KC_NO // Fn7
};
// The keymap is a 32*8 byte array which convert a PS/2 scan code into a USB keycode.
// See keycode.h for USB keycodes. You should omit a 'KC_' prefix of USB keycodes in keymap macro.
// Use KEYMAP_ISO() or KEYMAP_JIS() instead of KEYMAP() if your keyboard is ISO or JIS.
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: default
* ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------.
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak|
* `---' `---------------' `---------------' `---------------' `-----------' `-----------'
* ,-----------------------------------------------------------. ,-----------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| /| *| -|
* |-----------------------------------------------------------| |-----------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| |
* |-----------------------------------------------------------| `-----------' |-----------| +|
* |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| |
* |-----------------------------------------------------------| ,---. |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
* |-----------------------------------------------------------| ,-----------. |-----------|Ent|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| |
* `-----------------------------------------------------------' `-----------' `---------------'
* ; = Fn0(to Layer 5)
* / = Fn1(to Layer 6)
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
CAPS,A, S, D, F, G, H, J, K, L, FN0, QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 1: plain Qwerty without layer switching
* ,-----------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa|
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
* |-----------------------------------------------------------|
* |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 2: Colemak http://colemak.com
* ,-----------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa|
* |-----------------------------------------------------------|
* |Tab | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \|
* |-----------------------------------------------------------|
* |BackSp| A| R| S| T| D| H| N| E| I| O| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| K| M| ,| ,| /|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 3: Dvorak http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
* ,-----------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]|Backspa|
* |-----------------------------------------------------------|
* |Tab | '| ,| .| P| Y| F| G| C| R| L| /| =| \|
* |-----------------------------------------------------------|
* |BackSp| A| O| E| U| I| D| H| T| N| S| -|Return |
* |-----------------------------------------------------------|
* |Shift | ;| Q| J| K| X| B| M| Wl V| Z|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, DEL, END, PGDN, P7, P8, P9,
CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, P4, P5, P6, PPLS,
LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 4: Workman http://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/
* ,-----------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa|
* |-----------------------------------------------------------|
* |Tab | Q| D| R| W| B| J| F| U| P| ;| [| ]| \|
* |-----------------------------------------------------------|
* |CapsLo| A| S| H| T| G| Y| N| E| O| I| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| M| C| V| K| L| ,| ,| /|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 5: Mouse keys
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa|
* |-----------------------------------------------------------|
* |Tab |MwL|MwU|McU|WwU|WwR|MwL|MwD|MwU|MwR| | | | \|
* |-----------------------------------------------------------|
* |CapsLo| |McL|McD|McR| |McL|McD|McU|McR|Fn0| |Return |
* |-----------------------------------------------------------|
* |Shift |VoD|VoU|Mut|Mb2|Mb3|Mb2|Mb1|VoD|VoU|Mut|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Mb1 |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
* Mc = mouse cursor, Mw = mouse wheel, Mb = mouse button
* Vo = Volume, Mut = Mute
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, WH_L,WH_D,MS_U,WH_U,WH_R,WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSLS, DEL, END, PGDN, P7, P8, P9,
CAPS,NO, MS_L,MS_D,MS_R,NO, MS_L,MS_D,MS_U,MS_R,FN0, NO, ENT, P4, P5, P6, PPLS,
LSFT,VOLD,VOLU,MUTE,BTN2,BTN3,BTN2,BTN1,VOLD,VOLU,MUTE, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, BTN1, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 6: Cursor keys
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa|
* |-----------------------------------------------------------|
* |Tab |Hom|PgU| Up|PgU|End|Hom|PgD|PgU|End| | | | \|
* |-----------------------------------------------------------|
* |CapsLo| |Lef|Dow|Rig| |Lef|Dow| Up|Rig| | |Return |
* |-----------------------------------------------------------|
* |Shift | | | | | |Hom|PgD|PgU|End|Fn1|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, NO, NO, NO, BSLS, DEL, END, PGDN, P7, P8, P9,
CAPS,NO, NO, NO, NO, NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS,
LSFT,VOLD,VOLU,MUTE,NO, NO, HOME,PGDN,PGUP,END, FN1, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,297 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Keymap for PS/2 keyboard
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "keymap.h"
// Following macros help you to define a keymap with the form of actual keyboard layout.
/* US layout plus all other various keys */
#define KEYMAP_ALL( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, K6B,K73,K74,K79, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K29, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA, \
\
K61, /* for European ISO */ \
K51, K13, K6A, K64, K67, /* for Japanese JIS */ \
K08, K10, K18, K20, K28, K30, K38, K40, K48, K50, K57, K5F, /* F13-24 */ \
KB7, KBF, KDE, /* System Power, Sleep, Wake */ \
KA3, KB2, KA1, /* Mute, Volume Up, Volume Down */ \
KCD, K95, KBB, KB4, KD0, /* Next, Previous, Stop, Pause, Media Select */ \
KC8, KAB, KC0, /* Mail, Calculator, My Computer */ \
K90, KBA, KB8, KB0, /* WWW Search, Home, Back, Forward */ \
KA8, KA0, K98 /* WWW Stop, Refresh, Favorites */ \
) { \
{ KC_NO, KC_##K01, KC_NO, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_NO }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_NO }, \
{ KC_##K18, KC_NO, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_NO }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_NO }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_NO }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_NO }, \
{ KC_##K38, KC_NO, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_NO }, \
{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_NO }, \
{ KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_NO }, \
{ KC_##K50, KC_##K51, KC_##K52, KC_NO, KC_##K54, KC_##K55, KC_NO, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_NO, KC_##K5D, KC_NO, KC_##K5F }, \
{ KC_NO, KC_##K61, KC_NO, KC_NO, KC_##K64, KC_NO, KC_##K66, KC_##K67 }, \
{ KC_NO, KC_##K69, KC_##K6A, KC_##K6B, KC_##K6C, KC_NO, KC_NO, KC_NO }, \
{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 }, \
{ KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_##K7C, KC_##K7D, KC_##K7E, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_##K83, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_##K90, KC_##K91, KC_NO, KC_NO, KC_##K94, KC_##K95, KC_NO, KC_NO }, \
{ KC_##K98, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K9F }, \
{ KC_##KA0, KC_##KA1, KC_NO, KC_##KA3, KC_NO, KC_NO, KC_NO, KC_##KA7 }, \
{ KC_##KA8, KC_NO, KC_NO, KC_##KAB, KC_NO, KC_NO, KC_NO, KC_##KAF }, \
{ KC_##KB0, KC_NO, KC_##KB2, KC_NO, KC_##KB4, KC_NO, KC_NO, KC_##KB7 }, \
{ KC_##KB8, KC_NO, KC_##KBA, KC_##KBB, KC_NO, KC_NO, KC_NO, KC_##KBF }, \
{ KC_##KC0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_##KC8, KC_NO, KC_##KCA, KC_NO, KC_NO, KC_##KCD, KC_NO, KC_NO }, \
{ KC_##KD0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_##KDA, KC_NO, KC_NO, KC_NO, KC_##KDE, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, KC_##KE9, KC_NO, KC_##KEB, KC_##KEC, KC_NO, KC_NO, KC_NO }, \
{ KC_##KF0, KC_##KF1, KC_##KF2, KC_NO, KC_##KF4, KC_##KF5, KC_NO, KC_NO }, \
{ KC_NO, KC_NO, KC_##KFA, KC_NO, KC_##KFC, KC_##KFD, KC_##KFE, KC_NO }, \
}
/* JIS layout */
#define KEYMAP_JIS( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K6A,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,K5D, K5A, K6B,K73,K74,K79, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A,K51, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K67,K29,K64,K13, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA \
) \
KEYMAP_ALL( \
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD, K77,KCA,K7C,K7B, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA, K6C,K75,K7D, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, K6B,K73,K74,K79, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, KF5, K69,K72,K7A, \
K14,K9F,K11, K29, K91,KA7,KAF,K94, KEB,KF2,KF4, K70, K71,KDA, \
\
NUBS, \
K51, K13, K6A, K64, K67, \
F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24, \
SYSTEM_POWER, SYSTEM_SLEEP, SYSTEM_WAKE, \
AUDIO_MUTE, AUDIO_VOL_UP, AUDIO_VOL_DOWN, \
MEDIA_NEXT_TRACK, MEDIA_PREV_TRACK, MEDIA_STOP, MEDIA_PLAY_PAUSE, MEDIA_SELECT, \
MAIL, CALCULATOR, MY_COMPUTER, \
WWW_SEARCH, WWW_HOME, WWW_BACK, WWW_FORWARD, \
WWW_STOP, WWW_REFRESH, WWW_FAVORITES \
)
#define KEYMAP_JIS_COMPACT( \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K6A,K66, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,K5D, K5A, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A,K51, K59, \
K14,K9F,K11, K67,K29,K64,K13, K91,KA7,KAF,K94 \
) \
KEYMAP_ALL( \
ESC,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10,F11,F12, PSCR,SLCK,BRK, \
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, DEL, END, PGDN, P7, P8, P9, \
K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, P4, P5, P6, PPLS, \
K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, UP, P1, P2, P3, \
K14,K9F,K11, K29, K91,KA7,KAF,K94, LEFT,DOWN,RGHT, P0, PDOT,PENT, \
\
NUBS, \
K51, K13, K6A, K64, K67, \
F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24, \
SYSTEM_POWER, SYSTEM_SLEEP, SYSTEM_WAKE, \
AUDIO_MUTE, AUDIO_VOL_UP, AUDIO_VOL_DOWN, \
MEDIA_NEXT_TRACK, MEDIA_PREV_TRACK, MEDIA_STOP, MEDIA_PLAY_PAUSE, MEDIA_SELECT, \
MAIL, CALCULATOR, MY_COMPUTER, \
WWW_SEARCH, WWW_HOME, WWW_BACK, WWW_FORWARD, \
WWW_STOP, WWW_REFRESH, WWW_FAVORITES \
)
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
1, // Fn0
2, // Fn1
1, // Fn2
2, // Fn3
3, // Fn4
4, // Fn5
0, // Fn6
0 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KC_SCLN, // Fn0
KC_SLSH, // Fn1
KC_BSPC, // Fn2
KC_NO, // Fn3
KC_NO, // Fn4
KC_SPC, // Fn5
KC_NO, // Fn6
KC_NO // Fn7
};
// The keymap is a 32*8 byte array which convert a PS/2 scan code into a USB keycode.
// See keycode.h for USB keycodes. You should omit a 'KC_' prefix of USB keycodes in keymap macro.
// Use KEYMAP_ISO() or KEYMAP_JIS() instead of KEYMAP() if your keyboard is ISO or JIS.
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: JIS LAYOUT
* ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------.
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak|
* `---' `---------------' `---------------' `---------------' `-----------' `-----------'
* ,-----------------------------------------------------------. ,-----------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| JY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
* |-----------------------------------------------------------| |-----------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ret | |Del|End|PgD| | 7| 8| 9| |
* |------------------------------------------------------` | `-----------' |-----------| +|
* |CapsLo| A| S| D| F| G| H| J| K| L| ;| :| \| | | 4| 5| 6| |
* |-----------------------------------------------------------| ,---. |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /| RO|Shift | |Up | | 1| 2| 3| |
* |-----------------------------------------------------------| ,-----------. |-----------|Ent|
* |Ctrl |Gui |Alt |MHEN| Space |HENK|KANA|Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| |
* `-----------------------------------------------------------' `-----------' `---------------'
*/
/*
KEYMAP_JIS(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, DEL, END, PGDN, P7, P8, P9,
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,BSLS, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RO, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, MHEN,SPC, HENK,KANA, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
*/
/* 0: HHKB-wise
* ,-----------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Bsp |
* |------------------------------------------------------` |
* |Ctrl | A| S| D| F| G| H| J| K| L| ;| :|Ret| |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /| RO|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt |MHEN| Space |HENK|KANA|Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP_JIS_COMPACT(
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,BSPC,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,
LCTL,A, S, D, F, G, H, J, K, L, FN0, QUOT,GRV, ENT,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, RSFT, FN4,
LCTL,LGUI,LALT, LALT,FN5, FN2, FN3, RALT,RGUI,APP, LGUI
),
/* 1: Mouse keys
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa|
* |-----------------------------------------------------------|
* |Tab |MwL|MwU|McU|WwU|WwR|MwL|MwD|MwU|MwR| | | | \|
* |-----------------------------------------------------------|
* |CapsLo| |McL|McD|McR| |McL|McD|McU|McR|Fn0| |Return |
* |-----------------------------------------------------------|
* |Shift |VoD|VoU|Mut|Mb2|Mb3|Mb2|Mb1|VoD|VoU|Mut|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Mb1 |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
* Mc = mouse cursor, Mw = mouse wheel, Mb = mouse button
* Vo = Volume, Mut = Mute
*/
KEYMAP_JIS_COMPACT(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, INS, DEL,
TAB, WH_L,WH_D,MS_U,WH_U,WH_R,WH_L,WH_D,WH_U,WH_R,NO, NO, NO,
LCTL,NO, MS_L,MS_D,MS_R,NO, MS_L,MS_D,MS_U,MS_R,FN0, NO, NO, ENT,
LSFT,NO, NO, BTN1,BTN2,BTN3,BTN2,BTN1,BTN2,BTN3,NO, RSFT, RSFT,
LCTL,LGUI,LALT, LALT,BTN1,FN2, RALT, RALT,RGUI,APP, LGUI
),
/* 2: Cursor keys
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa|
* |-----------------------------------------------------------|
* |Tab |Hom|PgU| Up|PgU|End|Hom|PgD|PgU|End| | | | \|
* |-----------------------------------------------------------|
* |CapsLo| |Lef|Dow|Rig| |Lef|Dow| Up|Rig| | |Return |
* |-----------------------------------------------------------|
* |Shift | | | | | |Hom|PgD|PgU|End|Fn1|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP_JIS_COMPACT(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, INS, DEL,
TAB, HOME,PGUP,UP, PGDN,END, HOME,PGDN,PGUP,END, NO, NO, NO,
LCTL,HOME,LEFT,DOWN,RGHT,END, LEFT,DOWN,UP, RGHT,NO, NO, NO, ENT,
LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN1, RSFT, RSFT,
LCTL,LGUI,LALT, LALT,BTN1,BSPC,FN3, RALT,RGUI,APP, LGUI
),
/* 3: HHKB Fn layer */
KEYMAP_JIS_COMPACT(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, INS, DEL,
CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO,
LCTL,VOLD,VOLU,MUTE,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT,NO, ENT,
LSFT,NO, NO, NO, NO, NO, NO, NO, END, PGDN,DOWN,RSFT, FN4,
LCTL,LGUI,LALT, LALT,SPC, BSPC,NO, RALT,RGUI,APP, LGUI
),
/* 4: Number */
KEYMAP_JIS_COMPACT(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, INS, DEL,
TAB, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO,
LCTL,1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, ENT,
LSFT,NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, RSFT, RSFT,
LCTL,LGUI,LALT, LALT,FN5, BSPC,NO, RALT,RGUI,APP, LGUI
),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,452 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "util.h"
#include "debug.h"
#include "ps2.h"
#include "matrix.h"
static void matrix_make(uint8_t code);
static void matrix_break(uint8_t code);
#ifdef MATRIX_HAS_GHOST
static bool matrix_has_ghost_in_row(uint8_t row);
#endif
/*
* Matrix Array usage:
* 'Scan Code Set 2' is assigned into 256(32x8)cell matrix.
* Hmm, it is very sparse and not efficient :(
*
* Notes:
* Both 'Hanguel/English'(F1) and 'Hanja'(F2) collide with 'Delete'(E0 71) and 'Down'(E0 72).
* These two Korean keys need exceptional handling and are not supported for now. Sorry.
*
* 8bit wide
* +---------+
* 0| |
* :| XX | 00-7F for normal codes(without E0-prefix)
* f|_________|
* 10| |
* :| E0 YY | 80-FF for E0-prefixed codes
* 1f| | (<YY>|0x80) is used as matrix position.
* +---------+
*
* Exceptions:
* 0x83: F7(0x83) This is a normal code but beyond 0x7F.
* 0xFC: PrintScreen
* 0xFE: Pause
*/
static uint8_t matrix[MATRIX_ROWS];
#define ROW(code) (code>>3)
#define COL(code) (code&0x07)
// matrix positions for exceptional keys
#define F7 (0x83)
#define PRINT_SCREEN (0xFC)
#define PAUSE (0xFE)
static bool is_modified = false;
inline
uint8_t matrix_rows(void)
{
return MATRIX_ROWS;
}
inline
uint8_t matrix_cols(void)
{
return MATRIX_COLS;
}
void matrix_init(void)
{
ps2_host_init();
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
return;
}
/*
* PS/2 Scan Code Set 2: Exceptional Handling
*
* There are several keys to be handled exceptionally.
* The scan code for these keys are varied or prefix/postfix'd
* depending on modifier key state.
*
* Keyboard Scan Code Specification:
* http://www.microsoft.com/whdc/archive/scancode.mspx
* http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc
*
*
* 1) Insert, Delete, Home, End, PageUp, PageDown, Up, Down, Right, Left
* a) when Num Lock is off
* modifiers | make | break
* ----------+---------------------------+----------------------
* Ohter | <make> | <break>
* LShift | E0 F0 12 <make> | <break> E0 12
* RShift | E0 F0 59 <make> | <break> E0 59
* L+RShift | E0 F0 12 E0 F0 59 <make> | <break> E0 59 E0 12
*
* b) when Num Lock is on
* modifiers | make | break
* ----------+---------------------------+----------------------
* Other | E0 12 <make> | <break> E0 F0 12
* Shift'd | <make> | <break>
*
* Handling: These prefix/postfix codes are ignored.
*
*
* 2) Keypad /
* modifiers | make | break
* ----------+---------------------------+----------------------
* Ohter | <make> | <break>
* LShift | E0 F0 12 <make> | <break> E0 12
* RShift | E0 F0 59 <make> | <break> E0 59
* L+RShift | E0 F0 12 E0 F0 59 <make> | <break> E0 59 E0 12
*
* Handling: These prefix/postfix codes are ignored.
*
*
* 3) PrintScreen
* modifiers | make | break
* ----------+--------------+-----------------------------------
* Other | E0 12 E0 7C | E0 F0 7C E0 F0 12
* Shift'd | E0 7C | E0 F0 7C
* Control'd | E0 7C | E0 F0 7C
* Alt'd | 84 | F0 84
*
* Handling: These prefix/postfix codes are ignored, and both scan codes
* 'E0 7C' and 84 are seen as PrintScreen.
*
* 4) Pause
* modifiers | make(no break code)
* ----------+--------------------------------------------------
* Other | E1 14 77 E1 F0 14 F0 77
* Control'd | E0 7E E0 F0 7E
*
* Handling: Both code sequences are treated as a whole.
* And we need a ad hoc 'pseudo break code' hack to get the key off
* because it has no break code.
*
*/
uint8_t matrix_scan(void)
{
// scan code reading states
static enum {
INIT,
F0,
E0,
E0_F0,
// Pause
E1,
E1_14,
E1_14_77,
E1_14_77_E1,
E1_14_77_E1_F0,
E1_14_77_E1_F0_14,
E1_14_77_E1_F0_14_F0,
// Control'd Pause
E0_7E,
E0_7E_E0,
E0_7E_E0_F0,
} state = INIT;
is_modified = false;
// 'pseudo break code' hack
if (matrix_is_on(ROW(PAUSE), COL(PAUSE))) {
matrix_break(PAUSE);
}
uint8_t code;
while ((code = ps2_host_recv())) {
switch (state) {
case INIT:
switch (code) {
case 0xE0:
state = E0;
break;
case 0xF0:
state = F0;
break;
case 0xE1:
state = E1;
break;
case 0x83: // F7
matrix_make(F7);
state = INIT;
break;
case 0x84: // Alt'd PrintScreen
matrix_make(PRINT_SCREEN);
state = INIT;
break;
default: // normal key make
if (code < 0x80) {
matrix_make(code);
} else {
debug("unexpected scan code at INIT: "); debug_hex(code); debug("\n");
}
state = INIT;
}
break;
case E0: // E0-Prefixed
switch (code) {
case 0x12: // to be ignored
case 0x59: // to be ignored
state = INIT;
break;
case 0x7E: // Control'd Pause
state = E0_7E;
break;
case 0xF0:
state = E0_F0;
break;
default:
if (code < 0x80) {
matrix_make(code|0x80);
} else {
debug("unexpected scan code at E0: "); debug_hex(code); debug("\n");
}
state = INIT;
}
break;
case F0: // Break code
switch (code) {
case 0x83: // F7
matrix_break(F7);
state = INIT;
break;
case 0x84: // Alt'd PrintScreen
matrix_break(PRINT_SCREEN);
state = INIT;
break;
default:
if (code < 0x80) {
matrix_break(code);
} else {
debug("unexpected scan code at F0: "); debug_hex(code); debug("\n");
}
state = INIT;
}
break;
case E0_F0: // Break code of E0-prefixed
switch (code) {
case 0x12: // to be ignored
case 0x59: // to be ignored
state = INIT;
break;
default:
if (code < 0x80) {
matrix_break(code|0x80);
} else {
debug("unexpected scan code at E0_F0: "); debug_hex(code); debug("\n");
}
state = INIT;
}
break;
// following are states of Pause
case E1:
switch (code) {
case 0x14:
state = E1_14;
break;
default:
state = INIT;
}
break;
case E1_14:
switch (code) {
case 0x77:
state = E1_14_77;
break;
default:
state = INIT;
}
break;
case E1_14_77:
switch (code) {
case 0xE1:
state = E1_14_77_E1;
break;
default:
state = INIT;
}
break;
case E1_14_77_E1:
switch (code) {
case 0xF0:
state = E1_14_77_E1_F0;
break;
default:
state = INIT;
}
break;
case E1_14_77_E1_F0:
switch (code) {
case 0x14:
state = E1_14_77_E1_F0_14;
break;
default:
state = INIT;
}
break;
case E1_14_77_E1_F0_14:
switch (code) {
case 0xF0:
state = E1_14_77_E1_F0_14_F0;
break;
default:
state = INIT;
}
break;
case E1_14_77_E1_F0_14_F0:
switch (code) {
case 0x77:
matrix_make(PAUSE);
state = INIT;
break;
default:
state = INIT;
}
break;
// Following are states of Control'd Pause
case E0_7E:
if (code == 0xE0)
state = E0_7E_E0;
else
state = INIT;
break;
case E0_7E_E0:
if (code == 0xF0)
state = E0_7E_E0_F0;
else
state = INIT;
break;
case E0_7E_E0_F0:
if (code == 0x7E)
matrix_make(PAUSE);
state = INIT;
break;
default:
state = INIT;
}
phex(code);
}
return 1;
}
bool matrix_is_modified(void)
{
return is_modified;
}
inline
bool matrix_has_ghost(void)
{
#ifdef MATRIX_HAS_GHOST
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
if (matrix_has_ghost_in_row(i))
return true;
}
#endif
return false;
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
return (matrix[row] & (1<<col));
}
inline
uint8_t matrix_get_row(uint8_t row)
{
return matrix[row];
}
void matrix_print(void)
{
print("\nr/c 01234567\n");
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
pbin_reverse(matrix_get_row(row));
#ifdef MATRIX_HAS_GHOST
if (matrix_has_ghost_in_row(row)) {
print(" <ghost");
}
#endif
print("\n");
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
count += bitpop(matrix[i]);
}
return count;
}
#ifdef MATRIX_HAS_GHOST
inline
static bool matrix_has_ghost_in_row(uint8_t row)
{
// no ghost exists in case less than 2 keys on
if (((matrix[row] - 1) & matrix[row]) == 0)
return false;
// ghost exists in case same state as other row
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
if (i != row && (matrix[i] & matrix[row]) == matrix[row])
return true;
}
return false;
}
#endif
inline
static void matrix_make(uint8_t code)
{
if (!matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] |= 1<<COL(code);
is_modified = true;
}
}
inline
static void matrix_break(uint8_t code)
{
if (matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] &= ~(1<<COL(code));
is_modified = true;
}
}

View File

@@ -1,377 +0,0 @@
/* Name: usbconfig.h
* Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
* Author: Christian Starkjohann
* Creation Date: 2005-04-01
* Tabsize: 4
* Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
* License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
* This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
*/
#ifndef __usbconfig_h_included__
#define __usbconfig_h_included__
/*
General Description:
This file is an example configuration (with inline documentation) for the USB
driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
wire the lines to any other port, as long as D+ is also wired to INT0 (or any
other hardware interrupt, as long as it is the highest level interrupt, see
section at the end of this file).
*/
/* ---------------------------- Hardware Config ---------------------------- */
#define USB_CFG_IOPORTNAME D
/* This is the port where the USB bus is connected. When you configure it to
* "B", the registers PORTB, PINB and DDRB will be used.
*/
#define USB_CFG_DMINUS_BIT 3
/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
* This may be any bit in the port.
*/
#define USB_CFG_DPLUS_BIT 2
/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
* This may be any bit in the port. Please note that D+ must also be connected
* to interrupt pin INT0! [You can also use other interrupts, see section
* "Optional MCU Description" below, or you can connect D- to the interrupt, as
* it is required if you use the USB_COUNT_SOF feature. If you use D- for the
* interrupt, the USB interrupt will also be triggered at Start-Of-Frame
* markers every millisecond.]
*/
#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
* 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
* require no crystal, they tolerate +/- 1% deviation from the nominal
* frequency. All other rates require a precision of 2000 ppm and thus a
* crystal!
* Since F_CPU should be defined to your actual clock rate anyway, you should
* not need to modify this setting.
*/
#define USB_CFG_CHECK_CRC 0
/* Define this to 1 if you want that the driver checks integrity of incoming
* data packets (CRC checks). CRC checks cost quite a bit of code size and are
* currently only available for 18 MHz crystal clock. You must choose
* USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
*/
/* ----------------------- Optional Hardware Config ------------------------ */
/* #define USB_CFG_PULLUP_IOPORTNAME D */
/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
* V+, you can connect and disconnect the device from firmware by calling
* the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
* This constant defines the port on which the pullup resistor is connected.
*/
/* #define USB_CFG_PULLUP_BIT 4 */
/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
* above) where the 1.5k pullup resistor is connected. See description
* above for details.
*/
/* --------------------------- Functional Range ---------------------------- */
#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
/* Define this to 1 if you want to compile a version with two endpoints: The
* default control endpoint 0 and an interrupt-in endpoint (any other endpoint
* number).
*/
#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
/* Define this to 1 if you want to compile a version with three endpoints: The
* default control endpoint 0, an interrupt-in endpoint 3 (or the number
* configured below) and a catch-all default interrupt-in endpoint as above.
* You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
*/
#define USB_CFG_EP3_NUMBER 3
/* If the so-called endpoint 3 is used, it can now be configured to any other
* endpoint number (except 0) with this macro. Default if undefined is 3.
*/
/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
/* The above macro defines the startup condition for data toggling on the
* interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
* Since the token is toggled BEFORE sending any data, the first packet is
* sent with the oposite value of this configuration!
*/
#define USB_CFG_IMPLEMENT_HALT 0
/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
* for endpoint 1 (interrupt endpoint). Although you may not need this feature,
* it is required by the standard. We have made it a config option because it
* bloats the code considerably.
*/
#define USB_CFG_SUPPRESS_INTR_CODE 0
/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
* want to send any data over them. If this macro is defined to 1, functions
* usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
* you need the interrupt-in endpoints in order to comply to an interface
* (e.g. HID), but never want to send any data. This option saves a couple
* of bytes in flash memory and the transmit buffers in RAM.
*/
#define USB_CFG_INTR_POLL_INTERVAL 10
/* If you compile a version with endpoint 1 (interrupt-in), this is the poll
* interval. The value is in milliseconds and must not be less than 10 ms for
* low speed devices.
*/
#define USB_CFG_IS_SELF_POWERED 0
/* Define this to 1 if the device has its own power supply. Set it to 0 if the
* device is powered from the USB bus.
*/
#define USB_CFG_MAX_BUS_POWER 100
/* Set this variable to the maximum USB bus power consumption of your device.
* The value is in milliamperes. [It will be divided by two since USB
* communicates power requirements in units of 2 mA.]
*/
#define USB_CFG_IMPLEMENT_FN_WRITE 1
/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
* transfers. Set it to 0 if you don't need it and want to save a couple of
* bytes.
*/
#define USB_CFG_IMPLEMENT_FN_READ 0
/* Set this to 1 if you need to send control replies which are generated
* "on the fly" when usbFunctionRead() is called. If you only want to send
* data from a static buffer, set it to 0 and return the data from
* usbFunctionSetup(). This saves a couple of bytes.
*/
#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
* You must implement the function usbFunctionWriteOut() which receives all
* interrupt/bulk data sent to any endpoint other than 0. The endpoint number
* can be found in 'usbRxToken'.
*/
#define USB_CFG_HAVE_FLOWCONTROL 0
/* Define this to 1 if you want flowcontrol over USB data. See the definition
* of the macros usbDisableAllRequests() and usbEnableAllRequests() in
* usbdrv.h.
*/
#define USB_CFG_DRIVER_FLASH_PAGE 0
/* If the device has more than 64 kBytes of flash, define this to the 64 k page
* where the driver's constants (descriptors) are located. Or in other words:
* Define this to 1 for boot loaders on the ATMega128.
*/
#define USB_CFG_LONG_TRANSFERS 0
/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
* in a single control-in or control-out transfer. Note that the capability
* for long transfers increases the driver size.
*/
/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
/* This macro is a hook if you want to do unconventional things. If it is
* defined, it's inserted at the beginning of received message processing.
* If you eat the received message and don't want default processing to
* proceed, do a return after doing your things. One possible application
* (besides debugging) is to flash a status LED on each packet.
*/
/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
/* This macro is a hook if you need to know when an USB RESET occurs. It has
* one parameter which distinguishes between the start of RESET state and its
* end.
*/
/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
/* This macro (if defined) is executed when a USB SET_ADDRESS request was
* received.
*/
#define USB_COUNT_SOF 0
/* define this macro to 1 if you need the global variable "usbSofCount" which
* counts SOF packets. This feature requires that the hardware interrupt is
* connected to D- instead of D+.
*/
/* #ifdef __ASSEMBLER__
* macro myAssemblerMacro
* in YL, TCNT0
* sts timer0Snapshot, YL
* endm
* #endif
* #define USB_SOF_HOOK myAssemblerMacro
* This macro (if defined) is executed in the assembler module when a
* Start Of Frame condition is detected. It is recommended to define it to
* the name of an assembler macro which is defined here as well so that more
* than one assembler instruction can be used. The macro may use the register
* YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
* immediately after an SOF pulse may be lost and must be retried by the host.
* What can you do with this hook? Since the SOF signal occurs exactly every
* 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
* designs running on the internal RC oscillator.
* Please note that Start Of Frame detection works only if D- is wired to the
* interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
*/
#define USB_CFG_CHECK_DATA_TOGGLING 0
/* define this macro to 1 if you want to filter out duplicate data packets
* sent by the host. Duplicates occur only as a consequence of communication
* errors, when the host does not receive an ACK. Please note that you need to
* implement the filtering yourself in usbFunctionWriteOut() and
* usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
* for each control- and out-endpoint to check for duplicate packets.
*/
#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
/* define this macro to 1 if you want the function usbMeasureFrameLength()
* compiled in. This function can be used to calibrate the AVR's RC oscillator.
*/
#define USB_USE_FAST_CRC 0
/* The assembler module has two implementations for the CRC algorithm. One is
* faster, the other is smaller. This CRC routine is only used for transmitted
* messages where timing is not critical. The faster routine needs 31 cycles
* per byte while the smaller one needs 61 to 69 cycles. The faster routine
* may be worth the 32 bytes bigger code size if you transmit lots of data and
* run the AVR close to its limit.
*/
/* -------------------------- Device Description --------------------------- */
#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF)
/* USB vendor ID for the device, low byte first. If you have registered your
* own Vendor ID, define it here. Otherwise you may use one of obdev's free
* shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
* *** IMPORTANT NOTE ***
* This template uses obdev's shared VID/PID pair for Vendor Class devices
* with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
* the implications!
*/
#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF)
/* This is the ID of the product, low byte first. It is interpreted in the
* scope of the vendor ID. If you have registered your own VID with usb.org
* or if you have licensed a PID from somebody else, define it here. Otherwise
* you may use one of obdev's free shared VID/PID pairs. See the file
* USB-IDs-for-free.txt for details!
* *** IMPORTANT NOTE ***
* This template uses obdev's shared VID/PID pair for Vendor Class devices
* with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
* the implications!
*/
#define USB_CFG_DEVICE_VERSION 0x00, 0x01
/* Version number of the device: Minor number first, then major number.
*/
#define USB_CFG_VENDOR_NAME 't', '.', 'm', '.', 'k', '.'
#define USB_CFG_VENDOR_NAME_LEN 6
/* These two values define the vendor name returned by the USB device. The name
* must be given as a list of characters under single quotes. The characters
* are interpreted as Unicode (UTF-16) entities.
* If you don't want a vendor name string, undefine these macros.
* ALWAYS define a vendor name containing your Internet domain name if you use
* obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for
* details.
*/
#define USB_CFG_DEVICE_NAME 'P', 'S', '/', '2', ' ', 'k', 'e', 'y', 'b', 'o', 'a', 'r', 'd', ' ', 'c', 'o', 'n', 'v', 'e', 'r', 't', 'e', 'r'
#define USB_CFG_DEVICE_NAME_LEN 23
/* Same as above for the device name. If you don't want a device name, undefine
* the macros. See the file USB-IDs-for-free.txt before you assign a name if
* you use a shared VID/PID.
*/
/*#define USB_CFG_SERIAL_NUMBER 'N', 'o', 'n', 'e' */
/*#define USB_CFG_SERIAL_NUMBER_LEN 0 */
/* Same as above for the serial number. If you don't want a serial number,
* undefine the macros.
* It may be useful to provide the serial number through other means than at
* compile time. See the section about descriptor properties below for how
* to fine tune control over USB descriptors such as the string descriptor
* for the serial number.
*/
#define USB_CFG_DEVICE_CLASS 0
#define USB_CFG_DEVICE_SUBCLASS 0
/* See USB specification if you want to conform to an existing device class.
* Class 0xff is "vendor specific".
*/
#define USB_CFG_INTERFACE_CLASS 3 /* HID */
#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
/* See USB specification if you want to conform to an existing device class or
* protocol. The following classes must be set at interface level:
* HID class is 3, no subclass and protocol required (but may be useful!)
* CDC class is 2, use subclass 2 and protocol 1 for ACM
*/
#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
/* Define this to the length of the HID report descriptor, if you implement
* an HID device. Otherwise don't define it or define it to 0.
* If you use this define, you must add a PROGMEM character array named
* "usbHidReportDescriptor" to your code which contains the report descriptor.
* Don't forget to keep the array and this define in sync!
*/
/* #define USB_PUBLIC static */
/* Use the define above if you #include usbdrv.c instead of linking against it.
* This technique saves a couple of bytes in flash memory.
*/
/* ------------------- Fine Control over USB Descriptors ------------------- */
/* If you don't want to use the driver's default USB descriptors, you can
* provide our own. These can be provided as (1) fixed length static data in
* flash memory, (2) fixed length static data in RAM or (3) dynamically at
* runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
* information about this function.
* Descriptor handling is configured through the descriptor's properties. If
* no properties are defined or if they are 0, the default descriptor is used.
* Possible properties are:
* + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
* at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
* used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
* you want RAM pointers.
* + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
* in static memory is in RAM, not in flash memory.
* + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
* the driver must know the descriptor's length. The descriptor itself is
* found at the address of a well known identifier (see below).
* List of static descriptor names (must be declared PROGMEM if in flash):
* char usbDescriptorDevice[];
* char usbDescriptorConfiguration[];
* char usbDescriptorHidReport[];
* char usbDescriptorString0[];
* int usbDescriptorStringVendor[];
* int usbDescriptorStringDevice[];
* int usbDescriptorStringSerialNumber[];
* Other descriptors can't be provided statically, they must be provided
* dynamically at runtime.
*
* Descriptor properties are or-ed or added together, e.g.:
* #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
*
* The following descriptors are defined:
* USB_CFG_DESCR_PROPS_DEVICE
* USB_CFG_DESCR_PROPS_CONFIGURATION
* USB_CFG_DESCR_PROPS_STRINGS
* USB_CFG_DESCR_PROPS_STRING_0
* USB_CFG_DESCR_PROPS_STRING_VENDOR
* USB_CFG_DESCR_PROPS_STRING_PRODUCT
* USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
* USB_CFG_DESCR_PROPS_HID
* USB_CFG_DESCR_PROPS_HID_REPORT
* USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
*
* Note about string descriptors: String descriptors are not just strings, they
* are Unicode strings prefixed with a 2 byte header. Example:
* int serialNumberDescriptor[] = {
* USB_STRING_DESCRIPTOR_HEADER(6),
* 'S', 'e', 'r', 'i', 'a', 'l'
* };
*/
#define USB_CFG_DESCR_PROPS_DEVICE 0
#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0
#define USB_CFG_DESCR_PROPS_STRINGS 0
#define USB_CFG_DESCR_PROPS_STRING_0 0
#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0
#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0
#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0
//#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
#define USB_CFG_DESCR_PROPS_HID 0
#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
//#define USB_CFG_DESCR_PROPS_HID_REPORT 0
#define USB_CFG_DESCR_PROPS_UNKNOWN 0
/* ----------------------- Optional MCU Description ------------------------ */
/* The following configurations have working defaults in usbdrv.h. You
* usually don't need to set them explicitly. Only if you want to run
* the driver on a device which is not yet supported or with a compiler
* which is not fully supported (such as IAR C) or if you use a differnt
* interrupt than INT0, you may have to define some of these.
*/
/* #define USB_INTR_CFG MCUCR */
/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
/* #define USB_INTR_CFG_CLR 0 */
/* #define USB_INTR_ENABLE GIMSK */
/* #define USB_INTR_ENABLE_BIT INT0 */
/* #define USB_INTR_PENDING GIFR */
/* #define USB_INTR_PENDING_BIT INTF0 */
/* #define USB_INTR_VECTOR INT0_vect */
#endif /* __usbconfig_h_included__ */

View File

@@ -1,79 +0,0 @@
Sun to USB keyboard protocol converter
======================================
Target MCU is ATMega32u4 but other USB capable AVR will also work.
Supported keyboards: Sun Type 5 Keyboard, CTCSP SHORT TYPE KEYBOARD(CKUB)
CTCSP SHORT TYPE KEYBOARD: http://imgur.com/a/QIv6p
Connector
---------
8Pin mini DIN
___ ___
/ |_| \
/ 8 7 6 \
| 5 4 3 |
\_ 2 1 _/
\_____/
(receptacle)
Wiring:
Pin mini DIN MCU
----------------------------------
1 GND GND
2 GND GND
3 5V
4 RX/TX(Mouse)
5 RX PD3
6 TX PD2
7 GND GND
8 5V VCC
Protocol
--------
Singnal: Asynchronous, Negative logic, 1200baud, No Flow control
Frame format: 1-Start bit, 8-Data bits, No-Parity, 1-Stop bit
AVR USART engine expects positive logic while Sun keyboard signal is negative.
To use AVR UART engine you need exteral inverter in front of RX and TX pin.
Otherwise you can software serial routine to communicate the keyboard.
This converter uses software method, you doesn't need any inverter part.
Commands From System To Keyboard
0x01 Reset
Keyboard responds with following byte sequence:
Success: 0xFF 0x04 0x7F
Fail: 0x7E 0x01 0x7F
0x02 Bell On
0x03 Bell Off
0x0A Click On
0x0B Click Off
0x0E LED
followed by LED status byte:
bit: 3 2 1 0
LED: CapsLk ScrLk Compose NumLk
0x0F Layout
Keyboard responds with 'Layout Response' 0xFE 0xXX
Commands From Keyboard To System
0x7F Idle
means no keys pressed.
0xFE Layout Response
0xFF Reset Response(followed by 0x04)
Reference
http://kentie.net/article/sunkbd/page2.htm
http://kentie.net/article/sunkbd/KBD.pdf
Build Firmware
--------------
Just use 'make'
$ cd sun_usb
$ make
Then, load the binary to MCU with your favorite programmer.

View File

@@ -1,43 +0,0 @@
#include "stdbool.h"
#include "stdint.h"
#include "keycode.h"
#include "serial.h"
#include "print.h"
#include "command.h"
bool command_extra(uint8_t code)
{
switch (code) {
case KC_H:
case KC_SLASH: /* ? */
print("\n\n----- Sun converter Help -----\n");
print("UP: Bell On\n");
print("DOWN: Bell Off\n");
print("LEFT: Click On\n");
print("RIGHT: Click Off\n");
return false;
case KC_UP:
print("Bell On\n");
serial_send(0x02);
break;
case KC_DOWN:
print("Bell Off\n");
serial_send(0x03);
break;
case KC_LEFT:
print("Click On\n");
serial_send(0x0A);
break;
case KC_RIGHT:
print("Click Off\n");
serial_send(0x0B);
break;
case KC_NUMLOCK:
print("layout\n");
serial_send(0x0F);
break;
default:
return false;
}
return true;
}

View File

@@ -1,89 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x3333
#define DEVICE_VER 0x0100
#define MANUFACTURER t.m.k.
#define PRODUCT Sun keyboard converter
#define DESCRIPTION converts Sun keyboard protocol into USB
/* matrix size */
#define MATRIX_ROWS 16
#define MATRIX_COLS 8
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) || \
keyboard_report->mods == (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) || \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/* legacy keymap support */
#define USE_LEGACY_KEYMAP
/* Serial(USART) configuration
* asynchronous, negative logic, 1200baud, no flow control
* 1-start bit, 8-data bit, non parity, 1-stop bit
*/
#define SERIAL_SOFT_BAUD 1200
#define SERIAL_SOFT_PARITY_NONE
#define SERIAL_SOFT_BIT_ORDER_LSB
#define SERIAL_SOFT_LOGIC_NEGATIVE
/* RXD Port */
#define SERIAL_SOFT_RXD_ENABLE
#define SERIAL_SOFT_RXD_DDR DDRD
#define SERIAL_SOFT_RXD_PORT PORTD
#define SERIAL_SOFT_RXD_PIN PIND
#define SERIAL_SOFT_RXD_BIT 2
#define SERIAL_SOFT_RXD_VECT INT2_vect
/* RXD Interupt */
#define SERIAL_SOFT_RXD_INIT() do { \
/* pin configuration: input with pull-up */ \
SERIAL_SOFT_RXD_DDR &= ~(1<<SERIAL_SOFT_RXD_BIT); \
SERIAL_SOFT_RXD_PORT |= (1<<SERIAL_SOFT_RXD_BIT); \
/* enable interrupt: INT2(rising edge) */ \
EICRA |= ((1<<ISC21)|(1<<ISC20)); \
EIMSK |= (1<<INT2); \
sei(); \
} while (0)
#define SERIAL_SOFT_RXD_INT_ENTER()
#define SERIAL_SOFT_RXD_INT_EXIT() do { \
/* clear interrupt flag */ \
EIFR = (1<<INTF2); \
} while (0)
#define SERIAL_SOFT_RXD_READ() (SERIAL_SOFT_RXD_PIN&(1<<SERIAL_SOFT_RXD_BIT))
/* TXD Port */
#define SERIAL_SOFT_TXD_ENABLE
#define SERIAL_SOFT_TXD_DDR DDRD
#define SERIAL_SOFT_TXD_PORT PORTD
#define SERIAL_SOFT_TXD_PIN PIND
#define SERIAL_SOFT_TXD_BIT 3
#define SERIAL_SOFT_TXD_HI() do { SERIAL_SOFT_TXD_PORT |= (1<<SERIAL_SOFT_TXD_BIT); } while (0)
#define SERIAL_SOFT_TXD_LO() do { SERIAL_SOFT_TXD_PORT &= ~(1<<SERIAL_SOFT_TXD_BIT); } while (0)
#define SERIAL_SOFT_TXD_INIT() do { \
/* pin configuration: output */ \
SERIAL_SOFT_TXD_DDR |= (1<<SERIAL_SOFT_TXD_BIT); \
/* idle */ \
SERIAL_SOFT_TXD_ON(); \
} while (0)
#endif

View File

@@ -1,192 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "util.h"
#include "keymap.h"
/* Sun type 5 keyboard
,-------. ,---, ,---------------. ,---------------. ,---------------. ,-----------. ,---------------.
| 76 | | | | 05| 06| 08| 0A| | 0C| 0E| 10| 11| | 12| 07| 09| 0B| | 16| 17| 15| | 2D| 02| 04| 30|
`-------' `---' `---------------' `---------------' `---------------' `-----------' `---------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| 01| 03| | 1D| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 58| 2A| | 2C| 34| 60| | 62| 2E| 2F| 47|
|-------| |-----------------------------------------------------------| |------------ |---------------|
| 19| 1A| | 35 | 36| 37| 38| 39| 3A| 3B| 3C| 3D| 3E| 3F| 40| 41| 2B | | 42| 4A| 7B| | 44| 45| 46| |
|-------| |-----------------------------------------------------------| `-----------' |-----------| 7D|
| 31| 33| | 4C | 4D| 4E| 4F| 50| 51| 52| 53| 54| 55| 56| 57| 59 | | 5B| 5C| 5D| |
|-------| |-----------------------------------------------------------| ,---. |-----------|---|
| 48| 49| | 63 | 64| 65| 66| 67| 68| 69| 6A| 6B| 6C| 6D| 6E | | 14| | 70| 71| 72| |
|-------| |-----------------------------------------------------------| .-----------. |-----------| 5A|
| 5F| 61| | 77 | 13| 78 |*73 | 79 |*74 |*75| 7A | 43| 0D| | 18| 1B| 1C| | 5E | 32| |
`-------' `-----------------------------------------------------------' `-----------' `---------------'
*/
#define KEYMAP( \
K76, K05,K06,K08,K0A, K0C,K0E,K10,K11, K12,K07,K09,K0B, K16,K17,K15, K2D,K02,K04,K30, \
K01,K03, K1D,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K58,K2A, K2C,K34,K60, K62,K2E,K2F,K47, \
K19,K1A, K35, K36,K37,K38,K39,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41, K2B, K42,K4A,K7B, K44,K45,K46,K7D, \
K31,K33, K4C, K4D,K4E,K4F,K50,K51,K52,K53,K54,K55,K56,K57, K59, K5B,K5C,K5D, \
K48,K49, K63, K64,K65,K66,K67,K68,K69,K6A,K6B,K6C,K6D, K6E, K14, K70,K71,K72,K5A, \
K5F,K61, K77,K13, K78, K73, K79, K74, K75, K7A, K43, K0D, K18,K1B,K1C, K5E, K32 \
) { \
{ KC_NO, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_NO, }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
{ KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
{ KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, \
{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, \
{ KC_##K48, KC_##K49, KC_##K4A, KC_NO, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, \
{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, \
{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \
{ KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_##K6C, KC_##K6D, KC_##K6E, KC_NO }, \
{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 }, \
{ KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_NO, KC_##K7D, KC_NO, KC_NO } \
}
/* CTCSP SHORT TYPE KEYBOARD */
#define SHORT_TYPE( \
K01, K05,K06,K08,K0A,K0C,K0E, K61,K49,K33, K30, K2C,K34,K60, \
K10,K11,K12,K07,K09,K0B, K42,K4A,K7B, \
K1D,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K58,K2A, \
K35, K36,K37,K38,K39,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41, K2B, \
K4C, K4D,K4E,K4F,K50,K51,K52,K53,K54,K55,K56,K57, K59, \
K63, K64,K65,K66,K67,K68,K69,K6A,K6B,K6C,K6D, K0D,K14,K6E, \
K77,K13, K78, K79, K7A,K43,K62,K18,K1B,K1C \
) KEYMAP( \
HELP, K05,K06,K08,K0A, K0C,K0E,K10,K11, K12,K07,K09,K0B, PSCR,SLCK,PAUS, MUTE,VOLD,VOLU,PWR, \
K01, AGAIN, K1D,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K58,K2A, K2C, K34, K60, K62, PSLS,PAST,PMNS, \
MENU, UNDO, K35, K36,K37,K38,K39,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41, K2B, K42, K4A, K7B, P7, P8, P9, PPLS, \
SELECT, COPY, K4C, K4D,K4E,K4F,K50,K51,K52,K53,K54,K55,K56,K57, K59, P4, P5, P6, \
EXECUTE,PASTE, K63, K64,K65,K66,K67,K68,K69,K6A,K6B,K6C,K6D, K6E, K14, P1, P2, P3, PENT, \
FIND, CUT, K77,K13, K78, HENK, K79, MHEN, KANA, K7A,K43,K0D, K18, K1B, K1C, P0, PDOT \
)
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
2, // Fn0
3, // Fn1
4, // Fn2
0, // Fn3
0, // Fn4
0, // Fn5
0, // Fn6
0 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KC_NO, // Fn0
KC_SCLN, // Fn1
KC_SLSH, // Fn2
KC_NO, // Fn3
KC_NO, // Fn4
KC_NO, // Fn5
KC_NO, // Fn6
KC_NO // Fn7
};
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
KEYMAP(
HELP, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10,F11,F12, PSCR,SLCK,PAUS, MUTE,VOLD,VOLU,PWR,
STOP, AGAIN, ESC,1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
MENU, UNDO, TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, BSPC, DEL, END, PGDN, P7, P8, P9, PPLS,
SELECT, COPY, LCTL, A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6,
EXECUTE,PASTE, LSFT, Z, X, C, V, B, N, M, COMM,DOT,SLSH, RSFT, UP, P1, P2, P3, PENT,
FIND, CUT, CAPS, LALT, LGUI,HENK, SPC, MHEN,KANA,RGUI,APP, RALT, LEFT,DOWN,RGHT, P0, PDOT
),
*/
// 0: default
SHORT_TYPE(
STOP, F1,F2,F3,F4, F5, F6, CUT,PASTE,COPY,PWR, INS, HOME,PGUP,
F7,F8,F9,F10,F11,F12, DEL, END, PGDN,
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, BSPC,
LCTL, A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT,
LSFT, Z, X, C, V, B, N, M, COMM,DOT, SLSH, RALT,UP, RSFT,
CAPS,LALT,LGUI, SPC, RGUI,APP, NLCK,LEFT,DOWN,RGHT
),
// 1: with layer keys
SHORT_TYPE(
ESC, F1,F2,F3,F4, F5, F6, CUT,PASTE,COPY,PWR, INS, HOME,PGUP,
F7,F8,F9,F10,F11,F12, DEL, END, PGDN,
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, BSPC,
LCTL, A, S, D, F, G, H, J, K, L, FN1, QUOT, ENT,
LSFT, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,UP, FN0,
CAPS,LALT,LGUI, SPC, RGUI,RALT,FN0, LEFT,DOWN,RGHT
),
// 2: HHKB
SHORT_TYPE(
ESC, F1,F2,F3,F4, F5, F6, CUT,PASTE,COPY,PWR, INS, HOME,PGUP,
F7,F8,F9,F10,F11,F12, DEL, END, PGDN,
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL,
CAPS, NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, BSPC,
LCTL, VOLD,VOLU,MUTE,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT, ENT,
LSFT, Z, X, C, V, B, NO, NO, END, PGDN,DOWN, RSFT,PGUP,FN0,
CAPS,LALT,LGUI, SPC, RGUI,RALT,FN0, HOME,PGDN,END
),
// 3: Mousekey
SHORT_TYPE(
ESC, F1,F2,F3,F4, F5, F6, CUT,PASTE,COPY,PWR, INS, HOME,PGUP,
F7,F8,F9,F10,F11,F12, DEL, END, PGDN,
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL,
CAPS, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC,
LCTL, NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,FN1, NO, ENT,
LSFT, NO, NO, NO, NO, BTN3,BTN2,BTN1,NO, NO, NO, RSFT,UP, NO,
CAPS,LALT,LGUI, BTN1, RGUI,RALT,NO, LEFT,DOWN,RGHT
),
// 4: Cursor
SHORT_TYPE(
ESC, F1,F2,F3,F4, F5, F6, CUT,PASTE,COPY,PWR, INS, HOME,PGUP,
F7,F8,F9,F10,F11,F12, DEL, END, PGDN,
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL,
CAPS, NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC,
LCTL, NO, NO, NO, NO, NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT,
LSFT, NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT,UP, NO,
CAPS,LALT,LGUI, BTN1, RGUI,RALT,NO, LEFT,DOWN,RGHT
),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,33 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "stdint.h"
#include "serial.h"
#include "led.h"
void led_set(uint8_t usb_led)
{
uint8_t sun_led = 0;
if (usb_led & (1<<USB_LED_NUM_LOCK)) sun_led |= (1<<0);
if (usb_led & (1<<USB_LED_COMPOSE)) sun_led |= (1<<1);
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) sun_led |= (1<<2);
if (usb_led & (1<<USB_LED_CAPS_LOCK)) sun_led |= (1<<3);
serial_send(0x0E);
serial_send(sun_led);
}

View File

@@ -1,159 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "util.h"
#include "matrix.h"
#include "debug.h"
#include "protocol/serial.h"
/*
* Matrix Array usage:
*
* ROW: 16(4bits)
* COL: 8(3bits)
*
* 8bit wide
* +---------+
* 0|00 ... 07|
* 1|08 ... 0F|
* :| ... |
* :| ... |
* E|70 ... 77|
* F|78 ... 7F|
* +---------+
*/
static uint8_t matrix[MATRIX_ROWS];
#define ROW(code) ((code>>3)&0xF)
#define COL(code) (code&0x07)
static bool is_modified = false;
inline
uint8_t matrix_rows(void)
{
return MATRIX_ROWS;
}
inline
uint8_t matrix_cols(void)
{
return MATRIX_COLS;
}
void matrix_init(void)
{
print_enable = true;
debug_enable = true;
serial_init();
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
return;
}
uint8_t matrix_scan(void)
{
is_modified = false;
uint8_t code;
code = serial_recv();
if (!code) return 0;
debug_hex(code); debug(" ");
switch (code) {
case 0x7E: // reset fail
case 0xFE: // layout
case 0xFF: // reset success
_delay_ms(500);
// ignore response byte
debug("(response ignored:");
while ((code = serial_recv())) { debug(" "); debug_hex(code); }
debug(") ");
// FALL THROUGH
case 0x7F:
// all keys up
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
return 0;
}
if (code&0x80) {
// break code
if (matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] &= ~(1<<COL(code));
is_modified = true;
}
} else {
// make code
if (!matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] |= (1<<COL(code));
is_modified = true;
}
}
return code;
}
bool matrix_is_modified(void)
{
return is_modified;
}
inline
bool matrix_has_ghost(void)
{
return false;
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
return (matrix[row] & (1<<col));
}
inline
uint8_t matrix_get_row(uint8_t row)
{
return matrix[row];
}
void matrix_print(void)
{
print("\nr/c 01234567\n");
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
pbin_reverse(matrix_get_row(row));
print("\n");
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
count += bitpop(matrix[i]);
}
return count;
}

View File

@@ -1,113 +0,0 @@
# Target file name (without extension).
TARGET = terminal_lufa
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# keyboard dependent files
SRC = keymap.c \
matrix.c \
led.c
CONFIG_H = config.h
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8
# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU)
# Interrupt driven control endpoint task
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Boot Section Size in bytes
# Teensy halfKay 512
# Atmel DFU loader 4096
# LUFA bootloader 4096
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
#MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
#EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
#
# PS/2 protocol implementations
# USART is recommended if it is available, others are for reference purpose.
# INT implementation will drop simultaneous key strokes.
#
PS2_USE_USART = yes # uses hardware USART engine for PS/2 signal receive(recomened)
#PS2_USE_INT = yes # uses external interrupt for falling edge of PS/2 clock pin
#PS2_USE_BUSYWAIT = yes # uses primitive reference code
ifdef PS2_USE_USART
SRC += protocol/ps2_usart.c
OPT_DEFS += -DPS2_USE_USART
endif
ifdef PS2_USE_INT
SRC += protocol/ps2.c
OPT_DEFS += -DPS2_USE_INT
endif
ifdef PS2_USE_BUSYWAIT
SRC += protocol/ps2.c
OPT_DEFS += -DPS2_USE_BUSYWAIT
endif
#---------------- Programming Options --------------------------
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/lufa.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,156 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "keymap.h"
/*
* IBM Terminal keyboard 6110345(122keys)/1392595(102keys)
* http://geekhack.org/showthread.php?10737-What-Can-I-Do-With-a-Terminal-Model-M
* http://www.seasip.info/VintagePC/ibm_1391406.html
*
* Keymap array:
* 8 bytes
* +---------+
* 0| |
* :| | 0x00-0x87
* ;| |
* 17| |
* +---------+
*/
#define KEYMAP( \
K08,K10,K18,K20,K28,K30,K38,K40,K48,K50,K57,K5F, \
K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, \
\
K05,K06, K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K5D,K66, K67,K6E,K6F, K76,K77,K7E,K84, \
K04,K0C, K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B, K5C, K64,K65,K6D, K6C,K75,K7D,K7C, \
K03,K0B, K14,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K53,K5A, K63, K6B,K73,K74,K7B, \
K83,K0A, K12,K13,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K51,K59, K61,K62,K6A, K69,K72,K7A,K79, \
K01,K09, K11, K19, K29, K39, K58, K60, K68,K70,K71,K78 \
) { \
{ KC_NO, KC_##K01, KC_NO, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
{ KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
{ KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, \
{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, \
{ KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, \
{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, \
{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \
{ KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_##K6C, KC_##K6D, KC_##K6E, KC_##K6F }, \
{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 }, \
{ KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_##K7C, KC_##K7D, KC_##K7E, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_##K83, KC_##K84, KC_NO, KC_NO, KC_NO, }, \
}
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
0, // Fn0
0, // Fn1
0, // Fn2
0, // Fn3
0, // Fn4
0, // Fn5
0, // Fn6
0 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KC_NO, // Fn0
KC_NO, // Fn1
KC_NO, // Fn2
KC_NO, // Fn3
KC_NO, // Fn4
KC_NO, // Fn5
KC_NO, // Fn6
KC_NO // Fn7
};
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: default
* ,---. ,---------------. ,---------------. ,---------------. ,-----------.
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
* `---' `---------------' `---------------' `---------------' `-----------'
* ,-----------------------------------------------------------. ,-----------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|BS | |Ins|Hom|PgU| |NmL| /| *| -|
* |-----------------------------------------------------------| |-----------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| |
* |-----------------------------------------------------------| `-----------' |-----------| +|
* |CapsLo| A| S| D| F| G| H| J| K| L| ;| '| #|Retu| | 4| 5| 6| |
* |-----------------------------------------------------------| ,---. |---------------|
* |Shif| \| Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
* |-----------------------------------------------------------| ,-----------. |-----------|Ent|
* |Ctrl| |Alt | Space |Alt | |Ctrl| |Lef|Dow|Rig| | 0| .| |
* `----' `---------------------------------------' `----' `-----------' `---------------'
*/
/*
KEYMAP(
F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24,
F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
PSCR,ESC, GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
SLCK,INT4, TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, BSLS, DEL, END, PGDN, P7, P8, P9, PPLS,
PAUS,INT5, CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, NUHS,ENT, UP, P4, P5, P6, PCMM,
APP, INT6, LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RO, RSFT, LEFT,INT2,RGHT, P1, P2, P3, PENT,
RGUI,LGUI, LCTL, LALT, SPC, RALT, RCTL, DOWN, NO, P0, PDOT,NO
),
*/
// pseudo ANSI
KEYMAP(
F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24,
F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
PSCR,ESC, ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NO, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
SLCK,INT4, TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, NO, DEL, END, PGDN, P7, P8, P9, PPLS,
PAUS,INT5, LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, BSLS,ENT, UP, P4, P5, P6, PCMM,
APP, INT6, LSFT,LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, NO, RSFT, LEFT,INT2,RGHT, P1, P2, P3, PENT,
RGUI,LGUI, LCTL, LALT, SPC, LGUI, GRV, DOWN, NO, P0, PDOT,NO
),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,33 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "stdint.h"
#include "ps2.h"
#include "led.h"
void led_set(uint8_t usb_led)
{
uint8_t ps2_led = 0;
if (usb_led & (1<<USB_LED_SCROLL_LOCK))
ps2_led |= (1<<PS2_LED_SCROLL_LOCK);
if (usb_led & (1<<USB_LED_NUM_LOCK))
ps2_led |= (1<<PS2_LED_NUM_LOCK);
if (usb_led & (1<<USB_LED_CAPS_LOCK))
ps2_led |= (1<<PS2_LED_CAPS_LOCK);
ps2_host_set_led(ps2_led);
}

View File

@@ -1,35 +0,0 @@
USB to USB keyboard protocol converter
======================================
Hardware requirement
--------------------
Arduino Leonardo
http://arduino.cc/en/Main/ArduinoBoardLeonardo
Circuit@Home USB Host Sheild 2.0
http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino
Build firmware
--------------
$ git clone git://github.com/tmk/tmk_keyboard.git
$ cd tmk_keyboard
$ git checkout usb_hid
$ git submodule init
$ git submodule update
and download LUFA and unzip under protocol/lufa and edit LUFA_PATH in protocol/lufa.mk. Then,
$ cd converter/usb_usb
$ make
You will get usb_usb.hex if you are lucky.
Program your Leonardo with avrdude(or easy-going Arduino IDE):
$ avrdude -patmega32u4 -cavr109 -PCOM17 -b57600 -Uflash:w:usb_usb.hex
Limitation
----------
Only supports 'HID Boot protocol'.
Not support keyboard LED yet.

View File

@@ -1,251 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <avr/pgmspace.h>
#include "keycode.h"
#include "util.h"
#include "keymap.h"
#define KEYMAP( \
K29,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45, K46,K47,K48, \
K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A, K49,K4A,K4B, K53,K54,K55,K56, \
K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,K31, K4C,K4D,K4E, K5F,K60,K61, \
K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34, K28, K5C,K5D,K5E,K57, \
KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38, KE5, K52, K59,K5A,K5B, \
KE0,KE3,KE2, K2C, KE6,KE7,K65,KE4, K50,K51,K4F, K62, K63,K58 \
) { \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, /* 00-07 */ \
{ KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, /* 08-0F */ \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, /* 10-17 */ \
{ KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, /* 18-1F */ \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, /* 20-27 */ \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, /* 28-2F */ \
{ KC_##K30, KC_##K31, KC_NO, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, /* 30-37 */ \
{ KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, /* 38-3F */ \
{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, /* 40-47 */ \
{ KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, /* 48-4F */ \
{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, /* 50-57 */ \
{ KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, /* 58-5F */ \
{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_NO, KC_##K65, KC_NO, KC_NO }, /* 60-67 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 68-6F */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 70-77 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 78-7F */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 80-87 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 88-8F */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 90-97 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 98-9F */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A0-A7 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A8-AF */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B0-B7 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B8-BF */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C0-C7 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C8-CF */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D0-D7 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D8-DF */ \
{ KC_##KE0, KC_##KE1, KC_##KE2, KC_##KE3, KC_##KE4, KC_##KE5, KC_##KE6, KC_##KE7 }, /* E0-E7 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* E8-EF */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F0-F7 */ \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F8-FF */ \
}
// Layers to switch by holding Fn key(0-7)
static const uint8_t PROGMEM fn_layer[] = { 5, 6, 5, 0, 0, 0, 0, 0 };
// Codes to register by clicking Fn key(0-7)
static const uint8_t PROGMEM fn_keycode[] = { KC_SCLN, KC_SLSH, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO };
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: default
* ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------.
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak|
* `---' `---------------' `---------------' `---------------' `-----------' `-----------'
* ,-----------------------------------------------------------. ,-----------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| /| *| -|
* |-----------------------------------------------------------| |-----------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| |
* |-----------------------------------------------------------| `-----------' |-----------| +|
* |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| |
* |-----------------------------------------------------------| ,---. |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
* |-----------------------------------------------------------| ,-----------. |-----------|Ent|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| |
* `-----------------------------------------------------------' `-----------' `---------------'
* ; = Fn0(to Layer 5)
* / = Fn1(to Layer 6)
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
FN2, A, S, D, F, G, H, J, K, L, FN0, QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,FN2, FN2, GRV, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 1: plain Qwerty without layer switching
* ,-----------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa|
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
* |-----------------------------------------------------------|
* |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 2: Colemak http://colemak.com
* ,-----------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa|
* |-----------------------------------------------------------|
* |Tab | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \|
* |-----------------------------------------------------------|
* |BackSp| A| R| S| T| D| H| N| E| I| O| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| K| M| ,| ,| /|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 3: Dvorak http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
* ,-----------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]|Backspa|
* |-----------------------------------------------------------|
* |Tab | '| ,| .| P| Y| F| G| C| R| L| /| =| \|
* |-----------------------------------------------------------|
* |BackSp| A| O| E| U| I| D| H| T| N| S| -|Return |
* |-----------------------------------------------------------|
* |Shift | ;| Q| J| K| X| B| M| Wl V| Z|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, DEL, END, PGDN, P7, P8, P9,
CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, P4, P5, P6, PPLS,
LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 4: Workman http://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/
* ,-----------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa|
* |-----------------------------------------------------------|
* |Tab | Q| D| R| W| B| J| F| U| P| ;| [| ]| \|
* |-----------------------------------------------------------|
* |CapsLo| A| S| H| T| G| Y| N| E| O| I| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| M| C| V| K| L| ,| ,| /|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, P4, P5, P6, PPLS,
LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 5: Mouse keys
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa|
* |-----------------------------------------------------------|
* |Tab |MwL|MwU|McU|WwU|WwR|MwL|MwD|MwU|MwR| | | | \|
* |-----------------------------------------------------------|
* |CapsLo| |McL|McD|McR| |McL|McD|McU|McR|Fn0| |Return |
* |-----------------------------------------------------------|
* |Shift |VoD|VoU|Mut|Mb2|Mb3|Mb2|Mb1|VoD|VoU|Mut|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Mb1 |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
* Mc = mouse cursor, Mw = mouse wheel, Mb = mouse button
* Vo = Volume, Mut = Mute
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
CAPS,NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,PSCR,SLCK,PAUS,INS, DEL, END, PGDN, P7, P8, P9,
FN2, VOLD,VOLU,MUTE,NO, NO, MS_L,MS_D,MS_U,MS_R,FN0, NO, ENT, P4, P5, P6, PPLS,
LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,NO, NO, NO, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, BTN1, RALT,FN2, FN2, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
/* 6: Cursor keys
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa|
* |-----------------------------------------------------------|
* |Tab |Hom|PgU| Up|PgU|End|Hom|PgD|PgU|End| | | | \|
* |-----------------------------------------------------------|
* |CapsLo| |Lef|Dow|Rig| |Lef|Dow| Up|Rig| | |Return |
* |-----------------------------------------------------------|
* |Shift | | | | | |Hom|PgD|PgU|End|Fn1|Shift |
* |-----------------------------------------------------------|
* |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
CAPS,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, NO, NO, NO, INS, DEL, END, PGDN, P7, P8, P9,
LCTL,NO, NO, NO, NO, NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS,
LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN1, RSFT, UP, P1, P2, P3,
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,107 +0,0 @@
#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
#include <util/delay.h>
// USB HID host
#include "Usb.h"
#include "hid.h"
#include "hidboot.h"
#include "parser.h"
// LUFA
#include "lufa.h"
#include "timer.h"
#include "debug.h"
#include "keyboard.h"
#include "leonardo_led.h"
static USB usb_host;
static HIDBoot<HID_PROTOCOL_KEYBOARD> kbd(&usb_host);
static KBDReportParser kbd_parser;
static void LUFA_setup(void)
{
/* Disable watchdog if enabled by bootloader/fuses */
MCUSR &= ~(1 << WDRF);
wdt_disable();
/* Disable clock division */
clock_prescale_set(clock_div_1);
// Leonardo needs. Without this USB device is not recognized.
USB_Disable();
USB_Init();
// for Console_Task
USB_Device_EnableSOFEvents();
}
static void HID_setup()
{
if (usb_host.Init() == -1) {
debug("HID init: failed\n");
LED_TX_OFF;
}
_delay_ms(200);
kbd.SetReportParser(0, (HIDReportParser*)&kbd_parser);
}
int main(void)
{
// LED for debug
LED_TX_INIT;
LED_TX_ON;
print_enable = true;
debug_enable = true;
debug_matrix = true;
debug_keyboard = true;
debug_mouse = true;
host_set_driver(&lufa_driver);
keyboard_init();
LUFA_setup();
sei();
uint8_t ret;
// wait for startup of sendchar routine
while (USB_DeviceState != DEVICE_STATE_Configured) ;
if (debug_enable) {
_delay_ms(1000);
}
debug("init: start\n");
HID_setup();
debug("init: done\n");
uint16_t timer;
// to see loop pulse with oscillo scope
DDRF = (1<<7);
for (;;) {
PORTF ^= (1<<7);
keyboard_task();
timer = timer_read();
usb_host.Task();
timer = timer_elapsed(timer);
if (timer > 100) {
debug("host.Task: "); debug_hex16(timer); debug("\n");
}
#if !defined(INTERRUPT_CONTROL_ENDPOINT)
// LUFA Task for control request
USB_USBTask();
#endif
}
return 0;
}

View File

@@ -1,133 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include "usb_hid.h"
#include "keycode.h"
#include "util.h"
#include "print.h"
#include "debug.h"
#include "matrix.h"
/* KEY CODE to Matrix
*
* HID keycode(1 byte):
* Higher 5 bits indicates ROW and lower 3 bits COL.
*
* 7 6 5 4 3 2 1 0
* +---------------+
* | ROW | COL |
* +---------------+
*
* Matrix space(32 * 8):
* 01234567
* 0 +--------+
* : | |
* : | |
* 31 +--------+
*/
#define ROW_MASK 0xF8
#define COL_MASK 0x07
#define CODE(row, col) (((row) << 3) | (col))
#define ROW(code) (((code) & ROW_MASK) >> 3)
#define COL(code) ((code) & COL_MASK)
#define ROW_BITS(code) (1 << COL(code))
uint8_t matrix_rows(void) { return MATRIX_ROWS; }
uint8_t matrix_cols(void) { return MATRIX_COLS; }
void matrix_init(void) {}
bool matrix_has_ghost(void) { return false; }
static bool matrix_is_mod =false;
uint8_t matrix_scan(void) {
static uint16_t last_time_stamp = 0;
if (last_time_stamp != usb_hid_time_stamp) {
last_time_stamp = usb_hid_time_stamp;
matrix_is_mod = true;
} else {
matrix_is_mod = false;
}
return 1;
}
bool matrix_is_modified(void) {
return matrix_is_mod;
}
bool matrix_is_on(uint8_t row, uint8_t col) {
uint8_t code = CODE(row, col);
if (IS_MOD(code)) {
if (usb_hid_keyboard_report.mods & ROW_BITS(code)) {
return true;
}
}
for (uint8_t i = 0; i < REPORT_KEYS; i++) {
if (usb_hid_keyboard_report.keys[i] == code) {
return true;
}
}
return false;
}
uint8_t matrix_get_row(uint8_t row) {
uint8_t row_bits = 0;
if (IS_MOD(CODE(row, 0)) && usb_hid_keyboard_report.mods) {
row_bits |= usb_hid_keyboard_report.mods;
}
for (uint8_t i = 0; i < REPORT_KEYS; i++) {
if (IS_ANY(usb_hid_keyboard_report.keys[i])) {
if (row == ROW(usb_hid_keyboard_report.keys[i])) {
row_bits |= ROW_BITS(usb_hid_keyboard_report.keys[i]);
}
}
}
return row_bits;
}
uint8_t matrix_key_count(void) {
uint8_t count = 0;
count += bitpop(usb_hid_keyboard_report.mods);
for (uint8_t i = 0; i < REPORT_KEYS; i++) {
if (IS_ANY(usb_hid_keyboard_report.keys[i])) {
count++;
}
}
return count;
}
void matrix_print(void) {
print("\nr/c 01234567\n");
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
pbin_reverse(matrix_get_row(row));
#ifdef MATRIX_HAS_GHOST
if (matrix_has_ghost_in_row(row)) {
print(" <ghost");
}
#endif
print("\n");
}
}

View File

@@ -1,101 +0,0 @@
#
# Makefile for PJRC Teensy
#
# Target file name (without extension).
TARGET = x68k_usb_pjrc
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# keyboard dependent files
SRC = keymap.c \
matrix.c \
led.c \
protocol/serial_uart.c
CONFIG_H = config_pjrc.h
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
#MCU = at90usb162 # Teensy 1.0
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb646 # Teensy++ 1.0
#MCU = at90usb1286 # Teensy++ 2.0
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
# Boot Section Size in bytes
# Teensy halfKay 512
# Atmel DFU loader 4096
# LUFA bootloader 4096
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# *Comment out* to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
#---------------- Programming Options --------------------------
AVRDUDE = avrdude
# Type: avrdude -c ? to get a full listing.
AVRDUDE_PROGRAMMER = avr109
AVRDUDE_PORT = /dev/ttyACM0
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
# Uncomment the following if you want avrdude's erase cycle counter.
# Note that this counter needs to be initialized first using -Yn,
# see avrdude manual.
#AVRDUDE_ERASE_COUNTER = -y
# Uncomment the following if you do /not/ wish a verification to be
# performed after programming the device.
#AVRDUDE_NO_VERIFY = -V
# Increase verbosity level. Please use this when submitting bug
# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
# to submit bug reports.
#AVRDUDE_VERBOSE = -v -v
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
#AVRDUDE_FLAGS = -p $(MCU) -c $(AVRDUDE_PROGRAMMER)
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
#PROGRAM_CMD = $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
#PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
PROGRAM_CMD = dfu-programmer atmega32u4 flash $(TARGET).hex
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/pjrc.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk

View File

@@ -1,151 +0,0 @@
X68000 to USB keyboard protocol converter
=========================================
SHARP X68000 is a hobby computer released in Japan.(1987-93)
http://en.wikipedia.org/wiki/Sharp_X68000
X68000 keyboard has ALPS linear switches.
- DSETK0016CE01 green linear
- DSETK0022CE02 yellow linear
- DSETK0023CE03 yellow linear
Hardware
--------
Target MCU is ATMega32u4 but other USB capable AVR will also work.
You can use PJRC Teensy as dev board.
http://www.pjrc.com/teensy/
Wiring:
Mini-DIN Teensy
-----------------------------------------------------
pin1 +5V VCC
pin2 MOUSE -
pin3 RXD PD2(RXD)
pin4 TXD PD3(TXD) NOTE: Not supported yet.
pin5 READY -
pin6 REMOTE -
pin7 GND GND
Firmware
--------
Build:
$ cd x68k_usb
$ make
And load the binary to MCU with your favorite programmer.
If you use Teensy you can load with PJRC Teensy Loader tool.
http://www.pjrc.com/teensy/loader.html
* * * * * * * * * * * * * * * * * *
X68000 Keyboard Protocol
========================
http://kyoutan.jpn.org/uts/pc/pic/x68key/
Connector
---------
Mini DIN 7pin(female connector on computer side)
7 6 5
o o o
4 o = o 3
o o
2 1
Mini-DIN
-------------
pin1 +5V
pin2 MOUSE
pin3 RXD
pin4 TXD
pin5 READY
pin6 REMOTE
pin7 GND
Signaling
---------
- TXD,RXD
Asynchronous, 2400baud, 1-startbit(L), 8-databit, 1-stopbit(H)
- READY
ready/not ready(1/0)
Data from keyboard
------------------
bit 7 make/break flag(0/1)
bit 6-0 following scan code
Data from computer
------------------
- LED contorol ON/OFF(0/1)
bit 7 1(fixed)
bit 6 全角
bit 5 ひらがな
bit 4 INS
bit 3 CAPS
bit 2 コード入力
bit 1 ローマ字
bit 0 かな
- Repeat delay
bit 7 0(fixed)
bit 6 1(fixed)
bit 5 1(fixed)
bit 4 0(fixed)
bit 3-0 delay
REPEAT_DELAY = 200+delay*100 ms
default: 500ms
- Repeat time
bit 7 0(fixed)
bit 6 1(fixed)
bit 5 1(fixed)
bit 4 1(fixed)
bit 3-0 time
REPEAT_TIME = 30+time^2*5 ms
default: 110ms
Scan Codes
----------
,---. ,---. ,-------------------, ,-------------------. ,-----------. ,---------------.
| 61| | 62| | 63| 64| 65| 66| 67| | 68| 69| 6A| 6B| 6C| | 5A| 5B| 5C| | 5D| 52| 53| 54|
`---' `---' `-------------------' `-------------------' `-----------' `---------------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| 0F| | 36| 5E| 37| | 3F| 40| 41| 42|
|-----------------------------------------------------------| |------------ |---------------|
| 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C| | | 38| 39| 3A| | 43| 44| 45| 46|
|------------------------------------------------------. 1D | `---=====---' |---------------|
| 71 | 1E| 1F| 20| 21| 2l| 23| 24| 25| 26| 27| 28| 29| | ___| 3C|___ | 47| 48| 49| 4A|
|-----------------------------------------------------------| | 3B|---| 3D| |-----------|---|
| 70 | 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 34| 70 | `---| 3E|---' | 4B| 4C| 4D| |
`-----------------------------------------------------------| .---=====---. |-----------| 4E|
| 5F| 55 | 56 | 35 | 57 | 58 | 59 | 60| | 72 | 73 | | 4F| 50| 51| |
`---------------------------------------------' `-----------' `---------------'
LED Special Functions
---------------------
http://homepage2.nifty.com/m_kamada/docs/unlistedx68k.htm#keyboard
1. Random Illumination
Plug in with pressing F1, F2 and F3.
2. Sequential Illumination
Plug in with pressing 記号入力(52), 登録(53) and HELP.
3. Scan code Display
Plug in with pressing かな(5A), ローマ字(5B) and コード入力(5C).
You can see its scan code on LEDs by pressing a key.
+---------------------------------------------------+
|bit|6 |5 |4 |3 |2 |1 |0 |
|---+----+--------+---+----+----------+--------+----|
|LED|全角|ひらがな|INS|CAPS|コード入力|ローマ字|かな|
+---------------------------------------------------+

View File

@@ -1,67 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6800
#define MANUFACTURER t.m.k.
#define PRODUCT SHARP X68000 keyboard converter
#define DESCRIPTION converts SHARP X68000 keyboard protocol into USB
/* matrix size */
#define MATRIX_ROWS 16
#define MATRIX_COLS 8
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) || \
keyboard_report->mods == (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) || \
keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) \
)
/* legacy keymap support */
#define USE_LEGACY_KEYMAP
/* USART configuration
* asynchronous, 2400baud, 8-data bit, non parity, 1-stop bit, no flow control
*/
#ifdef __AVR_ATmega32U4__
#define SERIAL_UART_BAUD 2400
#define SERIAL_UART_DATA UDR1
#define SERIAL_UART_UBRR ((F_CPU/(16UL*SERIAL_UART_BAUD))-1)
#define SERIAL_UART_RXD_VECT USART1_RX_vect
#define SERIAL_UART_TXD_READY (UCSR1A&(1<<UDRE1))
#define SERIAL_UART_INIT() do { \
UBRR1L = (uint8_t) SERIAL_UART_UBRR; /* baud rate */ \
UBRR1H = (uint8_t) (SERIAL_UART_UBRR>>8); /* baud rate */ \
UCSR1B = (1<<RXCIE1) | (1<<RXEN1) | /* RX: interrupt, RX: enable */ \
(1<<TXEN1); /* TX: enable */ \
UCSR1C = (0<<UPM11) | (0<<UPM10) | /* parity: none(00), even(01), odd(11) */ \
(0<<UCSZ12) | (1<<UCSZ11) | (1<<UCSZ10); /* data-8bit(011) */ \
sei(); \
} while(0)
#else
# error "USART configuration is needed."
#endif
#endif

View File

@@ -1,150 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "util.h"
#include "keymap.h"
// Following macros help you to define a keymap with the form of actual keyboard layout.
/* X68000 Keyboard Scan codes
,---. ,---. ,-------------------, ,-------------------. ,-----------. ,---------------.
| 61| | 62| | 63| 64| 65| 66| 67| | 68| 69| 6A| 6B| 6C| | 5A| 5B| 5C| | 5D| 52| 53| 54|
`---' `---' `-------------------' `-------------------' `-----------' `---------------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| 0F| | 36| 5E| 37| | 3F| 40| 41| 42|
|-----------------------------------------------------------| |------------ |---------------|
| 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C| | | 38| 39| 3A| | 43| 44| 45| 46|
|------------------------------------------------------. 1D | `---=====---' |---------------|
| 71 | 1E| 1F| 20| 21| 2l| 23| 24| 25| 26| 27| 28| 29| | ___| 3C|___ | 47| 48| 49| 4A|
|-----------------------------------------------------------| | 3B|---| 3D| |-----------|---|
| 70 | 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 34| 70 | `---| 3E|---' | 4B| 4C| 4D| |
`-----------------------------------------------------------| .---=====---. |-----------| 4E|
| 5F| 55 | 56 | 35 | 57 | 58 | 59 | 60| | 72 | 73 | | 4F| 50| 51| |
`---------------------------------------------' `-----------' `---------------'
*/
#define KEYMAP( \
K61,K62, K63,K64,K65,K66,K67, K68,K69,K6A,K6B,K6C, K5A,K5B,K5C, K5D,K52,K53,K54, \
K01,K02,K03,K04,K05,K06,K07,K08,K09,K0A,K0B,K0C,K0D,K0E,K0F, K36,K5E,K37, K3F,K40,K41,K42, \
K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K1A,K1B,K1C, K1D, K38,K39,K3A, K43,K44,K45,K46, \
K71,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29, K3C, K47,K48,K49,K4A, \
K70,K2A,K2B,K2C,K2D,K2E,K2F,K30,K31,K32,K33,K34, K3B,K3E,K3D, K4B,K4C,K4D,K4E, \
K5F,K55,K56, K35, K57,K58,K59,K60, K72, K73, K4F,K50,K51 \
) { \
{ KC_NO, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
{ KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
{ KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
{ KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, \
{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, \
{ KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, \
{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
{ KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, \
{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \
{ KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_##K6C, KC_NO, KC_NO, KC_NO }, \
{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_NO, KC_NO, KC_NO, KC_NO, }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
}
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
0, // Fn0
0, // Fn1
0, // Fn2
0, // Fn3
0, // Fn4
0, // Fn5
0, // Fn6
0 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KC_NO, // Fn0
KC_NO, // Fn1
KC_NO, // Fn2
KC_NO, // Fn3
KC_NO, // Fn4
KC_NO, // Fn5
KC_NO, // Fn6
KC_NO // Fn7
};
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* X68000 Keyboard Scan codes
,---. ,---. ,-------------------, ,-------------------. ,-----------. ,---------------.
| 61| | 62| | 63| 64| 65| 66| 67| | 68| 69| 6A| 6B| 6C| | 5A| 5B| 5C| | 5D| 52| 53| 54|
`---' `---' `-------------------' `-------------------' `-----------' `---------------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| 0F| | 36| 5E| 37| | 3F| 40| 41| 42|
|-----------------------------------------------------------| |------------ |---------------|
| 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C| | | 38| 39| 3A| | 43| 44| 45| 46|
|------------------------------------------------------. 1D | `---=====---' |---------------|
| 71 | 1E| 1F| 20| 21| 2l| 23| 24| 25| 26| 27| 28| 29| | ___| 3C|___ | 47| 48| 49| 4A|
|-----------------------------------------------------------| | 3B|---| 3D| |-----------|---|
| 70 | 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 34| 70 | `---| 3E|---' | 4B| 4C| 4D| |
`-----------------------------------------------------------| .---=====---. |-----------| 4E|
| 5F| 55 | 56 | 35 | 57 | 58 | 59 | 60| | 72 | 73 | | 4F| 50| 51| |
`---------------------------------------------' `-----------' `---------------'
*/
/* ANSI */
KEYMAP(
F16, F17, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, PSCR,SLCK,PAUS, CAPS,F11, F12, F13,
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,BSPC, HOME,INS, DEL, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, ENT, PGDN,PGUP,END, P7, P8, P9, PPLS,
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,F18, UP, P4, P5, P6, PEQL,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,GRV, LEFT,DOWN,RGHT, P1, P2, P3, PENT,
F19, LGUI,LALT, SPC, RALT,RGUI,RCTL,APP, F14, F15, P0, PCMM,PDOT
),
/* JIS */
KEYMAP(
F16, F17, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, PSCR,SLCK,PAUS, CAPS,F11, F12, F13,
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, HOME,INS, DEL, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, ENT, PGDN,PGUP,END, P7, P8, P9, PPLS,
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NUHS, UP, P4, P5, P6, PEQL,
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RO, LEFT,DOWN,RGHT, P1, P2, P3, PENT,
LGUI,LALT,MHEN, SPC, HENK,KANA,APP, ZKHK, F14, F15, P0, PCMM,PDOT
),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,43 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "stdint.h"
#include "serial.h"
#include "led.h"
#include "debug.h"
void led_set(uint8_t usb_led)
{
/* X68000 LED bits 0: on, 1: off
* bit 7 1(fixed)
* bit 6 全角
* bit 5 ひらがな
* bit 4 INS
* bit 3 CAPS
* bit 2 コード入力
* bit 1 ローマ字
* bit 0 かな
*/
uint8_t led = 0xFF;
if (usb_led&(1<<USB_LED_NUM_LOCK)) led &= ~(1<<2);
if (usb_led&(1<<USB_LED_CAPS_LOCK)) led &= ~(1<<3);
if (usb_led&(1<<USB_LED_SCROLL_LOCK)) led &= ~(1<<1);
if (usb_led&(1<<USB_LED_COMPOSE)) led &= ~(1<<4);
if (usb_led&(1<<USB_LED_KANA)) led &= ~(1<<0);
serial_send(led);
}

View File

@@ -1,142 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "util.h"
#include "serial.h"
#include "matrix.h"
#include "debug.h"
/*
* Matrix Array usage:
*
* ROW: 16(4bits)
* COL: 8(3bits)
*
* 8bit wide
* +---------+
* 0|00 ... 07|
* 1|08 ... 0F|
* :| ... |
* :| ... |
* E|70 ... 77|
* F|78 ... 7F|
* +---------+
*
*/
static uint8_t matrix[MATRIX_ROWS];
#define ROW(code) ((code>>3)&0xF)
#define COL(code) (code&0x07)
static bool is_modified = false;
inline
uint8_t matrix_rows(void)
{
return MATRIX_ROWS;
}
inline
uint8_t matrix_cols(void)
{
return MATRIX_COLS;
}
void matrix_init(void)
{
serial_init();
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
return;
}
uint8_t matrix_scan(void)
{
is_modified = false;
uint16_t code;
code = serial_recv2();
if (code == -1) {
return 0;
}
dprintf("%02X\n", code);
if (code&0x80) {
// break code
if (matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] &= ~(1<<COL(code));
is_modified = true;
}
} else {
// make code
if (!matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] |= (1<<COL(code));
is_modified = true;
}
}
return code;
}
bool matrix_is_modified(void)
{
return is_modified;
}
inline
bool matrix_has_ghost(void)
{
return false;
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
return (matrix[row] & (1<<col));
}
inline
uint8_t matrix_get_row(uint8_t row)
{
return matrix[row];
}
void matrix_print(void)
{
print("\nr/c 01234567\n");
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
pbin_reverse(matrix_get_row(row));
print("\n");
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
count += bitpop(matrix[i]);
}
return count;
}

103
doc/BUILD_GUIDE.md Normal file
View File

@@ -0,0 +1,103 @@
# This guide has now been included in the main readme - please reference that one instead.
## Build Environment Setup
### Windows (Vista and later)
1. If you have ever installed WinAVR, uninstall it.
2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**.
3. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location.
4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/qmk/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer.
5. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up.
6. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete!
7. Future build commands should be run from the standard Windows command prompt, which you can find by searching for "command prompt" from the start menu or start screen. Ignore the "MHV AVR Shell".
### Mac
If you're using [homebrew,](http://brew.sh/) you can use the following commands:
brew tap osx-cross/avr
brew install avr-libc
brew install dfu-programmer
This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line.
You can also try these instructions:
1. Install Xcode from the App Store.
2. Install the Command Line Tools from `Xcode->Preferences->Downloads`.
3. Install [DFU-Programmer][dfu-prog].
### Linux
Install AVR GCC, AVR libc, and dfu-progammer with your favorite package manager.
Debian/Ubuntu example:
sudo apt-get update
sudo apt-get install gcc-avr avr-libc dfu-programmer
### Vagrant
If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [VAGRANT_GUIDE file](VAGRANT_GUIDE.md).
## Verify Your Installation
1. If you haven't already, obtain this repository ([https://github.com/qmk/qmk_firmware](https://github.com/qmk/qmk_firmware)). You can either download it as a zip file and extract it, or clone it using the command line tool git or the Github Desktop application.
2. Open up a terminal or command prompt and navigate to the `qmk_firmware` folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead.
3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `readme.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboards/`. For example, if you're building for a Planck, run `cd keyboards/planck`.
4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. More information about the `make` command can be found below.
## Customizing, Building, and Deploying Your Firmware
### The Make command
The `make` command is how you compile the firmware into a .hex file, which can be loaded by a dfu programmer (like dfu-progammer via `make dfu`) or the [Teensy loader](https://www.pjrc.com/teensy/loader.html) (only used with Teensys). You can run `make` from the root (`/`), your keyboard folder (`/keyboards/<keyboard>/`), or your keymap folder (`/keyboards/<keyboard>/keymaps/<keymap>/`) if you have a `Makefile` there (see the example [here](/doc/keymap_makefile_example.mk)).
By default, this will generate a `<keyboard>_<keymap>.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests.
* The "root" (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc.
* The "keyboard" folder is any keyboard project's folder, like `/keyboards/planck`.
* The "keymap" folder is any keymap's folder, like `/keyboards/planck/keymaps/default`.
Below is a list of the useful `make` commands in QMK:
* `make` - cleans automatically and builds your keyboard and keymap depending on which folder you're in. This defaults to the "default" layout (unless in a keymap folder), and Planck keyboard in the root folder
* `make keyboard=<keyboard>` - specifies the keyboard (only to be used in root)
* `make keymap=<keymap>` - specifies the keymap (only to be used in root and keyboard folder - not needed when in keymap folder)
* `make quick` - skips the clean step (cannot be used immediately after modifying config.h or Makefiles)
* `make dfu` - (requires dfu-programmer) builds and flashes the keymap to your keyboard once placed in reset/dfu mode (button or press `KC_RESET`). This does not work for Teensy-based keyboards like the ErgoDox EZ.
* `keyboard=` and `keymap=` are compatible with this
* `make all-keyboards` - builds all keymaps for all keyboards and outputs status of each (use in root)
* `make all-keyboards-default` - builds all default keymaps for all keyboards and outputs status of each (use in root)
* `make all-keymaps [keyboard=<keyboard>]` - builds all of the keymaps for whatever keyboard folder you're in, or specified by `<keyboard>`
* `make all-keyboards-quick`, `make all-keyboards-default-quick` and `make all-keymaps-quick [keyboard=<keyboard>]` - like the normal "make-all-*" commands, but they skip the clean steps
Other, less useful functionality:
* `make COLOR=false` - turns off color output
* `make SILENT=true` - turns off output besides errors/warnings
* `make VERBOSE=true` - outputs all of the avr-gcc stuff (not interesting)
### The Makefile
There are 3 different `make` and `Makefile` locations:
* root (`/`)
* keyboard (`/keyboards/<keyboard>/`)
* keymap (`/keyboards/<keyboard>/keymaps/<keymap>/`)
The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **It is required if you want to run `make` in the keymap folder.**
### The `config.h` file
There are 2 `config.h` locations:
* keyboard (`/keyboards/<keyboard>/`)
* keymap (`/keyboards/<keyboard>/keymaps/<keymap>/`)
The keyboard `config.h` is included only if the keymap one doesn't exist. The format to use for your custom one [is here](/doc/keymap_config_h_example.h). If you want to override a setting from the parent `config.h` file, you need to do this:
```
#undef MY_SETTING
#define MY_SETTING 4
```c
For a value of `4` for this imaginary setting. So we `undef` it first, then `define` it.
You can then override any settings, rather than having to copy and paste the whole thing.

352
doc/CYGWIN_GUIDE.md Executable file
View File

@@ -0,0 +1,352 @@
#Planck Advanced (but not too advanced) `cygwin` Users Guide
If you are a user of the [cygwin environment](https://cygwin.com) in Windows and want the freedom to use the latest tools available, then this is the guide for you. If compiling your own copy of the latest and greatest Gnu C Compiler makes you super happy, then this is the guide for you. If the command line make you smile, then this is the guide for you.
This guide was written step by step as I went through the process on a `Windows 10` `x86_64` and a `Windows 7` `amd k10` based system. This should be generally applicable to to any `Windows` environment with `cygwin`.
#####Do not skip steps. Do not move past a step until the previous step finishes successfully.
Based on [avr-libc installation guide](http://www.nongnu.org/avr-libc/user-manual/install_tools.html)
##Get the Required Packages
Download the `cygwin` setup ([x86_64](https://cygwin.com/setup-x86_64.exe)) and install the default system plus the following if they are not already selected:
- devel/git
- devel/gcc-core
- devel/gcc-g++
- devel/flex
- devel/bison
- devel/make
- devel/texinfo
- devel/gettext-devel
- devel/automake
- devel/autoconfig
- devel/libtool
- text/gettext
- libs/libgcc1
- interpreters/m4
- web/wget
- archive/unzip
The following sources will be required:
- [gmp](https://gmplib.org/) (6.1.0)
- [mpfr](http://www.mpfr.org/) (3.1.4)
- [mpc](http://www.multiprecision.org/) (1.0.3)
- [binutils](https://www.sourceware.org/binutils/) (2.26)
- [gcc](https://gcc.gnu.org/) (5.3.0)
- [avr-libc](http://www.nongnu.org/avr-libc/) (2.0.0)
The `dfu-programmer` will be required to flash the new firmware
- [dfu-programmer](https://dfu-programmer.github.io/) (0.7.2)
The set of commands below will create a directory (`~/local/avr`) for the sources you compile to be installed on the machine and a directory (`~/src`) for these source files to be stored. The commands then download the sources of the needed packages and unpack them. Note: the expand commands are different depending on if the packages are offered as a `bz2` or `gz` archive
```
$ mkdir ~/local
$ mkdir ~/local/avr
$ mkdir ~/src
$ cd ~/src
$ wget https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2
$ wget http://www.mpfr.org/mpfr-3.1.4/mpfr-3.1.4.tar.bz2
$ wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.gz
$ wget http://mirror0.babylon.network/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.gz
$ wget http://download.savannah.gnu.org/releases/avr-libc/avr-libc-2.0.0.tar.bz2
$ tar -xjf gmp-6.1.0.tar.bz2
$ tar -xjf mpfr-3.1.4.tar.bz2
$ tar -zxf mpc-1.0.3.tar.gz
$ tar -zxf binutils-2.26.tar.gz
$ tar -zxf gcc-5.3.0.tar.gz
$ tar -xjf avr-libc-2.0.0.tar.bz2
```
##Setup the Build Environment
These commands will set up the install directory and the `PATH` variable, which will allow you to access your installed packages. Note: if you close the `cygwin` terminal window, you will need to rerun these commands, they are not permanent.
```
$ PREFIX=$HOME/local/avr
$ export PREFIX
$ PATH=/usr/local/bin:/usr/local/lib:/usr/local/include:/bin:/lib:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS
$ PATH=$PATH:$PREFIX/bin:$PREFIX/lib
$ export PATH
```
##The `gcc` Required Math Library Packages
The following packages are required to be complied and installed in order to compile `gcc`. They are not sufficiently available through the `cygwin` package system, so we have to make them ourselves. They must be complied in this order because each one depends on the previous. Verfiy that for each package, `make check` returns all passing and no fails.
###Build and Install `gmp`
```
$ cd ~/src/gmp-6.1.0
$ ./configure --enable-static --disable-shared
$ make
$ make check
$ make install
```
###Build and Install `mpfr`
```
$ cd ~/src/mpfr-3.1.4
$ ./configure --with-gmp-build=../gmp-6.1.0 --enable-static --disable-shared
$ make
$ make check
$ make install
```
###Build and Install `mpc`
```
$ cd ~/src/mpc-1.0.3
$ ./configure --with-gmp=/usr/local --with-mpfr=/usr/local --enable-static --disable-shared
$ make
$ make check
$ make install
```
##OPTIONAL Part
You can build and install a brand new `gcc` or you can use the one supplied by `cygwin`. This will take about 4-5 hours to compile (It is a "native build", so it does the entire build **3 times**. This takes a long while).
###Build and Install `gcc` for Your Machine
```
$ cd ~/src/gcc-5.3.0
$ mkdir obj-local
$ cd obj-local
$ ../configure --enable-languages=c,c++ --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --enable-static --disable-shared
$ make
$ make install
```
##End OPTIONAL Part
###Build and Install `binutils` for Your Machine
```
$ cd ~/src/binutils-2.26
$ mkdir obj-local
$ cd obj-local
$ ../configure
$ make
$ make install
```
##Buliding `binutils`, `gcc`, and `avr-libc` for the AVR system
Now we can make the critical stuff for compiling our firmware: `binutils`, `gcc`, and `avr-libc` for the AVR architecture. These allow us to build and manipulate the firmware for the keyboard.
###Build `binutils` for AVR
If you plan to build and install `avr-gdb` also, use the `gdb` install at the end of this guide as it also builds the `binutils`
```
$ cd ~/src/binutils-2.26
$ mkdir obj-avr
$ cd obj-avr
$ ../configure --prefix=$PREFIX --target=avr --disable-nls
$ make
$ make install
```
###Build `gcc` for AVR
```
$ cd ~/src/gcc-5.3.0
$ mkdir obj-avr
$ cd obj-avr
$ ../configure --prefix=$PREFIX --target=avr --enable-languages=c,c++ --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --enable-static --disable-shared --disable-nls --disable-libssp --with-dwarf2
$ make
$ make install
```
###Build `avr-libc` for AVR
For building the `avr-libc`, we have to specify the host build system. In my case it is `x86_64-unknown-cygwin`. You can look for build system type in the `gcc` configure notes for the proper `--build` specification to pass when you configure `avr-libc`.
```
$ cd ~/src/avr-libc-2.0.0
$ ./configure --prefix=$PREFIX --build=x86_64-unknown-cygwin --host=avr
$ make
$ make install
```
##Building 'dfu-programmer' for flashing the firmware via USB and installing the drivers
We can either build our own, or use the precomplied binaries. The precompiled binaries don't play well with `cygwin` so it is better to build them ourselves. The procedure for the precompiled binaries is included at the end of this guide.
### Build and Install the `libusb`
The `dfu-programmer` requires `libusb` so that it can interact with the USB system. These repos must be bootstrapped in order to create an appropriate `./configure` and `Makefile` for your system.
```
$ cd ~/src
$ git clone https://github.com/libusb/libusb.git
$ cd libusb
$ ./bootstrap.sh
$ ./configure
$ make
$ make install
```
### Build and Install the `dfu-programmer`
```
$ cd ~/src
$ git clone https://github.com/dfu-programmer/dfu-programmer.git
$ cd dfu-programmer
$ ./bootstrap.sh
$ ./configure
$ make
$ make install
```
Verify the installation with:
```
$ which dfu-programmer
/usr/local/bin/dfu-programmer
$ dfu-programmer
dfu-programmer 0.7.2
https://github.com/dfu-programmer/dfu-programmer
Type 'dfu-programmer --help' for a list of commands
'dfu-programmer --targets' to list supported target devices
```
If you are not getting the above result, you will not be able to flash the firmware!
###Install the USB drivers
The drivers are included in the windows binary version of [`dfu-programmer` 0.7.2](http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip).
```
$ cd ~/src
$ wget http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip
$ unzip dfu-programmer-win-0.7.2.zip -d dfu-programmer-win-0.7.2
```
or
The official drivers are found in [Atmel's `FLIP` installer](http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe). Download and then install `FLIP`. Upon installation, the drivers will be found in `C:\Program Files (x86)\Atmel\Flip 3.4.7\usb`.
Then, from an **administrator-privileged** `Windows` terminal, run the following command (adjust the path for username, etc. as necessary) and accept the prompt that pops up:
```
C:\> pnputil -i -a C:\cygwin64\home\Kevin\src\dfu-programmer-win-0.7.2\dfu-prog-usb-1.2.2\atmel_usb_dfu.inf
or
C:\> pnputil -i -a "C:\Program Files (x86)\Atmel\Flip 3.4.7\usb\atmel_usb_dfu.inf"
```
This should be the result:
```
Microsoft PnP Utility
Processing inf : atmel_usb_dfu.inf
Successfully installed the driver on a device on the system.
Driver package added successfully.
Published name : oem104.inf
Total attempted: 1
Number successfully imported: 1
```
Alternatively, the `Windows` driver can be installed when prompted by `Windows` when the keyboard is attached. Do not let `Windows` search for a driver; specify the path to search for a driver and point it to the `atmel_usb_dfu.inf` file.
##Building and Flashing the Planck firmware!
If you did everything else right. This part should be a snap! Grab the latest sources from `github`, make the Plank firmware, then flash it.
###Build Planck and Load the Firmware
```
$ cd ~/src
$ git clone https://github.com/qmk/qmk_firmware.git
$ cd qmk_firmware/keyboards/planck
$ make
```
Make sure there are no errors. You should end up with this or something similar:
```
Creating load file for Flash: planck.hex
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature planck.elf planck.hex
Creating load file for EEPROM: planck.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 --no-change-warnings -O ihex planck.elf planck.eep || exit 0
Creating Extended Listing: planck.lss
avr-objdump -h -S -z planck.elf > planck.lss
Creating Symbol Table: planck.sym
avr-nm -n planck.elf > planck.sym
Size after:
text data bss dec hex filename
18602 82 155 18839 4997 planck.elf
-------- end --------
```
If you do not get the above, you **did not** build the firmware, and you will have nothing to flash. If you have the fresh clone from `github`, it was probably something gone wrong in this install process, go check and see what didn't work and threw errors or what steps you might have missed.
But if everything went OK, you are ready to flash! Press the reset button on the bottom of the Planck, wait two seconds, then:
```
$ make dfu
```
.
.
.
profit!!!
##extra bits...
###Installing Precompiled `dfu-programmer` Binaries (not recommended for `cygwin`)
To install the `dfu-programmer` from the binaries, we must get if from [the `dfu-programmer` website](https://dfu-programmer.github.io/) ([0.7.2](http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip)).
Copy this file into your `cygwin` home\src directory. (For me, it is `C:\cygwin64\home\Kevin\src`), extract the files, move `dfu-programmer.exe` to `~/local/avr/bin`. Most obnoxiously, the `libusb0_x86.dll` and `libusb0.sys` need to be moved from `./dfu-prog-usb-1.2.2/x86/` to a directory in the `Windows` `PATH` and the `cygwin` `PATH`. This is because the `dfu-programmer` binary is `mingw` based, not `cygwin` based, so the `dlls` do not cooperate. I achieved acceptable pathing by moving the files to `C:\cygwin64\home\Kevin\local\avr\bin` Then, in a `WINDOWS` command prompt running (Adjusting your path for username, etc. as needed):
```
C:\> set PATH=%PATH%;C:\cygwin64\home\Kevin\local\avr\bin
```
Then, rename `libusb0_x86.dll` to `libusb0.dll`.
You can tell that you were successful by trying to execute 'dfu-programmer' from the 'cygwin' prompt:
```
$ which dfu-programmer
/home/Kevin/local/avr/bin/dfu-programmer
$ dfu-programmer
dfu-programmer 0.7.2
https://github.com/dfu-programmer/dfu-programmer
Type 'dfu-programmer --help' for a list of commands
'dfu-programmer --targets' to list supported target devices
```
If you are not getting the above result, you will not be able to flash the firmware!
- Try making sure your `PATH` variables are set correctly for both `Windows` and `cygwin`.
- Make sure the `dll` is named correctly.
- Do not extract it with `cygwin`'s `unzip` as it does not set the executable permission. If you did it anyway, do `chmod +x dfu-programmer.exe`.
- Still have problems? Try building it instead.
##Debugging Tools
These tools are for debugging your firmware, etc. before flashing. Theoretically, it can save your memory from wearing out. However, these tool do not work 100% for the Planck firmware.
### `gdb` for AVR
`gdb` has a simulator for AVR but it does not support all instructions (like WDT), so it immediately crashes when running the Planck firmware (because `lufa.c` disables the WDT in the first few lines of execution). But it can still be useful in debugging example code and test cases, if you know how to use it.
```
$ cd ~/src
$ git clone git://sourceware.org/git/binutils-gdb.git
$ cd binutils-gdb
$ mkdir obj-avr
$ cd obj-avr
$ ../configure --prefix=$PREFIX --target=avr --build=x86_64-unknown-cygwin --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --disable-nls --enable-static
$ make
$ make install
```
### `simulavr`
`simulavr` is an AVR simulator. It runs the complied AVR elfs. `simulavr` does not support the `atmega32u4` device... it does `atmega32` but that is not good enough for the firmware (no PORTE and other things), so you cannot run the Planck firmware. I use it to simulate ideas I have for features in separate test projects.
This one is a major pain in the butt because it has a lot of dependencies and it is buggy. I will do my best to explain it but... it was hard to figure out. A few things need to be changed in the 'Makefile' to make it work in `cygwin`.
```
$ cd ~/src
$ git clone https://github.com/Traumflug/simulavr.git
$ cd simulavr
$ ./bootstrap
$ ./configure --prefix=$PREFIX --enable-static --disable-tcl --disable-doxygen-doc
```
Edit `src/Makefile.am` now so that `-no-undefined` is included (I did this by removing the SYS_MINGW conditional surrounding `libsim_la_LDFLAGS += -no-undefined` and `libsimulavr_la_LDFLAGS += -no-undefined \ libsimulavr_la_LIBADD += $(TCL_LIB)`. Also, `$(EXEEXT)` is added after `kbdgentables` in two places.
```
$ make
$ make install
```
TODO:
- git repos for all sources
- command line magic for cygwin setup
- better options for `dfu-drivers`

View File

@@ -1,3 +1,12 @@
Atmega32u4 Fuse/Lock Bits for Planck/Atomic/Preonic
=========================
Low Fuse: 0x5E
High Fuse: 0x99
Extended Fuse: 0xF3
Lock Byte: 0xFF
ATMega168P Fuse/Lock Bits
=========================
This configuration is from usbasploader's Makefile.
@@ -38,3 +47,4 @@ This configuration is from usbasploader's Makefile.
# | | +----- LB 2..1 (No memory lock features enabled)
# | +--------- BLB0 2..1 (No restrictions for SPM or LPM accessing the Application section)
# +--------------- BLB1 2..1 (No restrictions for SPM or LPM accessing the Boot Loader section)

321
doc/HAND_WIRE.md Normal file
View File

@@ -0,0 +1,321 @@
# Quantum Hand-wiring Guide
Parts list:
* *x* keyswitches (MX, Matias, Gateron, etc)
* *x* diodes
* Keyboard plate (metal, plastic, cardboard, etc)
* Wire (strained for wiring to the Teensy, anything for the rows/columns)
* Soldering iron set at 600ºF or 315ºC (if temperature-controlled)
* Resin-cored solder (leaded or lead-free)
* Adequate ventilation/a fan
* Tweezers (optional)
* Wire cutters/snippers
## How the matrix works (why we need diodes)
The microcontroller (in this case, the Teensy 2.0) will be setup up via the firmware to send a logical 1 to the columns, one at a time, and read from the rows, all at once - this process is called matrix scanning. The matrix is a bunch of open switches that, by default, don't allow any current to pass through - the firmware will read this as no keys being pressed. As soon as you press one key down, the logical 1 that was coming from the column the keyswitch is attached to gets passed through the switch and to the corresponding row - check out the following 2x2 example:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
row0 ---(key0)---(key1) row0 ---(key0)---(key1)
| | | |
row1 ---(key2)---(key3) row1 ---(key2)---(key3)
The `x` represents that the column/row associated has a value of 1, or is HIGH. Here, we see that no keys are being pressed, so no rows get an `x`. For one keyswitch, keep in mind that one side of the contacts is connected to its row, and the other, its column.
When we press `key0`, `col0` gets connected to `row0`, so the values that the firmware receives for that row is `0b01` (the `0b` here means that this is a bit value, meaning all of the following digits are bits - 0 or 1 - and represent the keys in that column). We'll use this notation to show when a keyswitch has been pressed, to show that the column and row are being connected:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
x row0 ---(-+-0)---(key1) row0 ---(-+-0)---(key1)
| | | |
row1 ---(key2)---(key3) row1 ---(key2)---(key3)
We can now see that `row0` has an `x`, so has the value of 1. As a whole, the data the firmware receives when `key0` is pressed is
col0: 0b01
col1: 0b00
│└row0
└row1
A problem arises when you start pressing more than one key at a time. Looking at our matrix again, it should become pretty obvious:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
x row0 ---(-+-0)---(-+-1) x row0 ---(-+-0)---(-+-1)
| | | |
x row1 ---(key2)---(-+-3) x row1 ---(key2)---(-+-3)
Remember that this ^ is still connected to row1
The data we get from that is:
col0: 0b11
col1: 0b11
│└row0
└row1
Which isn't accurate, since we only have 3 keys pressed down, not all 4. This behavior is called ghosting, and only happens in odd scenarios like this, but can be much more common on a bigger keyboard. The way we can get around this is by placing a diode after the keyswitch, but before it connects to its row. A diode only allows current to pass through one way, which will protect our other columns/rows from being activated in the previous example. We'll represent a dioded matrix like this;
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
│ │ | │
(key0) (key1) (key0) (key1)
! │ ! │ ! | ! │
row0 ─────┴────────┘ │ row0 ─────┴────────┘ │
│ │ | │
(key2) (key3) (key2) (key3)
! ! ! !
row1 ─────┴────────┘ row1 ─────┴────────┘
In practical applications, the black line of the diode will be placed facing the row, and away from the keyswitch - the `!` in this case is the diode, where the gap represents the black line. A good way to remember this is to think of this symbol: `>|`
Now when we press the three keys, invoking what would be a ghosting scenario:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
│ │ │ │
(┌─┤0) (┌─┤1) (┌─┤0) (┌─┤1)
! │ ! │ ! │ ! │
x row0 ─────┴────────┘ │ x row0 ─────┴────────┘ │
│ │ │ │
(key2) (┌─┘3) (key2) (┌─┘3)
! ! ! !
row1 ─────┴────────┘ x row1 ─────┴────────┘
Things act as they should! Which will get us the following data:
col0: 0b01
col1: 0b11
│└row0
└row1
The firmware can then use this correct data to detect what it should do, and eventually, what signals it needs to send to the OS.
## The actual hand-wiring
### Getting things in place
When starting this, you should have all of your stabilisers and keyswitches already installed (and optionally keycaps). If you're using a Cherry-type stabiliser (plate-mounted only, obviously), you'll need to install that before your keyswitches. If you're using Costar ones, you can installed them afterwards.
To make things easier on yourself, make sure all of the keyswitches are oriented the same way (if they can be - not all layouts support this). Despite this, it's important to remember that the contacts on the keyswitches are completely symmetrical. We'll be using the keyswitch's left side contact for wiring the rows, and the right side one for wiring the columns.
Get your soldering iron heated-up and collect the rest of the materials from the part list at the beginning of the guide. Place your keyboard so that the bottoms of the keyswitches are accessible - it may be a good idea to place it on a cloth to protect your keyswitches/keycaps.
Before continuing, plan out where you're going to place your Teensy. If you're working with a board that has a large (6.25u) spacebar, it may be a good idea to place it in-between switches against the plate. Otherwise, you may want to trim some of the leads on the keyswitches where you plan on putting it - this will make it a little harder to solder the wire/diodes, but give you more room to place the Teensy.
### Preparing the diodes
It's a little easier to solder the diodes in place if you bend them at a 90º angle immediately after the black line - this will help to make sure you put them on the right way (direction matters), and in the correct position. The diodes will look like this when bent (with longer leads):
┌─────┬─┐
───┤ │ ├─┐
└─────┴─┘ │
We'll be using the long lead at the bent end to connect it to the elbow (bent part) of the next diode, creating the row.
### Soldering the diodes
Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. The straight end of the diode should be touching the left contact on the switch, and the bent end should be facing to the right and resting on the switch there, like this:
│o
┌┴┐ o
│ │ O
├─┤
└┬┘
└─────────────
Letting the diode rest, grab your solder, and touch both it and the soldering iron to the left contact at the same time - the rosin in the solder should make it easy for the solder to flow over both the diode and the keyswitch contact. The diode may move a little, and if it does, carefully position it back it place by grabbing the bent end of the diode - the other end will become hot very quickly. If you find that it's moving too much, using needle-nose pliers of some sort may help to keep the diode still when soldering.
The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face.
After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiney) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blow on it will accelerate this process.
When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this:
│o │o
┌┴┐ o ┌┴┐ o
│ │ O │ │ O
├─┤ ├─┤
└┬┘ └┬┘
└────────────────┴─────────────
After completing a row, use the wire cutters to trim the excess wire from the tops of the diodes, and from the right side on the final switch. This process will need to completed for each row you have.
When all of the diodes are completely soldered, it's a good idea to quickly inspect each one to ensure that your solder joints are solid and sturdy - repairing things after this is possible, but more difficult.
### Soldering the columns
You'll have some options in the next process - it's a good idea to insulate the column wires (since the diodes aren't), but if you're careful enough, you can use exposed wires for the columns - it's not recommended, though. If you're using single-cored wire, stripping the plastic off of the whole wire and feeding it back on is probably the best option, but can be difficult depending on the size and materials. You'll want to leave parts of the wire exposed where you're going to be solder it onto the keyswitch.
If you're using stranded wire, it's probably easiest to just use a lot of small wires to connect each keyswitch along the column. It's possible to use one and melt through the insulation, but this isn't recommended, will produce even more harmful fumes, and can ruin your soldering iron.
Before beginning to solder, it helps to have your wire pre-bent (if using single-cored), or at least have an idea of how you're going to route the column (especially if you're making a staggered board). Where you go in particular doesn't matter too much, as we'll be basing our keymap definitions on how it was wired - just make sure every key in a particular row is in a unique column, and that they're in order from left to right.
If you're not using any insulation, you can try to keep the column wires elevated, and solder them near the tips of the keyswitch contacts - if the wires are sturdy enough, they won't short out to the row wiring an diodes.
### Wiring things to the Teensy
Now that the matrix itself is complete, it's time to connect what you've done to the Teensy. You'll be needing the number of pins equal to your number of columns + your number of rows. There are some pins on the Teensy that are special, like D6 (the LED on the chip), or some of the UART, SPI, I2C, or PWM channels, but only avoid those if you're planning something in addition to a keyboard. If you're unsure about wanting to add something later, you should have enough pins in total to avoid a couple.
The pins you'll absolutely have to avoid are: GND, VCC, AREF, and RST - all the others are usable and accessible in the firmware.
Place the Teensy where you plan to put it - you'll have to cut wires to length in the next step, and you'll want to make sure they reach.
Starting with the first column on the right side, measure out how much wire you'll need to connect it to the first pin on the Teensy - it helps to pick a side that you'll be able to work down, to keep the wires from overlapping too much. It may help to leave a little bit of slack so things aren't too tight. Cut the piece of wire, and solder it to the Teensy, and then the column - you can solder it anywhere along the column, but it may be easiest at the keyswitch. Just be sure the wire doesn't separate from the keyswitch when soldering.
As you move from column to column, it'll be helpful to write the locations of the pins down. We'll use this data to setup the matrix in the future.
When you're done with the columns, start with the rows in the same process, from top to bottom, and write them all down. Again, you can solder anywhere along the row, as long as it's after the diode - soldering before the diode (on the keyswitch side) will cause that row not to work.
As you move along, be sure that the Teensy is staying in place - recutting and soldering the wires is a pain!
### Getting some basic firmware set-up
From here, you should have a working keyboard with the correct firmware. Before we attach the Teensy permanently to the keyboard, let's quickly get some firmware loaded onto the Teensy so we can test each keyswitch.
To start out, download [the firmware](https://github.com/qmk/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/).
The first thing we're going to do is create a new project using the script in the root directory of the firmware. In your terminal, run this command with `<project_name>` replaced by the name of your project - it'll need to be different from any other project in the `keyboards/` folder:
util/new_project.sh <project_name>
You'll want to navigate to the `keyboards/<project_name>/` folder by typing, like the print-out from the script specifies:
cd keyboards/<project_name>
#### config.h
The first thing you're going to want to modify is the `config.h` file. Find `MATRIX_ROWS` and `MATRIX_COLS` and change their definitions to match the dimensions of your keyboard's matrix.
Farther down are `MATRIX_ROW_PINS` and `MATRIX_COL_PINS`. Change their definitions to match how you wired up your matrix (looking from the top of the keyboard, the rows run top-to-bottom and the columns run left-to-right). Likewise, change the definition of `UNUSED_PINS` to match the pins you did not use (this will save power).
#### \<project_name\>.h
The next file you'll want to look at is `<project_name>.h`. You're going to want to rewrite the `KEYMAP` definition - the format and syntax here is extremely important, so pay attention to how things are setup. The first half of the definition are considered the arguments - this is the format that you'll be following in your keymap later on, so you'll want to have as many k*xy* variables here as you do keys. The second half is the part that the firmware actually looks at, and will contain gaps depending on how you wired your matrix.
We'll dive into how this will work with the following example. Say we have a keyboard like this:
┌───┬───┬───┐
│ │ │ │
├───┴─┬─┴───┤
│ │ │
└─────┴─────┘
This can be described by saying the top row is 3 1u keys, and the bottom row is 2 1.5u keys. The difference between the two rows is important, because the bottom row has an unused column spot (3 v 2). Let's say that this is how we wired the columns:
┌───┬───┬───┐
│ ┋ │ ┋ │ ┋ │
├─┋─┴─┬─┴─┋─┤
│ ┋ │ ┋ │
└─────┴─────┘
The middle column is unused on the bottom row in this example. Our `KEYMAP` definition would look like this:
#define KEYMAP( \
k00, k01, k02, \
k10, k11, \
) \
{ \
{ k00, k01, k02 }, \
{ k10, KC_NO, k11 }, \
}
Notice how the top half is spaced to resemble our physical layout - this helps us understand which keys are associated with which columns. The bottom half uses the keycode `KC_NO` where there is no keyswitch wired in. It's easiest to keep the bottom half aligned in a grid to help us make sense of how the firmware actually sees the wiring.
Let's say that instead, we wired our keyboard like this (a fair thing to do):
┌───┬───┬───┐
│ ┋ │ ┋│ ┋ │
├─┋─┴─┬┋┴───┤
│ ┋ │┋ │
└─────┴─────┘
This would require our `KEYMAP` definition to look like this:
#define KEYMAP( \
k00, k01, k02, \
k10, k11, \
) \
{ \
{ k00, k01, k02 }, \
{ k10, k11, KC_NO }, \
}
Notice how the `k11` and `KC_NO` switched places to represent the wiring, and the unused final column on the bottom row. Sometimes it'll make more sense to put a keyswitch on a particular column, but in the end, it won't matter, as long as all of them are accounted for. You can use this process to write out the `KEYMAP` for your entire keyboard - be sure to remember that your keyboard is actually backwards when looking at the underside of it.
#### keymaps/default.c
This is the actual keymap for your keyboard, and the main place you'll make changes as you perfect your layout. `default.c` is the file that gets pull by default when typing `make`, but you can make other files as well, and specify them by typing `make KEYMAP=<variant>`, which will pull `keymaps/<variant>.c`.
The basis of a keymap is its layers - by default, layer 0 is active. You can activate other layers, the highest of which will be referenced first. Let's start with our base layer.
Using our previous example, let's say we want to create the following layout:
┌───┬───┬───┐
│ A │ 1 │ H │
├───┴─┬─┴───┤
│ TAB │ SPC │
└─────┴─────┘
This can be accomplished by using the following `keymaps` definition:
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP( /* Base */
KC_A, KC_1, KC_H, \
KC_TAB, KC_SPC \
),
};
Note that the layout of the keycodes is similar to the physical layout of our keyboard - this make it much easier to see what's going on. A lot of the keycodes should be fairly obvious, but for a full list of them, check out [tmk_code/doc/keycode.txt](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/doc/keycode.txt) - there are also a lot of aliases to condense your keymap file.
It's also important to use the `KEYMAP` function we defined earlier - this is what allows the firmware to associate our intended readable keymap with the actual wiring.
#### Compiling your firmware
After you've written out your entire keymap, you're ready to get the firmware compiled and onto your Teensy. Before compiling, you'll need to get your [development environment set-up](/doc/BUILD_GUIDE.md) - you can skip the dfu-programmer instructions, but you'll need to download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html) to get the firmware on your Teensy.
Once everything is installed, running `make` in the terminal should get you some output, and eventually a `<project_name>.hex` file in that folder. If you're having trouble with this step, see the end of the guide for the trouble-shooting section.
Once you have your `<project_name>.hex` file, open up the Teensy loader application, and click the file icon. From here, navigate to your `QMK/keyboards/<project_name>/` folder, and select the `<project_name>.hex` file. Plug in your keyboard and press the button on the Teensy - you should see the LED on the device turn off once you do. The Teensy Loader app will change a little, and the buttons should be clickable - click the download button (down arrow), and then the reset button (right arrow), and your keyboard should be ready to go!
#### Testing your firmware
Carefully flip your keyboard over, open up a new text document, and try typing - you should get the characters that you put into your keymap. Test each key, and note the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys:
0. Flip the keyboard back over and short the keyswitch's contacts with a piece wire - this will eliminate the possibility of the keyswitch being bad and needing to be replaced.
1. Check the solder points on the keyswitch - these need to be plump and whole. If you touch it with a moderate amount of force and it comes apart, it's not strong enough.
2. Check the solder joints on the diode - if the diode is loose, part of your row may register, while the other may not.
3. Check the solder joints on the columns - if your column wiring is loose, part or all of the column may not work.
4. Check the solder joints on both sides of the wires going to/from the Teensy - the wires need to be fully soldered and connect to both sides.
5. Check the <project_name>.h file for errors and incorrectly placed `KC_NO`s - if you're unsure where they should be, instead duplicate a k*xy* variable.
6. Check to make sure you actually compiled the firmware and flashed the Teensy correctly. Unless you got error messages in the terminal, or a pop-up during flashing, you probably did everything correctly.
If you've done all of these things, keep in mind that sometimes you might have had multiple things affecting the keyswitch, so it doesn't hurt to test the keyswitch by shorting it out at the end.
#### Securing the Teensy, finishing your hardware, getting fancier firmware
Now that you have a working board, it's time to get things in their permanent positions. I've often used liberal amounts of hot glue to secure and insulate things, so if that's your style, start spreading that stuff like butter. Otherwise, double-sided tape is always an elegant solution, and electrical tape is a distant second. Due to the nature of these builds, a lot of this part is up to you and how you planned (or didn't plan) things out.
There are a lot of possibilities inside the firmware - check out the [readme](https://github.com/qmk/qmk_firmware/blob/master/readme.md) for a full feature list, and dive into the different project (Planck, Ergodox EZ, etc) to see how people use all of them. You can always stop by [the OLKB subreddit for help!](http://reddit.com/r/olkb)
## Trouble-shooting compiling
### Windows
#### fork: Resource temporarily unavailable
http://www.avrfreaks.net/forum/windows-81-compilation-error
### Mac
### Linux

151
doc/PCB_GUIDE.md Normal file
View File

@@ -0,0 +1,151 @@
# Planck Firmware Guide
## Setting up the environment
### Windows
1. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**.
2. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location.
3. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/qmk/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer.
4. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up.
5. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete!
### Mac
If you're using homebrew, you can use the following commands:
brew tap osx-cross/avr
brew install avr-libc
brew install dfu-programmer
Otherwise, these instructions will work:
1. Install Xcode from the App Store.
2. Install the Command Line Tools from `Xcode->Preferences->Downloads`.
3. Install [DFU-Programmer][dfu-prog].
### Linux
1. Install AVR GCC with your favorite package manager.
2. Install [DFU-Programmer][dfu-prog].
Note that, since it will be directly accessing USB hardware, the
`dfu-programmer` program needs to be run as root.
## Verify Your Installation
1. Clone the following repository: https://github.com/qmk/qmk_firmware
2. Open a Terminal and `cd` into `qmk_firmware/keyboards/planck`
3. Run `make`. This should output a lot of information about the build process.
## Using the built-in functions
Here is a list of some of the functions available from the command line:
* `make clean`: clean the environment - may be required in-between builds
* `make`: compile the code
* `make KEYMAP=<keymap>`: compile with the extended keymap file `extended_keymaps/extended_keymap_<keymap>.c`
* `make dfu`: build and flash the layout to the PCB
* `make dfu-force`: build and force-flash the layout to the PCB (may be require for first flash)
Generally, the instructions to flash the PCB are as follows:
1. Make changes to the appropriate keymap file
2. Save the file
3. `make clean`
4. Press the reset button on the PCB/press the key with the `RESET` keycode
5. `make <arguments> dfu` - use the necessary `KEYMAP=<keymap>` and/or `COMMON=true` arguments here.
## Troubleshooting
If you see something like this
0 [main] sh 13384 sync_with_child: child 9716(0x178) died before initialization with status code 0xC0000142
440 [main] sh 13384 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
after running 'make' on Windows than you are encountering a very popular issue with WinAVR on Windows 8.1 and 10.
You can easily fix this problem by replacing msys-1.0.dll in WinAVR/utils/bin with [this one](http://www.madwizard.org/download/electronics/msys-1.0-vista64.zip).
Restart your system and everything should work fine!
If you see this
dfu-programmer atmega32u4 erase
process_begin: CreateProcess(NULL, dfu-programmer atmega32u4 erase, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [dfu] Error 2
when trying to 'make dfu' on Windows you need to copy the dfu-programmer.exe to qmk_firmware/keyboards/planck.
## Quantum MK Firmware
### Keymap
Unlike the other keymaps, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/qmk/qmk_firmware/blob/master/quantum/keymap_common.h).
You can use modifiers with keycodes like this:
LCTL(KC_C)
Which will generate Ctrl+c. These are daisy-chainable, meaning you can do things like:
LCTL(LALT(KC_C))
That will generate Ctrl+Alt+c. The entire list of these functions is here:
* `LCTL()`: Left control
* `LSFT()` / `S()`: Left shift
* `LALT()`: Left alt/opt
* `LGUI()`: Left win/cmd
* `RCTL()`: Right control
* `RSFT()`: Right shift
* `RALT()`: Right alt/opt
* `RGUI()`: Right win/cmd
`S(KC_1)`-like entries are useful in writing keymaps for the Planck.
### Other keycodes
A number of other keycodes have been added that you may find useful:
* `CM_<key>`: the Colemak equivalent of a key (in place of `KC_<key>`), when using Colemak in software (`CM_O` generates `KC_SCLN`)
* `RESET`: jump to bootloader for flashing (same as press the reset button)
* `BL_STEP`: step through the backlight brightnesses
* `BL_<0-15>`: set backlight brightness to 0-15
* `BL_DEC`: lower the backlight brightness
* `BL_INC`: raise the backlight brightness
* `BL_TOGG`: toggle the backlight on/off
### Function layers
The extended keymap extends the number of function layers from 32 to the near-infinite value of 256. Rather than using `FN<num>` notation (still available, but limited to `FN0`-`FN31`), you can use the `FUNC(<num>)` notation. `F(<num>)` is a shortcut for this.
The function actions are unchanged, and you can see the full list of them [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/common/action_code.h). They are explained in detail [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keymap.md#2-action).
### Macros
Macros have been setup in the `keymaps/keymap_default.c` file so that you can use `M(<num>)` to access a macro in the `action_get_macro` section on your keymap. The switch/case structure you see here is required, and is setup for `M(0)` - you'll need to copy and paste the code to look like this (e.g. to support `M(3)`):
switch(id) {
case 0:
return MACRODOWN(TYPE(KC_A), END);
break;
case 1:
return MACRODOWN(TYPE(KC_B), END);
break;
case 2:
return MACRODOWN(TYPE(KC_C), END);
break;
case 3:
return MACRODOWN(TYPE(KC_D), END);
break;
}
return MACRO_NONE;
`MACRODOWN()` is a shortcut for `(record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)` which tells the macro to execute when the key is pressed. Without this, the macro will be executed on both the down and up stroke.
[cygwin]: https://www.cygwin.com/
[mingw]: http://www.mingw.org/
[mhv]: https://infernoembedded.com/products/avr-tools
[winavr]: http://winavr.sourceforge.net/
[crosspack]: http://www.obdev.at/products/crosspack/index.html
[dfu-prog]: http://dfu-programmer.sourceforge.net/

View File

@@ -1,9 +1,4 @@
TMK Keyboard Firmware Collection
================================
This is a keyboard firmware with some useful features for Atmel AVR controller.
Source code is available here: <http://github.com/tmk/tmk_keyboard>
# TMK Documenation
Features
--------
@@ -26,30 +21,56 @@ These features can be used in your keyboard.
* Backlight - Control backlight levels
Projects
--------
You can find some keyboard specific projects under `converter` and `keyboard` directory.
## Main projects
### OLKB products
* [planck](keyboards/planck/) - [Planck] Ortholinear 40% keyboard
* [preonic](keyboards/preonic/) - [Preonic] Ortholinear 50% keyboard
* [atomic](keyboards/atomic/) - [Atomic] Ortholinear 60% keyboard
### Ergodox EZ
* [ergodox_ez](keyboards/ergodox/ez) - [Ergodox_EZ] Assembled split keyboard
## Other projects
### converter
* [ps2_usb](converter/ps2_usb/) - [PS/2 keyboard to USB][GH_ps2]
* [adb_usb](converter/adb_usb/) - [ADB keyboard to USB][GH_adb]
* [m0110_usb](converter/m0110_usb) - [Machintosh 128K/512K/Plus keyboard to USB][GH_m0110]
* [m0110_usb](converter/m0110_usb) - [Macintosh 128K/512K/Plus keyboard to USB][GH_m0110]
* [terminal_usb](converter/terminal_usb/) - [IBM Model M terminal keyboard(PS/2 scancode set3) to USB][GH_terminal]
* [news_usb](converter/news_usb/) - [Sony NEWS keyboard to USB][GH_news]
* [x68k_usb](converter/x68k_usb/) - [Sharp X68000 keyboard to USB][GH_x68k]
* [sun_usb](converter/sun_usb/) - [Sun] to USB(type4, 5 and 3?)
* [pc98_usb](converter/pc98_usb/) - [PC98] to USB
* [usb_usb](converter/usb_usb/) - USB to USB(experimental)
* [ascii_usb](converter/ascii_usb/) - ASCII(Serial console terminal) to USB
* [ibm4704_usb](converter/ibm4704_usb) - [IBM 4704 keyboard Converter][GH_ibm4704]
### keyboard
* [hhkb](keyboard/hhkb/) - [Happy Hacking Keyboard pro][GH_hhkb] **my main board**
* [gh60](keyboard/gh60/) - [GH60] DIY 60% keyboard [prototype][GH60_proto] **my second board**
* [hbkb](keyboard/hbkb/) - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod)
* [hid_liber](keyboard/hid_liber/) - [HID liberation][HID_liber] controller (by alaricljs)
* [phantom](keyboard/phantom/) - [Phantom] keyboard (by Tranquilite)
* [IIgs_Standard](keyboard/IIgs/) - Apple [IIGS] keyboard mod(by JeffreySung)
* [macway](keyboard/macway/) - [Compact keyboard mod][GH_macway] [retired]
* [KMAC](keyboard/kmac/) - Korean custom keyboard
* [hhkb](keyboards/hhkb/) - [Happy Hacking Keyboard pro][GH_hhkb] hasu's main board
* [gh60](keyboards/gh60/) - [GH60] DIY 60% keyboard [prototype][GH60_proto] hasu's second board
* [hbkb](keyboards/hbkb/) - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod)
* [hid_liber](keyboards/hid_liber/) - [HID liberation][HID_liber] controller (by alaricljs)
* [phantom](keyboards/phantom/) - [Phantom] keyboard (by Tranquilite)
* [IIgs_Standard](keyboards/IIgs/) - Apple [IIGS] keyboard mod(by JeffreySung)
* [macway](keyboards/macway/) - [Compact keyboard mod][GH_macway] [retired]
* [KMAC](keyboards/kmac/) - Korean custom keyboard
* [Lightsaber](keyboards/lightsaber/) - Korean custom keyboard
* [Infinity](keyboards/infinity/) - Massdrop [Infinity keyboard][Infinity]
* [NerD](keyboards/nerd/) - Korean custom keyboard
* [KittenPaw](keyboards/kitten_paw) - Custom Majestouch controller
* [Lightpad](keyboards/lightpad) - Korean custom keypad
* [ghost_squid](keyboards/ghost_squid/) - [The Ghost Squid][ghost_squid] controller for [Cooler Master QuickFire XT][cmxt]
### Extenal projects using tmk_keyboard
* [ErgoDox_cub-uanic][cub-uanic] - Split Ergonomic Keyboard [ErgoDox][ergodox_org]
* [mcdox][mcdox_tmk] - [mcdox][mcdox]
[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930
[GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047
@@ -61,6 +82,7 @@ You can find some keyboard specific projects under `converter` and `keyboard` di
[GH_terminal]: http://geekhack.org/showwiki.php?title=Island:27272
[GH_x68k]: http://geekhack.org/showwiki.php?title=Island:29060
[GH_hbkb]: http://geekhack.org/showwiki.php?title=Island:29483
[GH_ibm4704]: http://geekhack.org/index.php?topic=54706.0
[HID_liber]: http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions
[Phantom]: http://geekhack.org/index.php?topic=26742
[GH60]: http://geekhack.org/index.php?topic=34959
@@ -68,33 +90,45 @@ You can find some keyboard specific projects under `converter` and `keyboard` di
[PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801
[Sun]: http://en.wikipedia.org/wiki/Sun-3
[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS
[Infinity]: https://www.massdrop.com/buy/infinity-keyboard-kit
[ghost_squid]: http://deskthority.net/wiki/Costar_replacement_controllers#The_Ghost_Squid
[cmxt]: http://gaming.coolermaster.com/en/products/keyboard/quickfirext/
[ergodox_org]: http://ergodox.org/
[cub-uanic]: https://github.com/cub-uanic/tmk_keyboard/tree/master/keyboard/ergodox
[mcdox]: https://github.com/DavidMcEwan/mcdox
[mcdox_tmk]: https://github.com/DavidMcEwan/tmk_keyboard/tree/master/keyboard/mcdox
[Planck]: http://olkb.co/planck
[Preonic]: http://olkb.co/preonic
[Atomic]: http://olkb.co/atomic
[Ergodox_EZ]: https://www.indiegogo.com/projects/ergodox-ez-an-incredible-mechanical-keyboard
License
-------
**GPLv2** or later. Some protocol files are under **Modified BSD License**.
LUFA, PJRC and V-USB stack have their own license respectively.
Third party libraries like LUFA, PJRC and V-USB have their own license respectively.
Build Firmware and Program Controller
-------------------------------------
See [doc/build.md](doc/build.md).
See [build environment setup](/readme.md#build-environment-setup), or the readme in the particular keyboards/* folder.
Change your keymap
------------------
See [doc/keymap.md](doc/keymap.md).
See [doc/keymap.md](tmk_core/doc/keymap.md).
Magic Comannds
Magic Commands
--------------
To see help press `Magic` + `H`.
`Magic` key bind may be `LShift` + `RShift` in many project, but `Power` key on ADB converter. `Magic` keybind can be vary on each project, check `config.h` in project directory.
`Magic` key combination is `LShift` + `RShift` in many project, but `Power` key on ADB converter.
`Magic` keybind can be vary on each project, check `config.h` in project directory.
Following commands can be also executed with `Magic` + key. In console mode `Magic` keybind is not needed.
@@ -118,13 +152,14 @@ Following commands can be also executed with `Magic` + key. In console mode `Mag
Caps: Lock Keyboard(Child Proof)
Paus: jump to bootloader
**TBD**
### Boot Magic Configuration - Virtual DIP Switch
Boot Magic are executed during boot up time. Press Magic key below then pulgin keyboard cable.
Boot Magic Configuration - Virtual DIP Switch
---------------------------------------------
Boot Magic are executed during boot up time. Press Magic key below then plug in keyboard cable.
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.
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 [common/bootmagic.h](common/bootmagic.h).
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).
#### General
- Skip reading EEPROM to start with default configuration(`ESC`)
@@ -141,12 +176,13 @@ To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be
#### Keymap
- Swap Control and CapsLock(`Left Control`)
- Change CapsLock to Control(`Casp Lock`)
- Change CapsLock to Control(`Caps Lock`)
- Swap LeftAlt and Gui(`Left Alt`)
- Swap RightAlt and Gui(`Right Alt`)
- Disable Gui(`Left Gui`)
- Swap Grave and Escape(`Grave`)
- Swap BackSlash and BackSpace(`Back Slash`)
- Enable NKRO on boot(`N`)
#### Default Layer
- Set Default Layer to 0(`0`)
@@ -158,112 +194,45 @@ To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be
- Set Default Layer to 6(`6`)
- Set Default Layer to 7(`7`)
#### Caution
Unintentional use of this feature will cause user confusion.
TODO: Magic key combination to avoid unintentional press during plug in
**TBD**
Mechanical Locking support
--------------------------
This feature makes it possible for you to use mechanical switch for `CapsLock`, `NumLock` or `ScrollLock`. To enable this feature define these macros in `config.h` and use `KC_LCAP`, `KC_LNUM` or `KC_LSCR` in keymap for locking key instead of normal `KC_CAPS`, `KC_NLCK` or `KC_SLCK`. Resync option tries to keep lock switch state consistent with keyboard LED state.
This feature makes it possible for you to use mechanical locking switch for `CapsLock`, `NumLock`
or `ScrollLock`. To enable this feature define these macros in `config.h` and use `KC_LCAP`, `KC_LN
UM` or `KC_LSCR` in keymap for locking key instead of normal `KC_CAPS`, `KC_NLCK` or `KC_SLCK`. Res
ync option tries to keep switch state consistent with keyboard LED state.
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
Start Your Own Project
-----------------------
**TBD**
### Config.h Options
#### 1. USB vendor/product ID and device description
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0xBEEF
#define MANUFACTURER t.m.k.
#define PRODUCT Macway mod
#define DESCRIPTION t.m.k. keyboard firmware for Macway mod
#### 2. Keyboard matrix configuration
#define MATRIX_ROWS 8
#define MATRIX_COLS 8
#define MATRIX_HAS_GHOST
Architecture
------------
Architecture Diagram
+---------------+---------------+-------------+
| Host | Keyboard | Matrix, LED |
___________ |-----------+-+ +-------------+ | +-----------|
/ /| Keys/Mouse | Protocol |d| | Action | | | Protocol |
/__________/ |<-----------| LUFA |r| | Layer, Tap | | | Matrix |
|.--------.| | LED | V-USB |i| |-------------| | | PS/2,IBM | __________________
|| || |----------->| PJRC |v| | Keymap | | | ADB,M0110| Keys / /_/_/_/_/_/_/_/ /|
|| Host || | Console | iWRAP(BT)|e| | Mousekey | | | SUN/NEWS |<----------/ /_/_/_/_/_/_/_/ / /
||________||/.<-----------| UART |r| | Report | | | X68K/PC98| Control / /_/_/_/_/_/_/_/ / /
`_========_'/| |---------------------------------------------|-------->/___ /_______/ ___/ /
|_o______o_|/ | Sendchar, Print, Debug, Command, ... | |_________________|/
+---------------------------------------------+ Keyboard
Debuging
Debugging
--------
Use PJRC's `hid_listen` to see debug messages. You can use the tool for debug even if firmware use LUFA stack.
You can use xprintf() to display debug info on `hid_listen`, see `common/xprintf.h`.
You can use xprintf() to display debug info on `hid_listen`, see `tmk_core/common/xprintf.h`.
Files and Directories
-------------------
### Top
* common/ - common codes
* protocol/ - keyboard protocol support
* keyboard/ - keyboard projects
* tmk_core/ - core library
* keyboards/ - keyboard projects
* converter/ - protocol converter projects
* doc/ - documents
* common.mk - Makefile for common
* protoco.mk - Makefile for protocol
* rules.mk - Makefile for build rules
### Common
* host.h
* host_driver.h
* keyboard.h
* command.h
* keymap.h
* action.h
* keycode.h
* matrix.h
* led.h
* mousekey.h
* report.h
* debug.h
* print.h
* bootloader.h
* sendchar.h
* timer.h
* util.h
### Keyboard Protocols
* lufa/ - LUFA USB stack
* pjrc/ - PJRC USB stack
* vusb/ - Objective Development V-USB
* iwrap/ - Bluetooth HID for Bluegiga iWRAP
* ps2.c - PS/2 protocol
* adb.c - Apple Desktop Bus protocol
* m0110.c - Macintosh 128K/512K/Plus keyboard protocol
* news.c - Sony NEWS keyboard protocol
* x68k.c - Sharp X68000 keyboard protocol
* serial_soft.c - Asynchronous Serial protocol implemented by software
Conding Style
Coding Style
-------------
- Doesn't use Tab to indent, use 4-spaces instead.
@@ -271,4 +240,4 @@ Conding Style
Other Keyboard Firmware Projects
------------------
See [doc/other_projects.md](doc/other_projects.md).
You can learn a lot about keyboard firmware from these. See [doc/other_projects.md](tmk_core/doc/other_projects.md).

View File

@@ -14,7 +14,7 @@ dfj's NKRO(2010/06)
http://geekhack.org/showthread.php?p=204389#post204389
Terminogy
Terminology
---------
NKRO
ghost
@@ -26,7 +26,7 @@ membrane
OS Support Status
-----------------
USB NKRO is possible *without* a custom driver.
At least following OSes supports.
At least following OS's supports.
Windows7 64bit
WindowsXP
Windows2000 SP4
@@ -37,7 +37,7 @@ At least following OSes supports.
Custom Driver for USB NKRO
--------------------------
NOT NEEDED
at least when using fllowing report formats on Windows, Linux or MacOSX.
at least when using following report formats on Windows, Linux or MacOSX.
USB NKRO methods
@@ -47,8 +47,8 @@ USB NKRO methods
If the keyboard has 2 virtual keyboard with Standard report(6KRO), it gets 12KRO.
Using this method means the keyboard is a composite device.
2. Exteded report
It needs large report size for this method to achive NKRO.
2. Extended report
It needs large report size for this method to achieve NKRO.
If a keyboard has 101keys, it needs 103byte report. It seems to be inefficient.
3. Bitmap report
@@ -122,8 +122,8 @@ Considerations
Compatibility
boot protocol
minor/old system
Some BIOS doesn't send SET_PROTCOL request, a keyboard can't switch to boot protocol mode.
This may cuase a problem on a keyboard which uses other report than Standard.
Some BIOS doesn't send SET_PROTOCOL request, a keyboard can't switch to boot protocol mode.
This may cause a problem on a keyboard which uses other report than Standard.
Reactivity
USB polling time
OS/Driver processing time

27
doc/VAGRANT_GUIDE.md Normal file
View File

@@ -0,0 +1,27 @@
# Quick Start Directions
This project includes a Vagrantfile that will allow you to build a new firmware for your keyboard very easily without major changes to your primary operating system. This also ensures that when you clone the project and perform a build, you have the exact same environment as anyone else using the Vagrantfile to build. This makes it much easier for people to help you troubleshoot any issues you encounter.
## Requirements
Using the `/Vagrantfile` in this repository requires you have [Vagrant](http://www.vagrantup.com/) as well as [VirtualBox](https://www.virtualbox.org/) (or [VMware Workstation](https://www.vmware.com/products/workstation) and [Vagrant VMware plugin](http://www.vagrantup.com/vmware) but the (paid) VMware plugin requires a licensed copy of VMware Workstation/Fusion).
*COMPATIBILITY NOTICE* Certain versions of Virtualbox 5 appear to have an incompatibility with the Virtualbox extensions installed in the boxes in this Vagrantfile. If you encounter any issues with the /vagrant mount not succeeding, please upgrade your version of Virtualbox to at least 5.0.12. **Alternately, you can try running the following command:** `vagrant plugin install vagrant-vbguest`
Other than having Vagrant and Virtualbox installed and possibly a restart of your computer afterwards, you can simple run a 'vagrant up' anywhere inside the folder where you checked out this project and it will start a Linux virtual machine that contains all the tools required to build this project. There is a post Vagrant startup hint that will get you off on the right foot, otherwise you can also reference the build documentation below.
Build Firmware and Program Controller
-------------------------------------
See [/doc/BUIDE_GUIDE.md](/doc/BUILD_GUIDE.md), or the readme in the particular keyboards/* folder.
Change your keymap
------------------
See [/doc/keymap.md](/doc/keymap.md).
## Flashing the firmware
The "easy" way to flash the firmware is using a tool from your host OS like the Teensy programming app. [ErgoDox EZ](/keyboards/ergodox/readme.md) gives a great example.
If you want to program via the command line you can uncomment the ['modifyvm'] lines in the Vagrantfile to enable the USB passthrough into Linux and then program using the command line tools like dfu-util/dfu-programmer or you can install the Teensy CLI version.

View File

@@ -0,0 +1,96 @@
# How keys are registered, and interpreted by computers
In this file, you can will learn the concepts of how keyboards work over USB,
and you'll be able to better understand what you can expect from changing your
firmware directly.
## Schematic view
Whenever you type on 1 particular key, here is the chain of actions taking
place:
``` text
+------+ +-----+ +----------+ +----------+ +----+
| User |-------->| Key |------>| Firmware |----->| USB wire |---->| OS |
+------+ +-----+ +----------+ +----------+ |----+
```
This scheme is a very simple view of what's going on, and more details follow
in the next sections.
## 1. You Press a Key
Whenever you press a key, the firmware of your keyboard can register this event.
It can register when the key is pressed, held and released.
This usually happens with a [periodic scan of key presses with a frequency around 100 hz](https://github.com/benblazak/ergodox-firmware/blob/master/references.md#typical-keyboard-information).
This speed often is limited by the mechanical key response time, the protocol
to transfer those key presses (here USB HID), and by the software it is used in.
## 2. What the Firmware Sends
The [HID specification](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf)
tells what a keyboard can actually send through USB to have a chance to be
properly recognised. This includes a pre-defined list of keycodes which are
simple numbers from `0x00` to `0xE7`. The firmware assigns a keycode to each
key of the keyboard.
The firmware does not send actually letters or characters, but only keycodes.
Thus, by modifying the firmware, you only can modify what keycode is sent over
USB for a given key.
## 3. What the Operating System Does
Once the keycode reaches the operating system, a piece of software has to have
it match an actual character thanks to a keyboard layout. For example, if your
layout is set to QWERTY, a sample of the matching table is as follow:
``` text
| keycode | character |
|---------+-----------|
| 0x04 | a/A |
| 0x05 | b/B |
| 0x06 | c/C |
| ... | ... |
| 0x1C | y/Y |
| 0x1D | z/Z |
| ... | ... |
|---------+-----------|
```
## Back to the firmware
As the layout is generally fixed (unless you create your own), the firmware can
actually call a keycode by its layout name directly to ease things for you.
This is exactly what is done here with `KC_A` actually representing `0x04` in
QWERTY. The full list can be found in `keycode.txt`.
## List of Characters You Can Send
Putting aside shortcuts, having a limited set of keycodes mapped to a limited
layout means that **the list of characters you can assign to a given key only
is the ones present in the layout**.
For example, this means that if you have a QWERTY US layout, and you want to
assign 1 key to produce `€` (euro currency symbol), you are unable to do so,
because the QWERTY US layout does not have such mapping. You could fix that by
using a QWERTY UK layout, or a QWERTY US International.
You may wonder why a keyboard layout containing all of Unicode is not devised
then? The limited number of keycode available through USB simply disallow such
a thing.
## How to (Maybe) Enter Unicode Characters
You can have the firmware send *sequences of keys* to use the [software Unicode
Input
Method](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input) of
the target operating system, thus effectively entering characters independently
of the layout defined in the OS.
Yet, it does come with multiple disadvantages:
- Tied to a specific OS a a time (need recompilation when changing OS);
- Within a given OS, does not work in all software;
- Limited to a subset of Unicode on some systems.

View File

@@ -1,27 +1,27 @@
Build Firmware and Program Controller
=====================================
## This guide may be out-dated - use doc/BUILD_GUIDE.md instead
Download and Install
--------------------
### 1. Install Tools
First, you need tools to build firmware and program your controller. I assume you are on Windows here.
1. **Toolchain** Install [WinAVR][winavr]. This is old but works well for this purpose. `WinAVR` is a tool set to build firmware including C compiler(gcc) and make commands. You can use [CrossPack][crosspack] instead if you are on Mac.
1. **Toolchain** On Windows install [MHV AVR Tools][mhv] for AVR GCC compiler and [Cygwin][cygwin](or [MinGW][mingw]) for shell terminal. On Mac you can use [CrossPack][crosspack]. On Linux you can install AVR GCC (and avr-libc) with your favorite package manager or run the avr_setup.sh script in the root of this repository.
2. **Programmer** Install [Atmel FLIP][flip]. `FLIP` is a tool to program(load) firmware into AVR controller via DFU bootloader. AVR USB chips including ATmega32U4 has DFU bootloader by factory default. You can also use [dfu-programmer][dfu-prog] instead if you are on Mac or Linux.
2. **Programmer** On Windows install [Atmel FLIP][flip]. On Mac and Linux install [dfu-programmer][dfu-prog].
3. **Driver** At first time you start DFU bootloader on Chip 'Found New Hardware Wizard' will come up on Windows. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you shall need to update its driver on 'Device Manager'. You will find the driver in `FLIP` install directory like: C:\Program Files (x86)\Atmel\Flip 3.4.5\usb\. If you use `dfu-programmer` install its driver.
3. **Driver** On Windows you start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you shall need to update its driver on 'Device Manager'. You will find the driver in `FLIP` install directory like: C:\Program Files (x86)\Atmel\Flip 3.4.5\usb\. In case of `dfu-programmer` use its driver.
If you use PJRC Teensy you don't need step 2 and 3 above, just get [Teensy loader][teensy-loader].
### 2. Download source
You can find firmware source at github:
You can find firmware source at github:
- <https://github.com/tmk/tmk_keyboard>
If you are familiar with `Git` tools you are recommended to use it but you can also download zip archive from:
If you are familiar with `Git` tools you are recommended to use it but you can also download zip archive from:
- <https://github.com/tmk/tmk_keyboard/archive/master.zip>
@@ -29,7 +29,7 @@ If you are familiar with `Git` tools you are recommended to use it but you can a
Build firmware
--------------
### 1. Open terminal
Open terminal window to get access to commands. You can use `cmd` in Windows or `Terminal.app` on Mac OSX. In Windows press `Windows` key and `R` then enter `cmd` in 'Run command' dialog showing up.
Open terminal window to get access to commands. Use Cygwin(or MingGW) `shell terminal` in Windows or `Terminal.app` on Mac OSX. In Windows press `Windows` key and `R` then enter `cmd` in 'Run command' dialog showing up.
### 2. Change directory
Move to project directory in the firmware source.
@@ -40,7 +40,7 @@ Move to project directory in the firmware source.
Build firmware using GNU `make` command. You'll see `<project>_<variant>.hex` file in that directory unless something unexpected occurs in build process.
mkae -f Makefile.<variant> clean
make -f Makefile.<variant> clean
make -f Makefile.<variant>
@@ -71,14 +71,14 @@ Or to program with `dfu-programmer` run:
#### FLIP GUI tutorial
1. On menu bar click Device -> Select, then. `ATmega32u4`.
2. On menu bar click Settings -> Communication -> USB, then click 'Open' button on 'USB Port Connection' dialog.
At this point you'll see greyouted widgets on the app get colored and ready.
At this point you'll see grey-outed widgets on the app get colored and ready.
3. On menu bar click File -> Load HEX File, then select your firmware hex file on File Selector dialog.
4. On 'Operations Flow' panel click 'Run' button to load the firmware binary to the chip. Note that you should keep 'Erase', 'Blank Check', 'Program' and 'Verify' check boxes selected.
5. Re-plug USB cord or click 'Start Application' button to restart your controller.
Done.
See also these instaructions if you need.
See also these instructions if you need.
- <http://code.google.com/p/micropendous/wiki/LoadingFirmwareWithFLIP>
- <http://www.atmel.com/Images/doc7769.pdf>
@@ -95,11 +95,14 @@ Or use this command if you have command line version of Teensy Loader installed.
### 4. Program with Other programmer
You may want to use other programmer like `avrdude` with AVRISPmkII, Aruduino or USBasp. In that case you can still use make target `program` for build with configuring `PROGRAM_CMD` in Makefile.
You may want to use other programmer like `avrdude` with AVRISPmkII, Arduino or USBasp. In that case you can still use make target `program` for build with configuring `PROGRAM_CMD` in Makefile.
$ make -f Makefile.<variant> program
[cygwin]: https://www.cygwin.com/
[mingw]: http://www.mingw.org/
[mhv]: https://infernoembedded.com/products/avr-tools
[winavr]: http://winavr.sourceforge.net/
[crosspack]: http://www.obdev.at/products/crosspack/index.html
[flip]: http://www.atmel.com/tools/FLIP.aspx
@@ -116,14 +119,18 @@ Makefile Options
#MCU = at90usb1286 # Teensy++ 2.0
F_CPU = 16000000
Set your MCU and its clock in Hz.
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Atmel DFU loader 4096
# LUFA bootloader 4096
OPT_DEFS += -DBOOTLOADER_SIZE=4096
If you are using PJRC Teensy use `512` for `BOOTLOADER_SIZE`, otherwise use `4096` unless you are sure.
### 2. Features
Optional. Note that ***comment out*** to disable them.
Optional. Note that ***comment out*** with `#` to disable them.
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
@@ -135,7 +142,7 @@ Optional. Note that ***comment out*** to disable them.
#BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
### 3. Programmer
Optional. Set proper command for your controller, bootloader and programmer. This command can be used with `make program`. Not needed if you use `FLIP`, `dfu-programmer` or `Teesy Loader`.
Optional. Set proper command for your controller, bootloader and programmer. This command can be used with `make program`. Not needed if you use `FLIP`, `dfu-programmer` or `Teensy Loader`.
# avrdude with AVRISPmkII
PROGRAM_CMD = avrdude -p $(MCU) -c avrispmkII -P USB -U flash:w:$(TARGET).hex
@@ -152,13 +159,13 @@ Config.h Options
----------------
### 1. Magic command key combination
#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT)))
#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT)))
### 2. Mechanical Locking Support for CapsLock
/* Mechanical locking CapsLock support. Use KC_LCAP instead of KC_CAPS in keymap */
#define CAPSLOCK_LOCKING_ENABLE
/* Locking CapsLock resynchronize hack */
/* Locking CapsLock re-synchronize hack */
#define CAPSLOCK_LOCKING_RESYNC_ENABLE
### 3. Disable Debug and Print

View File

@@ -2,7 +2,7 @@ Keycode Symbol Table
====================
Keycodes are defined in `common/keycode.h`.
Range of 00-A4 and E0-E7 are identical with HID Usage:
<http://www.usb.org/developers/devclass_docs/Hut1_11.pdf>
<http://www.usb.org/developers/hidpage/Hut1_12v2.pdf>
Virtual keycodes are defined out of above range to support special actions.
@@ -62,7 +62,7 @@ KC_NONUS_HASH KC_NUHS 32 Keyboard Non-US # and ~
KC_SCOLON KC_SCLN 33 Keyboard ; and :
KC_QUOTE KC_QUOT 34 Keyboard and “
KC_GRAVE KC_GRV 35 Keyboard Grave Accent and Tilde
KC_COMMA KC_COMM 36 Keyboard, and <
KC_COMMA KC_COMM 36 Keyboard , and <
KC_DOT 37 Keyboard . and >
KC_SLASH KC_SLSH 38 Keyboard / and ?
KC_CAPSLOCK KC_CAPS 39 Keyboard Caps Lock
@@ -81,10 +81,10 @@ KC_F12 45 Keyboard F12
KC_PSCREEN KC_PSCR 46 Keyboard PrintScreen1
KC_SCKLOCK KC_SLCK 47 Keyboard Scroll Lock11
KC_PAUSE KC_PAUS 48 Keyboard Pause1
KC_INSERT KC_INT 49 Keyboard Insert1
KC_INSERT KC_INS 49 Keyboard Insert1
KC_HOME 4A Keyboard Home1
KC_PGUP 4B Keyboard PageUp1
KC_DELETE KC_DELETE 4C Keyboard Delete Forward
KC_DELETE KC_DEL 4C Keyboard Delete Forward
KC_END 4D Keyboard End1
KC_PGDOWN KC_PGDN 4E Keyboard PageDown1
KC_RIGHT KC_RGHT 4F Keyboard RightArrow1
@@ -92,7 +92,7 @@ KC_LEFT 50 Keyboard LeftArrow1
KC_DOWN 51 Keyboard DownArrow1
KC_UP 52 Keyboard UpArrow1
KC_NUMLOCK KC_NLCK 53 Keypad Num Lock and Clear11
KC_KP_SLASH KC_PSLS 54 Keypad /1
KC_KP_SLASH KC_PSLS 54 Keypad /
KC_KP_ASTERISK KC_PAST 55 Keypad *
KC_KP_MINUS KC_PMNS 56 Keypad -
KC_KP_PLUS KC_PPLS 57 Keypad +
@@ -174,7 +174,7 @@ KC_CLEAR_AGAIN A2 Keyboard Clear/Again
KC_CRSEL A3 Keyboard CrSel/Props
KC_EXSEL A4 Keyboard ExSel
/* Modifiers */
KC_LCTRL KC_LCTRL E0 Keyboard LeftControl
KC_LCTRL KC_LCTL E0 Keyboard LeftControl
KC_LSHIFT KC_LSFT E1 Keyboard LeftShift
KC_LALT E2 Keyboard LeftAlt
KC_LGUI E3 Keyboard Left GUI(Windows/Apple/Meta key)

View File

@@ -68,7 +68,7 @@ On the other hand, you shall change `layer_state` to overlay base layer with som
Note that ***higher layer has higher priority on stack of layers***, namely firmware falls down from top layer to bottom to look up keycode. Once it spots keycode other than **`KC_TRNS`**(transparent) on a layer it stops searching and lower layers aren't referred.
You can place `KC_TRNS` on overlay layer changes just part of layout to fall back on lower or base layer.
Key with `KC_TRANS` doen't has its own keycode and refers to lower valid layers for keycode, instead.
Key with `KC_TRANS` doesn't has its own keycode and refers to lower valid layers for keycode, instead.
See example below.
@@ -155,12 +155,12 @@ You can find other keymap definitions in file `keymap.c` located on project dire
## 1. Keycode
See [`common/keycode.h`](../common/keycode.h) or keycode table below for the detail. Keycode is internal **8bit code** to inidicate action performed on key in keymap. Keycode has `KC_` prefixed symbol respectively. Most of keycodes like `KC_A` have simple action registers key to host on press and unregister on release, while some of other keycodes has some special actions like `Fn` keys, Media contorl keys, System control keys and Mousekeys.
See [`common/keycode.h`](../common/keycode.h) or keycode table below for the detail. Keycode is internal **8bit code** to indicate action performed on key in keymap. Keycode has `KC_` prefixed symbol respectively. Most of keycodes like `KC_A` have simple action registers key to host on press and unregister on release, while some of other keycodes has some special actions like `Fn` keys, Media control keys, System control keys and Mousekeys.
***In `KEYMAP()` macro you should omit prefix part `KC_` of keycode to keep keymap compact.*** For example, just use `A` instead you place `KC_A` in `KEYMAP()`. Some keycodes has 4-letter **short name** in addition to descriptive name, you'll prefer short one in `KEYMAP()`.
### 1.0 Other key
- `KC_NO` for no aciton
- `KC_NO` for no action
- `KC_TRNS` for layer transparency (See above)
### 1.1 Normal key
@@ -192,20 +192,20 @@ There are 8 modifiers which has discrimination between left and right.
- `KC_WSCH`, `KC_WHOM`, `KC_WBAK`, `KC_WFWD`, `KC_WSTP`, `KC_WREF`, `KC_WFAV` for web browser operation
### 1.5 Fn key
`KC_FNnn` are keycodes for `Fn` key which not given any actions at the beginning unlike most of keycodes has its own inborn action. To use these keycodes in `KEYMAP()` you need to assign action you want at first. Action of `Fn` key is defined in `fn_actions[]` and its index of the array is identical with number part of `KC_FNnn`. Thus `KC_FN0` keyocde indicates the action defined in first element of the array. ***32 `Fn` keys can be defined at most.***
`KC_FNnn` are keycodes for `Fn` key which not given any actions at the beginning unlike most of keycodes has its own inborn action. To use these keycodes in `KEYMAP()` you need to assign action you want at first. Action of `Fn` key is defined in `fn_actions[]` and its index of the array is identical with number part of `KC_FNnn`. Thus `KC_FN0` keycode indicates the action defined in first element of the array. ***32 `Fn` keys can be defined at most.***
### 1.6 Keycode Table
See keycode table in [`doc/keycode.txt`](./keycode.txt) for description of keycodes.
In regard to implementation side most of keycodes are identical with [HID usage][HID_usage](pdf) sent to host for real and some virtual keycodes are defined to support special actions.
[HID_usage]: http://www.usb.org/developers/devclass_docs/Hut1_11.pdf
[HID_usage]: http://www.usb.org/developers/hidpage/Hut1_12v2.pdf
## 2. Action
See [`common/action_code.h`](../common/action_code.h). Action is a **16bit code** and defines function to perform on events of a key like press, release, holding and tapping.
Most of keys just register 8bit scancode to host, but to support other complex features needs 16bit extended action codes internally. However, using 16bit action codes in keymap results in double size in memory compared to using jsut keycodes. To avoid this waste 8bit keycodes are used in `KEYMAP()` instead of action codes.
Most of keys just register 8bit scancode to host, but to support other complex features needs 16bit extended action codes internally. However, using 16bit action codes in keymap results in double size in memory compared to using just keycodes. To avoid this waste 8bit keycodes are used in `KEYMAP()` instead of action codes.
***You can just use keycodes of `Normal key`, `Modifier`, `Mousekey` and `System & Media key` in keymap*** to indicate corresponding actions instead of using action codes. While ***to use other special actions you should use keycode of `Fn` key defined in `fn_actions[]`.***
@@ -230,7 +230,7 @@ You can define these actions on *'A'* key and *'left shift'* modifier with:
#### 2.1.2 Modified key
This action is comprised of strokes of modifiers and a key. `Macro` action is needed if you want more complex key strokes.
Say you want to assign a key to `Shift + 1` to get charactor *'!'* or `Alt + Tab` to switch application windows.
Say you want to assign a key to `Shift + 1` to get character *'!'* or `Alt + Tab` to switch application windows.
ACTION_MODS_KEY(MOD_LSFT, KC_1)
ACTION_MODS_KEY(MOD_LALT, KC_TAB)
@@ -269,10 +269,10 @@ Default Layer is a layer which always is valid and referred to when actions is n
This sets Default Layer to given parameter `layer` and activate it.
ACTION_DEFAULT_LAYER(layer)
ACTION_DEFAULT_LAYER_SET(layer)
#### 2.2.2 Momentary Switch
#### 2.2.2 Momentary
Turns on `layer` momentarily while holding, in other words it activates when key is pressed and deactivate when released.
ACTION_LAYER_MOMENTARY(layer)
@@ -342,7 +342,7 @@ Turns on layer only and clear all layer on release..
ACTION_LAYER_BIT_XOR(part, bits, on)
ACTION_LAYER_BIT_SET(part, bits, on)
These actions works with prameters as following code.
These actions works with parameters as following code.
uint8_t shift = part*4;
uint32_t mask = (bits&0x10) ? ~(0xf<<shift) : 0;
@@ -368,7 +368,7 @@ Default Layer also has bitwise operations, they are executed when key is release
MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END )
#### 2.3.1 Macro Commands
- **I()** change interavl of stroke.
- **I()** change interval of stroke.
- **D()** press key
- **U()** release key
- **T()** type key(press and release)
@@ -377,8 +377,8 @@ Default Layer also has bitwise operations, they are executed when key is release
#### 2.3.2 Examples
***TODO: sample impl***
See `keyboard/hhkb/keymap.c` for sample.
***TODO: sample implementation***
See `keyboards/hhkb/keymap.c` for sample.
@@ -403,7 +403,7 @@ To define tappable `Function` action in keymap use this.
void keymap_call_function(keyrecord_t *event, uint8_t id, uint8_t opt)
This C function is called every time key is operated, argument `id` selects action to be performed and `opt` can be used for option. Functon `id` can be 0-255 and `opt` can be 0-15.
This C function is called every time key is operated, argument `id` selects action to be performed and `opt` can be used for option. Function `id` can be 0-255 and `opt` can be 0-15.
`keyrecord_t` is comprised of key event and tap count. `keyevent_t` indicates which and when key is pressed or released. From `tap_count` you can know tap state, 0 means no tap. These information will be used in user function to decide how action of key is performed.
@@ -423,8 +423,8 @@ This C function is called every time key is operated, argument `id` selects acti
uint8_t row;
} key_t;
***TODO: sample impl***
See `keyboard/hhkb/keymap.c` for sample.
***TODO: sample implementation***
See `keyboards/hhkb/keymap.c` for sample.
@@ -444,6 +444,10 @@ Step through backlight levels.
ACTION_BACKLIGHT_STEP()
Turn a specific backlight level on or off.
ACTION_BACKLIGHT_LEVEL(1)
#### 2.5.2 Turn on / off backlight
Turn the backlight on and off without changing level.
@@ -451,6 +455,35 @@ Turn the backlight on and off without changing level.
### 2.6 Swap-Hands Action
The swap-hands action allows support for one-handed keyboards without requiring a separate layer. Set `ONEHAND_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd`
### 2.6.1 Configuration
The configuration table is a simple 2-dimensional array to map from column/row to new column/row. Example `hand_swap_config` for Planck:
```
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
{{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
{{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
{{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
{{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
};
```
Note that the array indices are reversed same as the matrix and the values are of type `keypos_t` which is `{col, row}` and all values are zero-based. In the example above, `hand_swap_config[2][4]` (third row, fifth column) would return {7, 2} (third row, eighth column).
### 2.6.2 Advanced Swap Commands
- **`ACTION_SWAP_HANDS()`** Swaps hands when pressed, returns to normal when released (momentary).
- **`ACTION_SWAP_HANDS_TOGGLE()`** Toggles swap on and off with every keypress.
- **`ACTION_SWAP_HANDS_TAP_TOGGLE()`** Toggles with a tap; momentary when held.
- **`ACTION_SWAP_HANDS_TAP_KEY(key)`** Sends `key` with a tap; momentary swap when held.
- **`ACTION_SWAP_HANDS_ON_OFF()`** Alias for `ACTION_SWAP_HANDS()`
- **`ACTION_SWAP_HANDS_OFF_ON()`** Momentarily turns off swap.
- **`ACTION_SWAP_HANDS_ON()`** Turns on swapping and leaves it on.
- **`ACTION_SWAP_HANDS_OFF()`** Turn off swapping and leaves it off. Good for returning to a known state.
## 3. Layer switching Example
There are some ways to switch layer with 'Layer' actions.
@@ -462,8 +495,8 @@ This action makes 'Layer 1' active(valid) on key press event and inactive on rel
ACTION_LAYER_MOMENTARY(1)
Note that after switching on press the actions on destinaton layer(Layer 1) are perfomed.
***Thus you shall need to place an action to go back on destination layer***, or you will be stuck in destination layer without way to get back. Usually you need to palce same action or 'KC_TRNS` on destination layer to get back.
Note that after switching on press the actions on destination layer(Layer 1) are performed.
***Thus you shall need to place an action to go back on destination layer***, or you will be stuck in destination layer without way to get back. Usually you need to place same action or 'KC_TRNS` on destination layer to get back.
### 3.2 Toggle switching
@@ -480,7 +513,7 @@ These actions switch a layer only while holding a key but register the key on ta
ACTION_LAYER_TAP_KEY(2, KC_SCLN)
With this you can place a layer switching action on normal key like ';' without losing its original key register function. This action allows you to have layer switchig action without necessity of a dedicated key. It means you can have it even on home row of keyboard.
With this you can place a layer switching action on normal key like ';' without losing its original key register function. This action allows you to have layer switching action without necessity of a dedicated key. It means you can have it even on home row of keyboard.
@@ -493,6 +526,13 @@ Number of taps can be configured with `TAPPING_TOGGLE` in `config.h`, `5` by def
### 3.5 Momentary switching with Modifiers
This registers modifier key(s) simultaneously with layer switching.
ACTION_LAYER_MODS(2, MOD_LSFT | MOD_LALT)
## 4. Tapping
Tapping is to press and release a key quickly. Tapping speed is determined with setting of `TAPPING_TERM`, which can be defined in `config.h`, 200ms by default.
@@ -511,20 +551,32 @@ Layer switching with tap key:
### 4.2 Tap Toggle
This is a feature to assign both toggle layer and momentary switch layer action to just same one physical key. It works as mementary layer switch when holding a key but toggle switch with several taps.
This is a feature to assign both toggle layer and momentary switch layer action to just same one physical key. It works as momentary layer switch when holding a key but toggle switch with several taps.
ACTION_LAYER_TAP_TOGGLE(1)
### 4.3 Oneshot Modifier
This runs onetime effect swhich modify only on just one following key. It works as normal modifier key when holding down while oneshot modifier when tapping.
This runs onetime effects which modify only on just one following key. It works as normal modifier key when holding down while oneshot modifier when tapping. The behavior of oneshot modifiers is similar to the [sticky keys](https://en.wikipedia.org/wiki/StickyKeys) functionality found in most operating systems.
ACTION_MODS_ONESHOT(MOD_LSFT)
Say you want to type 'The', you have to push and hold Shift key before type 't' then release it before type 'h' and 'e', otherwise you'll get 'THe' or 'the' unintentionally. With Oneshot Modifier you can tap Shift then type 't', 'h' and 'e' normally, you don't need to holding Shift key properly here. This mean you can realease Shift before 't' is pressed down.
Oneshot layer key:
ACTION_LAYER_ONESHOT(MY_LAYER)
Say you want to type 'The', you have to push and hold Shift key before type 't' then release it before type 'h' and 'e', otherwise you'll get 'THe' or 'the' unintentionally. With Oneshot Modifier you can tap Shift then type 't', 'h' and 'e' normally, you don't need to holding Shift key properly here. This mean you can release Shift before 't' is pressed down.
Oneshot effect is cancel unless following key is pressed down within `ONESHOT_TIMEOUT` of `config.h`. No timeout when it is `0` or not defined.
Most implementations of sticky keys allow you to lock a modifier by double tapping the modifier. The layer then remains locked untill the modifier is tapped again. To enable this behaviour for oneshot modifiers set `ONESHOT_TAP_TOGGLE` to the number taps required. The feature is disabled if `ONESHOT_TAP_TOGGLE<2` or not defined.
### 4.4 Tap Toggle Mods
Similar to layer tap toggle, this works as a momentary modifier when holding, but toggles on with several taps. A single tap will 'unstick' the modifier again.
ACTION_MODS_TAP_TOGGLE(MOD_LSFT)

View File

@@ -0,0 +1,8 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
// place overrides here
#endif

View File

@@ -0,0 +1,21 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -29,6 +29,7 @@ Other Keyboard Firmware Projects
## ErgoDox[Ergo][Split][USB][AVR]
- <http://geekhack.org/index.php?topic=22780.0>
- <https://github.com/benblazak/ergodox-firmware>
- <https://github.com/cub-uanic/tmk_keyboard>
## Suka's keyboard collection[Ergo][Split][3DPrinting][USB][AVR]
- <http://deskthority.net/workshop-f7/my-diy-keyboard-collection-or-how-i-became-a-kb-geek-t2534.html>
@@ -48,7 +49,7 @@ Other Keyboard Firmware Projects
- <http://geekhack.org/index.php?topic=19458.0>
## kbdbabel.org[converter][vintage][protocol][8051]
Great resourse of vintage keyboard protocol information and code
Great resource of vintage keyboard protocol information and code
- <http://www.kbdbabel.org/>

View File

@@ -1,45 +0,0 @@
Replacable USB Controller for Apple IIgs/Standard(M0116)
JeffreySung(nattyman@gmail.com)
===============================
Feature
-------
- Replaceable keyboard controller for Apple IIgs(A9M0330)/Standard(M0116)
- Teensy++ 2.0 required
- Some signal bypass required
- ADB keyboard doesn't use matrix for modifier keys. With virtual row for modifier keys,
these keys are merged into key matrix using virtual row.
History
=======
- 2012.09.17 First Release
- 2012.09.17 CapsLock support
- 2012.09.19 Power button added
Build
=====
0. Just Type "Make" and return.
Hardware
========
PJRC Teensy
-----------
0. The following ports should not be connected to board.
From top view of Teensy++, from GND and counter clock wise.
-7,26(in keyboard PCB, these pins are VDD,GND)
-30,31(in Teensy++, these pins are Ref,GND respectively)
-5,6(D2,D3 for bluetooth in future)
1. Bypass #31 pin(from board) to E4(Teensy)
2. Bypass #30 pin(from board) to F2(Teensy)
3. Bypass #6 pin(from board) to A0(Teensy)
4. Refer doc directory
To Do
=====
0. When DEBOUNCE defined, there is a errors.
1. Layer Change by toggling Clear Key
2. Eject Key add. (following files should be modified.)
common/keycode.h
common/keyboard.c
3. Use bluetooth
EOF

View File

@@ -1,63 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
/* USB Device descriptor parameter */
/* for Apple
#define VENDOR_ID 0x05AC
#define PRODUCT_ID 0xBEE0
*/
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0xBEE0
#define DEVICE_VER 0x0202
#define MANUFACTURER t.m.k.
#define PRODUCT Apple Desktop Bus Keyboard
/* message strings */
#define DESCRIPTION Apple M0116/A9M0660 keyboard firmware
/* matrix size */
#define MATRIX_ROWS 11 // last row is virtual for modifier
#define MATRIX_COLS 8
/* define if matrix has ghost */
#define MATRIX_HAS_GHOST
/* Set 0 if need no debouncing */
#define DEBOUNCE 5
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LCTRL) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI)) || \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/* layer switching */
#define LAYER_SWITCH_DELAY 100
#define LAYER_SEND_FN_TERM 300
/* legacy keymap support */
#define USE_LEGACY_KEYMAP
#endif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

View File

@@ -1,142 +0,0 @@
/*
Copyright 2012 Jeffrey Sung <nattyman@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Keymap for Apple IIgs/Standard Keyboard
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "keymap.h"
// Convert physical keyboard layout to matrix array.
// This is a macro to define keymap easily in keyboard layout form.
#define KEYMAP( R10C5, \
R3C7, R3C6, R3C5, R3C4, R3C3, R3C2, R3C1, R8C1, R8C0, R3C0, R0C0, R0C1, R0C2, R0C3, R4C4, R4C5, R4C6, R4C7, \
R9C7, R9C6, R9C5, R9C4, R9C3, R9C2, R9C1, R9C0, R1C0, R1C1, R1C2, R1C3, R1C4, R2C4, R2C5, R2C6, R2C3, \
R10C0,R7C7, R7C6, R7C5, R7C4, R7C3, R7C2, R7C1, R7C0, R0C4, R1C6, R1C7, R1C5, R2C0, R2C1, R2C2, R2C7, \
R10C1,R6C7, R6C6, R6C5, R6C4, R6C3, R6C2, R6C1, R6C0, R0C5, R0C6, R4C0, R4C1, R4C2, \
R10C4,R10C2,R10C3,R5C4, R5C7, R5C5, R5C6, R5C0, R5C2, R0C7, R5C1, R5C3, R4C3 \
) { \
{ R0C0, R0C1, R0C2, R0C3, R0C4, R0C5, R0C6, R0C7 }, \
{ R1C0, R1C1, R1C2, R1C3, R1C4, R1C5, R1C6, R1C7 }, \
{ R2C0, R2C1, R2C2, R2C3, R2C4, R2C5, R2C6, R2C7 }, \
{ R3C0, R3C1, R3C2, R3C3, R3C4, R3C5, R3C6, R3C7 }, \
{ R4C0, R4C1, R4C2, R4C3, R4C4, R4C5, R4C6, R4C7 }, \
{ R5C0, R5C1, R5C2, R5C3, R5C4, R5C5, R5C6, R5C7 }, \
{ R6C0, R6C1, R6C2, R6C3, R6C4, R6C5, R6C6, R6C7 }, \
{ R7C0, R7C1, R7C2, R7C3, R7C4, R7C5, R7C6, R7C7 }, \
{ R8C0, R8C1, KC_NO, KC_NO, KC_NO,KC_NO, KC_NO, KC_NO }, \
{ R9C0, R9C1, R9C2, R9C3, R9C4, R9C5, R9C6, R9C7 }, \
{ R10C0,R10C1, R10C2, R10C3, R10C4,R10C5, KC_NO, KC_NO} \
}
#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
0, // Fn0
1, // Fn1
2, // Fn2
3, // Fn3
4, // Fn4
0, // Fn5
3, // Fn6
3 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KC_NO, // Fn0
KC_NO, // Fn1
KC_SLSH, // Fn2
KC_SCLN, // Fn3
KC_SPC, // Fn4
KC_NO, // Fn5
KC_NO, // Fn6
KC_NO // Fn7
};
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Default Layer
* ,-----------------------------------------------------------. ,---------------,
* | POWER | | |
* |-----------------------------------------------------------| |---------------|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |FN0| = | / | * |
* |-----------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7 | 8 | 9 | + |
* |-----------------------------------------------------' | |---------------|
* |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Return | | 4 | 5 | 6 | - |
* |-----------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| / |Shift | | 1 | 2 | 3 | E |
* |-----------------------------------------------------------| |-----------| N |
* |CAPS|Alt |Gui |` |SPC |BSLS |LFT|RGT|DN|UP| | 0 | . | T |
* `-----------------------------------------------------------' |---------------'
*/
KEYMAP( KC_PWR,
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_FN1, KC_PEQL, KC_PSLS, KC_PAST, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PPLS, \
KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_ENT, KC_P4, KC_P5, KC_P6, KC_PMNS, \
KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_P1, KC_P2, KC_P3, \
KC_CAPS,KC_LALT,KC_LGUI,KC_GRV, KC_SPC, KC_BSLS,KC_LEFT,KC_RGHT,KC_DOWN,KC_UP, KC_P0, KC_PDOT, KC_PENT),
/* Layer 1: Tenkey use Layer
* ,-----------------------------------------------------------. ,---------------,
* | POWER | | |
* |-----------------------------------------------------------| |---------------|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |NLK| = | / | * |
* |-----------------------------------------------------------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | |INS| 8 |PGU|V+ |
* |-----------------------------------------------------' | |---------------|
* |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Return | |DEL|UP |PGD|V- |
* |-----------------------------------------------------------| |---------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| / |Shift | |LFT|DN |RGT| E |
* |-----------------------------------------------------------| |-----------| N |
* |CAPS|Alt |Gui |` |SPC |BSLS |LFT|RGT|DN|UP| | 0 | . | T |
* `-----------------------------------------------------------' `---------------'
*/
KEYMAP( KC_PWR, \
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_FN1, KC_PEQL, KC_PSLS, KC_MUTE, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_INS, KC_P8, KC_PGUP, KC_VOLU, \
KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_ENT, KC_DEL, KC_UP, KC_PGDN, KC_VOLD, \
KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_LEFT, KC_DOWN, KC_RIGHT, \
KC_CAPS,KC_LALT,KC_LGUI,KC_GRV, KC_SPC, KC_BSLS,KC_LEFT,KC_RGHT,KC_DOWN,KC_UP, KC_P0, KC_PDOT, KC_PENT),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return KEYCODE(layer, row, col);
}
uint8_t keymap_fn_layer(uint8_t index)
{
return pgm_read_byte(&fn_layer[index]);
}
uint8_t keymap_fn_keycode(uint8_t index)
{
return pgm_read_byte(&fn_keycode[index]);
}

View File

@@ -1,24 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "stdint.h"
#include "led.h"
void led_set(uint8_t usb_led)
{
}

View File

@@ -1,363 +0,0 @@
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* scan matrix
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "debug.h"
#include "util.h"
#include "matrix.h"
#include "led.h"
#if (MATRIX_COLS > 16)
# error "MATRIX_COLS must not exceed 16"
#endif
#if (MATRIX_ROWS > 255)
# error "MATRIX_ROWS must not exceed 255"
#endif
#ifndef DEBOUNCE
# define DEBOUNCE 0
#endif
static uint8_t debouncing = DEBOUNCE;
// matrix state buffer(1:on, 0:off)
#if (MATRIX_COLS <= 8)
static uint8_t *matrix;
static uint8_t *matrix_prev;
static uint8_t _matrix0[MATRIX_ROWS];
static uint8_t _matrix1[MATRIX_ROWS];
#else
static uint16_t *matrix;
static uint16_t *matrix_prev;
static uint16_t _matrix0[MATRIX_ROWS];
static uint16_t _matrix1[MATRIX_ROWS];
#endif
#ifdef MATRIX_HAS_GHOST
static bool matrix_has_ghost_in_row(uint8_t row);
#endif
static uint8_t read_col(uint8_t row);
static void unselect_rows(void);
static void select_row(uint8_t row);
inline
uint8_t matrix_rows(void)
{
return MATRIX_ROWS;
}
inline
uint8_t matrix_cols(void)
{
return MATRIX_COLS;
}
void matrix_init(void)
{
// initialize row and col
unselect_rows();
// Input with pull-up(DDR:0, PORT:1)
// Column C1 ~ C7 (PortC0-6)
// Column C0(Port E1)
DDRC &= ~0b01111111;
PORTC |= 0b01111111;
DDRE &= ~0b00000010;
PORTE |= 0b00000010;
//DDRB &= ~0b00000100;
//PORTB |= 0b00000100;
// modifier B3/4,F4/5,E4 always input
// A0
//DDRA |= 0b00000001;
//PORTA &= 0b00000001;
//DDRB |= 0b00011000;
//PORTB &= 0b00011000;
//DDRF |= ~0b00110000;
//PORTF &= 0b00110000;
//DDRB &= ~0b00011000;
//PORTB |= 0b00011000;
//DDRF &= ~0b00110000;
//PORTF |= 0b00110000;
//DDRE &= ~0b00010000;
//PORTE |= 0b00010000;
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00;
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00;
matrix = _matrix0;
matrix_prev = _matrix1;
}
uint8_t matrix_scan(void)
{
if (!debouncing) {
uint8_t *tmp = matrix_prev;
matrix_prev = matrix;
matrix = tmp;
}
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
unselect_rows();
select_row(i);
_delay_us(30); // without this wait read unstable value.
if ( i == ( MATRIX_ROWS - 1 ) ) { // CHECK CAPS LOCK
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { // CAPS LOCK is ON on HOST
if ( ~read_col(i) & (1<< 4) ) { // CAPS LOCK is still DOWN ( 0bXXX1_XXXX)
matrix[i] = ~read_col(i) & 0b11101111; // change CAPS LOCK as released
} else { // CAPS LOCK in UP
matrix[i] = ~read_col(i) | 0b00010000; // send fake caps lock down
}
} else { // CAPS LOCK is OFF on HOST
if (matrix[i] != (uint8_t)~read_col(i)) {
matrix[i] = (uint8_t)~read_col(i);
if (debouncing) {
debug("bounce!: "); debug_hex(debouncing); print("\n");
}
debouncing = DEBOUNCE;
}
}
} else {
if (matrix[i] != (uint8_t)~read_col(i)) {
matrix[i] = (uint8_t)~read_col(i);
if (debouncing) {
debug("bounce!: "); debug_hex(debouncing); print("\n");
}
debouncing = DEBOUNCE;
}
}
}
unselect_rows();
if (debouncing) {
debouncing--;
}
return 1;
}
bool matrix_is_modified(void)
{
if (debouncing) return false;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
if (matrix[i] != matrix_prev[i]) {
return true;
}
}
return false;
}
inline
bool matrix_has_ghost(void)
{
#ifdef MATRIX_HAS_GHOST
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
if (matrix_has_ghost_in_row(i))
return true;
}
#endif
return false;
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
// if ( row == ( MATRIX_ROWS - 1 ) && col == 4) { // CHECK CAPS LOCK
// if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { // CAPS LOCK is ON on HOST
// if ((matrix_prev[row] & 0b00010000) && (~matrix[row] & 0b00010000)) {
// debug("CapsLock Reverse:");debug_hex(matrix[row]);
// matrix[row] |= 0b00010000;
// matrix_prev[row] &= ~0b00010000;
// debug("->");debug_hex(matrix[row]);debug("\n");
// }
// }
// }
return (matrix[row] & (1<<col));
}
inline
#if (MATRIX_COLS <= 8)
uint8_t matrix_get_row(uint8_t row)
#else
uint16_t matrix_get_row(uint8_t row)
#endif
{
return matrix[row];
}
void matrix_print(void)
{
print("\nr/c 01234567\n");
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
#if (MATRIX_COLS <= 8)
pbin_reverse(matrix_get_row(row));
#else
pbin_reverse16(matrix_get_row(row));
#endif
#ifdef MATRIX_HAS_GHOST
if (matrix_has_ghost_in_row(row)) {
print(" <ghost");
}
#endif
print("\n");
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
#if (MATRIX_COLS <= 8)
count += bitpop(matrix[i]);
#else
count += bitpop16(matrix[i]);
#endif
}
return count;
}
#ifdef MATRIX_HAS_GHOST
inline
static bool matrix_has_ghost_in_row(uint8_t row)
{
// no ghost exists in case less than 2 keys on
if (((matrix[row] - 1) & matrix[row]) == 0)
return false;
// ghost exists in case same state as other row
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
if (i != row && (matrix[i] & matrix[row]) == matrix[row])
return true;
}
return false;
}
#endif
inline
static uint8_t read_col(uint8_t row)
{
// For normal : Column C1 ~ C7 (PortC0-6), C0(Port E1)
// For modifier : B3(CNTRL)/4(SHIFT),F4(CMD/GUI)/5(OPTION,ALT)
// Modifier would be copied to report->mods except E4(CAPSLOCK)
uint8_t tmp;
if ( row == 10 ) {
tmp = 0xC0;
tmp |= (PINB >> 3 ) & 0b00000011; // LEFT CTRL is 0bit in modifier (HID Spec)
// LEFT SHIFT is 1bit in modifier (HID Spec)
tmp |= (PINF >> 3 ) & 0b00000100; // LEFT ALT is 2bit in modifier (HID Spec)
tmp |= (PINF >> 1 ) & 0b00001000; // LEFT GUI is 3bit in modifier (HID Spec)
tmp |= (PINA << 4 ) & 0b00010000; // CAPSLOCK
tmp |= (PINB << 3 ) & 0b00100000; // POWER
} else {
tmp = 0x00;
tmp = (PINE >> 1)&0b00000001;
tmp |= PINC << 1 ;
}
return tmp;
}
inline
static void unselect_rows(void)
{
// Hi-Z(DDR:0, PORT:0) to unselect
// DDR : 1, output 0, input
DDRB &= ~0b00000011; // PB: 1,0
PORTB &= ~0b00000011;
DDRD &= ~0b00010000; // PD: 4
PORTD &= ~0b00010000;
DDRE &= ~0b11000000; // PE: 7,6
PORTE &= ~0b11000000;
DDRF &= ~0b11000111; // PF: 7,6,2,1,0
PORTF &= ~0b11000111;
// to unselect virtual row(modifier), set port to output with low
DDRA |= 0b00000001; // PA: 0 for CAPSLOCK
PORTA &= ~0b00000001;
DDRB |= 0b00011100; // PB: 3,4 for modifier(row10)
PORTB &= ~0b00011100; // PB: 2 for power
DDRF |= 0b00110000; // PF: 4,5 for modifier
PORTF &= ~0b00110000;
}
inline
static void select_row(uint8_t row)
{
// Output low(DDR:1, PORT:0) to select
// with row enable, column could send low to AVR when pressed
// row: 0 1 2 3 4 5 6 7 8 9
// pin: PB1, PB0, PE7, PE6, PD4, PF2, PF0, PF1, PF6 PF7
switch (row) {
case 0:
DDRB |= (1<<1);
PORTB &= ~(1<<1);
break;
case 1:
DDRB |= (1<<0);
PORTB &= ~(1<<0);
break;
case 2:
DDRE |= (1<<7);
PORTE &= ~(1<<7);
break;
case 3:
DDRE |= (1<<6);
PORTE &= ~(1<<6);
break;
case 4:
DDRD |= (1<<4);
PORTD &= ~(1<<4);
break;
case 5:
DDRF |= (1<<2);
PORTF &= ~(1<<2);
break;
case 6:
DDRF |= (1<<0);
PORTF &= ~(1<<0);
break;
case 7:
DDRF |= (1<<1);
PORTF &= ~(1<<1);
break;
case 8:
DDRF |= (1<<6);
PORTF &= ~(1<<6);
break;
case 9:
DDRF |= (1<<7);
PORTF &= ~(1<<7);
break;
case 10:
// modifier has no row enable
// to select virtual row, set port as input
DDRA &= ~0b00000001;
PORTA |= 0b00000001;
DDRB &= ~0b00011100;
PORTB |= 0b00011100;
DDRF &= ~0b00110000;
PORTF |= 0b00110000;
break;
}
}

View File

@@ -1,116 +0,0 @@
#----------------------------------------------------------------------------
# On command line:
#
# make all = Make software.
#
# make clean = Clean out built project files.
#
# make coff = Convert ELF to AVR COFF.
#
# make extcoff = Convert ELF to AVR Extended COFF.
#
# make program = Download the hex file to the device.
# Please customize your programmer settings(PROGRAM_CMD)
#
# make teensy = Download the hex file to the device, using teensy_loader_cli.
# (must have teensy_loader_cli installed).
#
# make dfu = Download the hex file to the device, using dfu-programmer (must
# have dfu-programmer installed).
#
# make flip = Download the hex file to the device, using Atmel FLIP (must
# have Atmel FLIP installed).
#
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
# (must have dfu-programmer installed).
#
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
# (must have Atmel FLIP installed).
#
# make debug = Start either simulavr or avarice as specified for debugging,
# with avr-gdb or avr-insight as the front end for debugging.
#
# make filename.s = Just compile filename.c into the assembler code only.
#
# make filename.i = Create a preprocessed source file for use in submitting
# bug reports to the GCC project.
#
# To rebuild project do "make clean" then "make all".
#----------------------------------------------------------------------------
# Target file name (without extension).
TARGET = gh60_pjrc
# Directory common source filess exist
TOP_DIR = ../..
# Directory keyboard dependent files exist
TARGET_DIR = .
# project specific files
SRC = keymap_common.c \
matrix.c \
led.c
ifdef KEYMAP
SRC := keymap_$(KEYMAP).c $(SRC)
else
SRC := keymap_poker.c $(SRC)
endif
CONFIG_H = config.h
# MCU name, you MUST set this to match the board you are using
# type "make clean" after changing this, so all files will be rebuilt
MCU = atmega32u4
#MCU = at90usb1286
# Processor frequency.
# Normally the first thing your program should do is set the clock prescaler,
# so your program will run at the correct speed. You should also set this
# variable to same clock speed. The _delay_ms() macro uses this, and many
# examples use this variable to calculate timings. Do not add a "UL" here.
F_CPU = 16000000
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Atmel DFU loader 4096
# LUFA bootloader 4096
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+5000)
EXTRAKEY_ENABLE = yes # Audio control and System control(+600)
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover(+500)
#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
include $(TOP_DIR)/protocol/pjrc.mk
include $(TOP_DIR)/common.mk
include $(TOP_DIR)/rules.mk
plain: OPT_DEFS += -DKEYMAP_PLAIN
plain: all
poker: OPT_DEFS += -DKEYMAP_POKER
poker: all
poker_set: OPT_DEFS += -DKEYMAP_POKER_SET
poker_set: all
poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT
poker_bit: all

View File

@@ -1,141 +0,0 @@
GH60 keyboard firmware
======================
DIY compact keyboard designed and run by komar007 and Geekhack community.
- Both Rev.A and Rev.B PCB are supported by one firmware binary(issue #64)
## GH60 Resources
- [KOMAR's project page](http://blog.komar.be/projects/gh60-programmable-keyboard/)
- [Prototyping](http://geekhack.org/index.php?topic=34959.0)
- [Rev.A PCB test](http://geekhack.org/index.php?topic=37570.0)
- [Rev.B PCB test](http://geekhack.org/index.php?topic=50685.0)
- [Group buy](http://geekhack.org/index.php?topic=41464.0)
## Build
Move to this directory then just run `make` like:
$ make
Use `make -f Makefile.pjrc` if you want to use PJRC stack but I find no reason to do so now.
## Keymap
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_<name>.c` and see keymap document(you can find in top README.md) and existent keymap files.
To build firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like:
$ make KEYMAP=[poker|poker_set|poker_bit|plain|hasu|spacefn|hhkb|<name>]
### 1 Poker
[keymap_poker.c](keymap_poker.c) emulates original Poker layers
while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys.
Fn + Esc = `
Fn + {left, down, up, right} = {home, pgdown, pgup, end}
#### 1.0 Default layer
,-----------------------------------------------------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|-----------------------------------------------------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
|-----------------------------------------------------------|
|Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
|-----------------------------------------------------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
|-----------------------------------------------------------|
|Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl|
`-----------------------------------------------------------'
#### 1.1 Poker Fn layer
,-----------------------------------------------------------.
|Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |
|-----------------------------------------------------------|
| |FnQ| Up| | | | | | |Cal| |Hom|Ins| |
|-----------------------------------------------------------|
| |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| |
|-----------------------------------------------------------|
| |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| Up |
|-----------------------------------------------------------|
| | | | FnS |Fn |Left|Down|Righ|
`-----------------------------------------------------------'
### 2. Plain
Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host.
See [keymap_plain.c](keymap_plain.c) for detail.
#### 1.0 Plain Default layer
,-----------------------------------------------------------.
|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|-----------------------------------------------------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
|-----------------------------------------------------------|
|Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
|-----------------------------------------------------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
|-----------------------------------------------------------|
|Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
`-----------------------------------------------------------'
### 3. Hasu
This is my favourite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail.
### 4. SpaceFN
This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0).
#### 4.0 Default layer
,-----------------------------------------------------------.
|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|-----------------------------------------------------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
|-----------------------------------------------------------|
|Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
|-----------------------------------------------------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
|-----------------------------------------------------------|
|Ctrl|Gui |Alt | Space/Fn |Alt |Gui |App |Ctrl|
`-----------------------------------------------------------'
#### 4.1 SpaceFN layer
,-----------------------------------------------------------.
|` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
|-----------------------------------------------------------|
| | | | | | | |Hom|Up |End|Psc|Slk|Pau|Ins |
|-----------------------------------------------------------|
| | | | | | |PgU|Lef|Dow|Rig| | | |
|-----------------------------------------------------------|
| | | | | |Spc|PgD|` |~ | | | |
|-----------------------------------------------------------|
| | | | Fn | | | | |
`-----------------------------------------------------------'
### 5. HHKB
[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers.
#### 5.0: Default layer
,-----------------------------------------------------------.
|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
|-----------------------------------------------------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc |
|-----------------------------------------------------------|
|Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|Return |
|-----------------------------------------------------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn |
|-----------------------------------------------------------|
| |Gui |Alt | Space | |Alt |Gui | |
`-----------------------------------------------------------'
#### 5.1: HHKB Fn layer
,-----------------------------------------------------------.
|Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
|-----------------------------------------------------------|
|Caps | | | | | | | |Psc|Slk|Pus|Up | | |
|-----------------------------------------------------------|
| |VoD|VoU|Mut|Ejc| | *| /|Hom|PgU|Lef|Rig|Enter |
|-----------------------------------------------------------|
| | | | | | | +| -|End|PgD|Dow| | |
|-----------------------------------------------------------|
| | | | | | | | |
`-----------------------------------------------------------'

View File

@@ -1,84 +0,0 @@
/*
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef KEYMAP_COMMON_H
#define KEYMAP_COMMON_H
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "action.h"
#include "action_macro.h"
#include "report.h"
#include "host.h"
#include "print.h"
#include "debug.h"
#include "keymap.h"
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
extern const uint16_t fn_actions[];
/* GH60 keymap definition macro
* K2C, K31 and K3C are extra keys for ISO
*/
#define KEYMAP( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
) { \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \
{ KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \
}
/* ANSI valiant. No extra keys for ISO */
#define KEYMAP_ANSI( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
) KEYMAP( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \
K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \
)
#define KEYMAP_HHKB( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
) KEYMAP( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
)
#endif

View File

@@ -1,145 +0,0 @@
#include "keymap_common.h"
/*
* Hasu
*/
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Default Layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
* |-----------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L|Fn3| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Fn4 |Fn4 |Fn1 |
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
LCTL,A, S, D, F, G, H, J, K, L, FN2, QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, FN9, \
LCTL,LGUI,LALT, SPC, RALT,FN3, FN3, FN0),
/* Keymap 1: colemak */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \
BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \
LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0),
/* Keymap 2: dvorak */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \
TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \
CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \
LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0),
/* Keymap 3: workman */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \
BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \
LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0),
/* Overlay 4: HHKB mode
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
* |-----------------------------------------------------------|
* |Caps | | | | | | | |Psc|Slk|Pus|Up | |Inser|
* |-----------------------------------------------------------|
* |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter |
* |-----------------------------------------------------------|
* |Shift | | | | | | +| -|End|PgD|Dow|Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Gui |App | |
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \
CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \
LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \
LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,FN4, TRNS),
/* Overlay 5: Vi mode (Slash)
* ,-----------------------------------------------------------.
* | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
* |-----------------------------------------------------------|
* |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgU|End| | | | |
* |-----------------------------------------------------------|
* |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
* |-----------------------------------------------------------|
* |Shift | | | | | |Hom|PgD|PgU|End| |Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \
TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,TRNS, \
LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \
LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL),
/* Overlay 6: Mouse mode (Semicolon/App)
* ,-----------------------------------------------------------.
* | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
* |-----------------------------------------------------------|
* |Tab | | | | | |MwL|MwD|MwU|MwR| | | | |
* |-----------------------------------------------------------|
* |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR| | |Return |
* |-----------------------------------------------------------|
* |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space | | | | |
* `-----------------------------------------------------------'
* Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
*/
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \
TAB, TRNS,TRNS,TRNS,TRNS,TRNS,WH_L,WH_D,WH_U,WH_R,TRNS,TRNS,TRNS,TRNS, \
LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \
LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \
LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL),
/* Overlay 7: Layout selector
* ,-----------------------------------------------------------.
* | Lq| Lc| Ld| Lw| | | | | | | | | | |
* |-----------------------------------------------------------|
* | |Lq |Lw | | | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | |Ld | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | |Lc | | | | | | | | |
* |-----------------------------------------------------------|
* | | | | | | | | |
* `-----------------------------------------------------------'
* Lq: set Qwerty layout
* Lc: set Colemak layout
* Ld: set Dvorak layout
* Lw: set Workman layout
*/
KEYMAP_ANSI(
FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
};
/*
* Fn action definition
*/
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(4),
[1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH),
[2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN),
[3] = ACTION_LAYER_MOMENTARY(6),
[4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector
[5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout
[6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout
[7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout
[8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout
[9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRV),
};

View File

@@ -1,52 +0,0 @@
#include "keymap_common.h"
/*
* HHKB Layout
*/
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: Default layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc |
* |-----------------------------------------------------------|
* |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn |
* |-----------------------------------------------------------|
* | |Gui |Alt | Space | |Alt |Gui | |
* `-----------------------------------------------------------'
*/
KEYMAP_HHKB(
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, GRV, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT,FN0, \
NO, LGUI,LALT, SPC, NO, RALT,RGUI,NO),
/* 1: HHKB Fn layer
* ,-----------------------------------------------------------.
* |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
* |-----------------------------------------------------------|
* |Caps | | | | | | | |Psc|Slk|Pus|Up | | |
* |-----------------------------------------------------------|
* | |VoD|VoU|Mut|Ejc| | *| /|Hom|PgU|Lef|Rig|Enter |
* |-----------------------------------------------------------|
* | | | | | | | +| -|End|PgD|Dow| | |
* |-----------------------------------------------------------|
* | | | | | | | | |
* `-----------------------------------------------------------'
*/
KEYMAP_HHKB(
PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,TRNS, \
TRNS,VOLD,VOLU,MUTE,EJCT,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, PENT, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, TRNS,TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
};
/*
* Fn action definition
*/
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1),
};

View File

@@ -1,11 +0,0 @@
#include "keymap_common.h"
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \
LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL),
};
const uint16_t PROGMEM fn_actions[] = {};

View File

@@ -1,104 +0,0 @@
#include "keymap_common.h"
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 1: colemak */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \
BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \
LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 2: dvorak */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \
TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \
CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \
LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 3: workman */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \
BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \
LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 4: Poker with Arrow */
KEYMAP_ANSI(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT),
/* 5: Poker with Esc */
KEYMAP_ANSI(
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
/* 6: Poker Fn
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |
* |-----------------------------------------------------------|
* | |FnQ| Up| | | | | | |Cal| |Hom|Ins|FnL |
* |-----------------------------------------------------------|
* | |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| |
* |-----------------------------------------------------------|
* | |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| |
* |-----------------------------------------------------------|
* | | | | FnS | | | | |
* `-----------------------------------------------------------'
* Fn: to Fn overlay
* FnL: to Layout selector overaly
* FnQ: toggle Esc overlay
* FnS: toggle Arrow overlay
*/
KEYMAP_ANSI(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, FN4, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS),
/* 7: Layout selector
* ,-----------------------------------------------------------.
* | Lq| Lc| Ld| Lw| | | | | | | | | | |
* |-----------------------------------------------------------|
* | |Lq |Lw | | | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | |Ld | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | |Lc | | | | | | | | |
* |-----------------------------------------------------------|
* | | | | | | | | |
* `-----------------------------------------------------------'
* Lq: set Qwerty layout
* Lc: set Colemak layout
* Ld: set Dvorak layout
* Lw: set Workman layout
*/
KEYMAP_ANSI(
FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
};
const uint16_t PROGMEM fn_actions[] = {
/* Poker Layout */
[0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay
[1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay
[2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay
[3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc)
[4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector
[5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout
[6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout
[7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout
[8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout
};

View File

@@ -1,50 +0,0 @@
#include "keymap_common.h"
// Poker fix with toggle and bit operation
// Fn + Esc = `
// Fn + {left, down, up, right} = {home, pgdown, pgup, end}
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 4: Poker Default + Fn'd */
[4] = KEYMAP_ANSI(
TRNS,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
CAPS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN4, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS),
/* 5: Poker with Arrow */
KEYMAP_ANSI(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, PGUP, \
TRNS,TRNS,TRNS, TRNS, FN3, HOME,PGDN,END),
/* 6: Poker with Esc */
KEYMAP_ANSI(
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
/* 7: Poker with Arrow + Fn'd */
KEYMAP_ANSI(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT),
};
const uint16_t PROGMEM fn_actions[] = {
/* Poker Layout */
[0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc)
[1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle
[2] = ACTION_LAYER_TOGGLE(6), // Poker Esc toggle
[3] = ACTION_LAYER_BIT_XOR(1, 0b1101, ON_BOTH), // Poker Fn(with fix for Arrow)
[4] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN3 Task(RControl,RShift+Esc)
};

View File

@@ -1,82 +0,0 @@
#include "keymap_common.h"
// Poker fix with set(state transition)
// Fn + Esc = `
// Fn + {left, down, up, right} = {home, pgdown, pgup, end}
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 1: Poker with Arrow */
KEYMAP_ANSI(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
TRNS,TRNS,TRNS, TRNS, FN1, LEFT,DOWN,RGHT),
/* 2: Poker with Esc */
KEYMAP_ANSI(
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS),
/* 3: Poker with Arrow and Esc */
KEYMAP_ANSI(
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
TRNS,TRNS,TRNS, TRNS, FN3, LEFT,DOWN,RGHT),
/* 4: Poker Fn'd */
KEYMAP_ANSI(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN6, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS),
/* 5: Poker Fn'd arrow */
KEYMAP_ANSI(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN7, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \
TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END),
/* 6: Poker Fn'd Esc */
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN4, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS),
/* 7: Poker Fn'd Arrow + Esc */
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN5, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \
TRNS,TRNS,TRNS, FN6, FN7, HOME,PGDN,END),
};
/*
* Fn action definition
*/
const uint16_t PROGMEM fn_actions[] = {
/* Poker Layout */
[0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press
[1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press
[2] = ACTION_LAYER_SET(6, ON_PRESS), // FN2 move to Fn'd Esc when press
[3] = ACTION_LAYER_SET(7, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press
//[4] = ACTION_LAYER_CLEAR(ON_RELEASE), // FN4 clear overlay when release
[4] = ACTION_LAYER_SET(0, ON_RELEASE), // FN4 clear overlay when release
[5] = ACTION_LAYER_SET(1, ON_RELEASE), // FN5 move to arrow when release
[6] = ACTION_LAYER_SET(2, ON_RELEASE), // FN6 move to Esc when release
[7] = ACTION_LAYER_SET(3, ON_RELEASE), // FN7 move to arrow + Esc when release
[8] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN8 Task(RControl,RShift+Esc)
};

Some files were not shown because too many files have changed in this diff Show More