Compare commits

...

850 Commits

Author SHA1 Message Date
Jack Humbert
5c8cdfd2b5 [skip build] testing travis script 2017-02-06 17:51:20 -05: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
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
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
Brendan Johan Lee
02a95ee08c Merge remote-tracking branch 'upstream/master' 2017-02-01 08:56:35 +01: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
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
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
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
skullydazed
ec05f65421 Merge pull request #1043 from potz/patch-1
Clarify license on abnt2 keymap (#1038)
2017-01-27 18:40:59 -08:00
Potiguar Faga
2fe18a50ec Clarify license on abnt2 keymap (#1038) 2017-01-27 18:22:44 -02: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
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
Albert Pretorius
fffe76a7b7 albert ergodox keymap 2017-01-26 20:07:47 +00: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
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
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
lucwastiaux
1ac15e6b3a put shell nav under tab, introduce an OSL for the brackets layer 2017-01-17 20:34:05 +08: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
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
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
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
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
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
IBNobody
498eddedc5 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-09-10 21:51:21 -05: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
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
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
Daniel
0c598f53c1 adds Hyper key. improves media layer. first attempt at tap dance. 2016-09-01 23:37:52 -06:00
Joshua T
5520b0022f Merge remote-tracking branch 'upstream/master' 2016-09-01 07:40:46 -05:00
Daniel
dbac9f4954 Merge remote-tracking branch 'upstream/master' 2016-08-31 22:15:47 -06:00
Damien
af24ea558a Merge pull request #3 from jackhumbert/master
Merge from jackhumbert
2016-08-29 22:33:50 +02:00
Damien
8e058135e2 Merge pull request #2 from jackhumbert/master
Merge from jackhumbert
2016-08-26 07:55:30 +02: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
Olivier
b5172e3afa Rename file following upstream folder rename. 2016-08-20 18:19:03 +02:00
Olivier
009ab77d3e Merge https://github.com/jackhumbert/qmk_firmware 2016-08-20 18:07:02 +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
Daniel
8019a074cf minor tweaks to numpad and media layer 2016-08-14 20:43:05 -05:00
Daniel
558bf2ed07 completes first-pass at media layer 2016-08-12 19:27:44 -05:00
Daniel
916d12f9fa completes first-pass at symbol layer 2016-08-12 14:37:13 -05:00
Daniel
fe7b46579c completes first-pass at base layer 2016-08-10 19:37:59 -05: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
Joshua T
6df31120a1 Merge remote-tracking branch 'upstream/master' 2016-08-07 23:28:59 -05: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
Stephen Christie
76ef37e72d Corrected Qwerty/Fn Mismatch. 2016-08-01 18:54:25 -04:00
Stephen Christie
4b74c90cdb Added quote key. 2016-07-31 22:39:25 -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
Stephen Christie
5f2d3f27de Moved CapsLk, ScrollLk, and NumLk to Adjust layer 2016-07-30 00:56:43 -04:00
Stephen Christie
c018743729 Connected all layers through Adjust layer 2016-07-29 00:08:48 -04: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
Stephen Christie
57952949fe General table cleanup. 2016-07-26 23:33:21 -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
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
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
Stephen Christie
eeb100f87d First draft of the 'impossible' layout. 2016-07-21 18:19:08 -04:00
Joshua T
15ee180f0e Created readme and added screenshots 2016-07-20 00:38:56 -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
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
Joshua T
42843d9b62 Merge remote-tracking branch 'upstream/master' 2016-07-15 01:01:19 -05: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
Joshua T
32725dae5b Created replicaJunction keymaps. 2016-07-11 17:49:12 -05:00
Olivier
4cfb262faa Spellchecking. 2016-07-04 01:10:40 +02: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
Ryan Ascheman
d1c70328f8 update volume control to match arrow change 2016-05-12 10:32:26 -07:00
Ryan Ascheman
7929ee4879 update readme 2016-04-25 15:40:52 -07:00
Ryan Ascheman
c1f143124d initial changes, no doc changes 2016-04-19 14:21:23 -07:00
Christopher Browne
04759d63ef Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2016-02-06 19:49:52 -05:00
549 changed files with 53037 additions and 4961 deletions

3
.gitignore vendored
View File

@@ -29,3 +29,6 @@ CMakeLists.txt
.idea
.browse.VC.db*
*.stackdump
util/Win_Check_Output.txt
.vscode
.stfolder

View File

@@ -2,23 +2,28 @@ os: linux
dist: trusty
sudo: required
language: c
compiler: avr-gcc
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=
matrix:
- TARGET=all-keyboards AUTOGEN=true
- TARGET=test AUTOGEN=false
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 $TARGET AUTOGEN=$AUTOGEN
- 'if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then make $TARGET AUTOGEN=$AUTOGEN; fi'
addons:
apt:
packages:
- avr-libc
- gcc-avr
- dfu-programmer
- pandoc
- gcc-arm-none-eabi

View File

@@ -21,8 +21,9 @@ 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} keymap=${keymap}
CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap}

View File

@@ -16,10 +16,10 @@ ifdef SILENT
endif
# We need to make sure that silent is always turned off at the top level
# Otherwise the [OK], [ERROR] and [WARN] messags won't be displayed correctly
# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly
override SILENT := false
ON_ERROR := error_occured=1
ON_ERROR := error_occurred=1
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
@@ -32,29 +32,31 @@ 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))
TEST_DIR := $(ROOT_DIR)/.build/test
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
# 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 beome the new head
# 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
# 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
# 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.
# 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))
@@ -82,7 +84,7 @@ endif
# Only consider folders with makefiles, to prevent errors in case there are extra folders
KEYBOARDS := $(notdir $(patsubst %/Makefile,%,$(wildcard $(ROOT_DIR)/keyboards/*/Makefile)))
#Compability with the old make variables, anything you specify directly on the command line
#Compatibility with the old make variables, anything you specify directly on the command line
# always overrides the detected folders
ifdef keyboard
KEYBOARD := $(keyboard)
@@ -104,12 +106,12 @@ endif
#$(info Keyboards: $(KEYBOARDS))
# Set the default goal depening on where we are running make from
# 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
# Inside a keymap folder, just build the keymap, with the
# default subproject
.DEFAULT_GOAL := $(KEYBOARD)-$(KEYMAP)
else
@@ -161,24 +163,24 @@ 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
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 checed
# It works by always removing the currently matched item from the list
# $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
# 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 recursivel
# Save the best match so far and call itself recursively
BEST_MATCH := $$(MATCHED_ITEM)
BEST_MATCH_RULE := $$(RULE)
RULE_FOUND := false
@@ -268,7 +270,7 @@ define PARSE_KEYBOARD
$$(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
else
$$(eval $$(call PARSE_SUBPROJECT,))
endif
endef
@@ -283,7 +285,7 @@ endef
# 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
# 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),)
@@ -302,7 +304,7 @@ define PARSE_SUBPROJECT
endif
endif
# The special allsp is handled later
ifneq ($$(CURRENT_SP),allsp)
ifneq ($$(CURRENT_SP),allsp)
# get a list of all keymaps
KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.)))
ifneq ($$(CURRENT_SP),)
@@ -335,13 +337,13 @@ define PARSE_SUBPROJECT
$$(eval $$(call PARSE_ALL_KEYMAPS))
endif
else
# As earlier mentione,d when allsb is specified, we call our self recursively
# 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,
# If we want to parse all subprojects, but the keyboard doesn't have any,
# then use defaultsp instead
define PARSE_ALL_SUBPROJECTS
ifeq ($$(SUBPROJECTS),)
@@ -401,11 +403,11 @@ define BUILD
printf "$$(MAKE_MSG)\n\n"; \
$$(MAKE_CMD) $$(MAKE_VARS) SILENT=false; \
if [ $$$$? -gt 0 ]; \
then error_occured=1; \
then error_occurred=1; \
fi;
endef
# Just parse all the keymaps for a specifc keyboard
# Just parse all the keymaps for a specific keyboard
define PARSE_ALL_KEYMAPS
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS)))
endef
@@ -426,7 +428,7 @@ define BUILD_TEST
printf "$$(TEST_MSG)\n"; \
$$(TEST_EXECUTABLE); \
if [ $$$$? -gt 0 ]; \
then error_occured=1; \
then error_occurred=1; \
fi; \
printf "\n";
endif
@@ -446,7 +448,7 @@ 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 overriden by specifying silent=false
# 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
@@ -460,20 +462,34 @@ endef
include $(ROOT_DIR)/message.mk
RUN_COMMAND = \
$(COMMAND_$(SILENT_MODE)_$(COMMAND))
# 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
$(SUBPROJECTS): %: %-allkm
# Let's match everything, we handle all the rule parsing ourselves
.PHONY: %
%:
%:
# Check if we have the CMP tool installed
cmp --version >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
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 \
@@ -481,23 +497,24 @@ $(SUBPROJECTS): %: %-allkm
*) 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
+error_occured=0; \
$(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND)) \
if [ $$error_occured -gt 0 ]; then printf "$(MSG_ERRORS)" & exit $$error_occured; fi;\
$(foreach TEST,$(TESTS),$($(TEST)_COMMAND)) \
if [ $$error_occured -gt 0 ]; then printf "$(MSG_ERRORS)" & exit $$error_occured; fi;\
$(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 compability with the old syntax
# Define some shortcuts, mostly for compatibility with the old syntax
.PHONY: all-keyboards
all-keyboards: allkb-allsp-allkm
@@ -511,9 +528,13 @@ test: test-all
test-clean: test-all-clean
# Generate the version.h file
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
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
include $(ROOT_DIR)/testlist.mk

View File

@@ -131,6 +131,14 @@ 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
@@ -153,6 +161,11 @@ ifeq ($(strip $(UCIS_ENABLE)), yes)
UNICODE_ENABLE = yes
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_ENABLE = yes
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
@@ -169,12 +182,26 @@ ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
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
@@ -186,6 +213,7 @@ endif
VPATH += $(KEYBOARD_PATH)
VPATH += $(COMMON_VPATH)
include $(TMK_PATH)/protocol.mk
include $(TMK_PATH)/common.mk
SRC += $(TMK_COMMON_SRC)
@@ -193,7 +221,11 @@ 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

View File

@@ -23,4 +23,5 @@ 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

@@ -6,7 +6,7 @@
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/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer.
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".
@@ -38,7 +38,7 @@ Debian/Ubuntu example:
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/jackhumbert/qmk_firmware](https://github.com/jackhumbert/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.
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.

View File

@@ -234,7 +234,7 @@ If you did everything else right. This part should be a snap! Grab the latest so
###Build Planck and Load the Firmware
```
$ cd ~/src
$ git clone https://github.com/jackhumbert/qmk_firmware.git
$ git clone https://github.com/qmk/qmk_firmware.git
$ cd qmk_firmware/keyboards/planck
$ make
```

View File

@@ -183,7 +183,7 @@ As you move along, be sure that the Teensy is staying in place - recutting and s
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/jackhumbert/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/).
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:
@@ -276,7 +276,7 @@ This can be accomplished by using the following `keymaps` definition:
),
};
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/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keycode.txt) - there are also a lot of aliases to condense your keymap file.
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.
@@ -306,7 +306,7 @@ If you've done all of these things, keep in mind that sometimes you might have h
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/jackhumbert/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)
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

View File

@@ -5,7 +5,7 @@
### 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/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer.
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!
@@ -32,7 +32,7 @@ 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/jackhumbert/qmk_firmware
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.
@@ -80,7 +80,7 @@ when trying to 'make dfu' on Windows you need to copy the dfu-programmer.exe to
### Keymap
Unlike the other keymaps, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/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/jackhumbert/qmk_firmware/blob/master/quantum/keymap_common.h).
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:

View File

@@ -6,7 +6,8 @@ This project includes a Vagrantfile that will allow you to build a new firmware
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.
*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.

View File

@@ -84,7 +84,7 @@ KC_PAUSE KC_PAUS 48 Keyboard Pause1
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

View File

@@ -67,7 +67,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define RGB_DI_PIN E2
#define RGBLIGHT_TIMER
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 8 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17

30
keyboards/amjpad/amjpad.c Normal file
View File

@@ -0,0 +1,30 @@
#include "amjpad.h"
#include "led.h"
void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
matrix_init_user();
led_init_ports();
};
void matrix_scan_kb(void) {
// put your looping keyboard code here
// runs every cycle (a lot)
matrix_scan_user();
};
void led_init_ports(void) {
// * Set our LED pins as output
DDRD |= (1<<6);
}
void led_set_kb(uint8_t usb_led) {
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
// Turn numlock on
PORTD &= ~(1<<6);
} else {
// Turn numlock off
PORTD |= (1<<6);
}
}

46
keyboards/amjpad/amjpad.h Normal file
View File

@@ -0,0 +1,46 @@
#ifndef AMJPAD_H
#define ADMJPAD_H
#include "quantum.h"
// readability
#define XXX KC_NO
/* AMJPAD matrix layout
* ,-------------------.
* | 00 | 01 | 02 | 03 |
* |----|----|----|----|
* | 10 | 11 | 12 | 13 |
* |----|----|----|----|
* | 20 | 21 | 22 | |
* |----|----|----| 23 |
* | 30 | 31 | 32 | |
* |----|----|----|----|
* | 40 | 41 | 42 | |
* |----|----|----| 43 |
* | 50 | 52 | |
* `-------------------'
*/
// The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array
#define KEYMAP( \
k00, k01, k02, k03, \
k10, k11, k12, k13, \
k20, k21, k22, k23, \
k30, k31, k32, \
k40, k41, k42, k43, \
k50, k52 \
) \
{ \
{k00, k01, k02, k03}, \
{k10, k11, k12, k13}, \
{k20, k21, k22, k23}, \
{k30, k31, k32, XXX}, \
{k40, k41, k42, k43}, \
{k50, XXX, k52, XXX} \
}
void matrix_init_user(void);
void matrix_scan_user(void);
#endif

94
keyboards/amjpad/config.h Normal file
View File

@@ -0,0 +1,94 @@
/*
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 "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0003
#define MANUFACTURER AMJ
#define PRODUCT PAD
#define DESCRIPTION QMK keyboard firmware for AMJ PAD
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 4
// ROWS: Top to bottom, COLS: Left to right
#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5, D0 }
#define MATRIX_COL_PINS { F1, F0, E6, C7 }
#define UNUSED_PINS
#define BACKLIGHT_PIN B6
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* 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
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/* Backlight configuration
*/
#define BACKLIGHT_LEVELS 4
/* Underlight configuration
*/
#define RGB_DI_PIN E2
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 8 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#endif

View File

@@ -0,0 +1,101 @@
#include "amjpad.h"
#ifdef RGBLIGHT_ENABLE
#include "rgblight.h"
#endif
// Used for SHIFT_ESC
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _BL 0
#define _FL 1
#define _______ KC_TRNS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: (Base Layer) Default Layer
* ,-------------------.
* |Esc |TAB |BS | = |
* |----|----|----|----|
* | NL | / | * | - |
* |----|----|----|----|
* | 7 | 8 | 9 | |
* |----|----|----| + |
* | 4 | 5 | 6 | |
* |----|----|----|----|
* | 1 | 2 | 3 | |
* |----|----|----| En |
* | 0 |./FN| |
* `-------------------'
*/
[_BL] = KEYMAP(
KC_ESC,KC_TAB,KC_BSPC,KC_PEQL, \
KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
KC_P7, KC_P8, KC_P9, KC_PPLS, \
KC_P4, KC_P5, KC_P6, \
KC_P1, KC_P2, KC_P3, KC_PENT, \
KC_P0, LT(_FL,KC_PDOT)),
/* Keymap _FL: Function Layer
* ,-------------------.
* |Esc |TAB |BS | = |
* |----|----|----|----|
* | NL | / | * | - |
* |----|----|----|----|
* | 7 | 8 | 9 | |
* |----|----|----|RST |
* | 4 | 5 | 6 | |
* |----|----|----|----|
* | 1 | 2 | 3 | |
* |----|----|----| En |
* | 0 |./FN| |
* `-------------------'
*/
[_FL] = KEYMAP(
KC_ESC,KC_TAB,KC_BSPC,KC_PEQL, \
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
KC_P7, KC_P8, KC_P9, RESET, \
KC_P4, KC_P5, KC_P6, \
KC_P1, KC_P2, KC_P3, KC_PENT, \
KC_P0, LT(_FL,KC_PDOT)),
};
enum function_id {
SHIFT_ESC,
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_FUNCTION(SHIFT_ESC),
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
static uint8_t shift_esc_shift_mask;
switch (id) {
case SHIFT_ESC:
shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
if (record->event.pressed) {
if (shift_esc_shift_mask) {
add_key(KC_GRV);
send_keyboard_report();
} else {
add_key(KC_ESC);
send_keyboard_report();
}
} else {
if (shift_esc_shift_mask) {
del_key(KC_GRV);
send_keyboard_report();
} else {
del_key(KC_ESC);
send_keyboard_report();
}
}
break;
}
}

66
keyboards/amjpad/rules.mk Normal file
View File

@@ -0,0 +1,66 @@
# MCU name
#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
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(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# 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 ?= no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= no # 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
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870)
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
MIDI_ENABLE ?= no # MIDI controls
AUDIO_ENABLE ?= no
UNICODE_ENABLE ?= no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID

View File

@@ -1,13 +1,120 @@
arrow_pad keyboard firmware
======================
## Keyboard Info
The ArrowPad is a wired conversion that can be made to any stand-alone keypad. It uses two main layers - a standard numpad, and a more advanced arrow cluster navigator.
The first 24-key ArrowPad was handwired, but the PCB was wired as listed below.
```
<Chip Ref Des> pin <Pin #>
<Keycap Name> (Silkscreen Name if different) - <Switch Pin #>
Note:
U2 pin 2 is the Num Lock LED and is active low.
U2 pin 1
Clear (Num Lock) - 1
Enter - 2
Esc (ESC) - 2
U2 pin 3
- - 1
U2 pin 4
7 - 2
8 - 2
9 - 2
U2 pin 5
* - 2
Delete (BACK SPACE) - 2
U2 pin 6
1 - 2
0 - 2
. - 2
, - 2
U2 pin 7
4 - 2
5 - 2
6 - 2
U2 pin 8
Tab - 2
= (/) - 2
U2 pin 13
Delete (BACK SPACE) - 1
9 - 1
6 - 1
3 - 1
. - 1
U2 pin 14
Tab - 1
8 - 1
5 - 1
2 - 1
0 - 1
U2 pin 15
Esc (ESC) - 1
= (/) - 1
/ (*) - 1
7 - 1
4 - 1
1 - 1
+ - 1
U2 pin 16
Enter - 1
* (<--) - 1
, - 1
U2 pin 17
Fn (#NAME?) - 1
- - 2
Clear (Num Lock) - 2
U2 pin 18
Fn (#NAME?) - 2
* (<--) - 2
+ - 2
3 - 2
2 - 2
```
More info can be found on [GeekHack](https://geekhack.org/index.php?topic=73632.msg1802497#msg1802497)
The second ArrowPad was a conversion from a 21-key Genovation keypad. It used a 2 row x 11 column matrix.
```
#define KEYMAP( \
KM_ESC, KM_TAB, KM_BSL, KM_ARR, \
KM_NUM, KM_FSL, KM_AST, KM_MIN, \
KM___7, KM___8, KM___9, ___PLS, \
KM___4, KM___5, KM___6, KM_PLS, \
KM___1, KM___2, KM___3, ___ENT, \
KM___0, _____0, KM_DOT, KM_ENT \
) { \
{ KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \
{ KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \
}
```
## Quantum MK Firmware
For the full Quantum feature list, see [the parent readme.md](/readme.md).
## Building
Download or clone the whole firmware and navigate to the keyboards/arrow_pad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
Download or clone the whole firmware and navigate to the keyboards/arrow_pad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
Depending on which keymap you would like to use, you will have to compile slightly differently.
@@ -20,7 +127,7 @@ Several version of keymap are available in advance but you are recommended to de
To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
```
$ make [default|jack|<name>]
$ make [default|pad_21|pad_24|<name>]
```
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.

View File

@@ -1,7 +1,7 @@
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
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)
CONSOLE_ENABLE = yes # 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 = yes # Enable keyboard backlight functionality

View File

@@ -150,10 +150,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* disable debug print */
//#define NO_DEBUG
#ifndef NO_DEBUG
# define NO_DEBUG
#endif
/* disable print */
//#define NO_PRINT
// #ifndef NO_PRINT
// # define NO_PRINT
// #endif
/* Only print user print statements */
#define USER_PRINT
/* disable action features */
//#define NO_ACTION_LAYER

View File

@@ -2,48 +2,59 @@
#include "action_layer.h"
#include "eeconfig.h"
#include "led.h"
#include "mousekey.h"
#ifdef AUDIO_ENABLE
#include "audio.h"
#include "song_list.h"
#endif
#define LAYER_QWERTY 0
#define LAYER_COLEMAK 1
#define LAYER_DVORAK 2
#define LAYER_UPPER 3
#define LAYER_LOWER 4
#define LAYER_FUNCTION 5
#define LAYER_MOUSE 6
#define LAYER_ADJUST 7
#define MACRO_QWERTY 0
#define MACRO_COLEMAK 1
#define MACRO_DVORAK 2
#define MACRO_UPPER 3
#define MACRO_LOWER 4
#define MACRO_FUNCTION 5
#define MACRO_MOUSE 6
#define MACRO_TIMBRE_1 7
#define MACRO_TIMBRE_2 8
#define MACRO_TIMBRE_3 9
#define MACRO_TIMBRE_4 10
#define MACRO_TEMPO_U 11
#define MACRO_TEMPO_D 12
#define MACRO_TONE_DEFAULT 13
#define MACRO_MUSIC_TOGGLE 14
#define MACRO_AUDIO_TOGGLE 16
#define MACRO_INC_VOICE 18
#define MACRO_DEC_VOICE 19
#define MACRO_BACKLIGHT 20
#define MACRO_BREATH_TOGGLE 21
#define MACRO_BREATH_SPEED_INC 23
#define MACRO_BREATH_SPEED_DEC 24
#define MACRO_BREATH_DEFAULT 25
enum keyboard_layers {
LAYER_QWERTY = 0,
LAYER_UPPER,
LAYER_LOWER,
LAYER_FUNCTION,
LAYER_MOUSE,
LAYER_ADJUST,
};
enum keyboard_macros {
MACRO_QWERTY = 0,
MACRO_UPPER,
MACRO_LOWER,
MACRO_FUNCTION,
MACRO_MOUSE,
MACRO_TIMBRE_1,
MACRO_TIMBRE_2,
MACRO_TIMBRE_3,
MACRO_TIMBRE_4,
MACRO_TEMPO_U,
MACRO_TEMPO_D,
MACRO_TONE_DEFAULT,
MACRO_MUSIC_TOGGLE,
MACRO_AUDIO_TOGGLE,
MACRO_INC_VOICE,
MACRO_DEC_VOICE,
MACRO_BACKLIGHT,
MACRO_BREATH_TOGGLE,
MACRO_BREATH_SPEED_INC,
MACRO_BREATH_SPEED_DEC,
MACRO_BREATH_DEFAULT,
MACRO_MOUSE_MOVE_UL,
MACRO_MOUSE_MOVE_UR,
MACRO_MOUSE_MOVE_DL,
MACRO_MOUSE_MOVE_DR,
MACRO_HELP_1,
MACRO_HELP_2,
MACRO_HELP_3,
MACRO_HELP_4,
MACRO_HELP_5,
MACRO_HELP_6,
MACRO_HELP_7,
MACRO_HELP_8,
MACRO_HELP_9,
};
#define M_QWRTY M(MACRO_QWERTY)
#define M_COLMK M(MACRO_COLEMAK)
#define M_DVORK M(MACRO_DVORAK)
#define M_UPPER M(MACRO_UPPER)
#define M_LOWER M(MACRO_LOWER)
#define M_FUNCT M(MACRO_FUNCTION)
@@ -60,6 +71,19 @@
#define M_BSPDU M(MACRO_BREATH_SPEED_INC)
#define M_BSPDD M(MACRO_BREATH_SPEED_DEC)
#define M_BDFLT M(MACRO_BREATH_DEFAULT)
#define M_MS_UL M(MACRO_MOUSE_MOVE_UL)
#define M_MS_UR M(MACRO_MOUSE_MOVE_UR)
#define M_MS_DL M(MACRO_MOUSE_MOVE_DL)
#define M_MS_DR M(MACRO_MOUSE_MOVE_DR)
#define M_HELP1 M(MACRO_HELP_1)
#define M_HELP2 M(MACRO_HELP_2)
#define M_HELP3 M(MACRO_HELP_3)
#define M_HELP4 M(MACRO_HELP_4)
#define M_HELP5 M(MACRO_HELP_5)
#define M_HELP6 M(MACRO_HELP_6)
#define M_HELP7 M(MACRO_HELP_7)
#define M_HELP8 M(MACRO_HELP_8)
#define M_HELP9 M(MACRO_HELP_9)
#define VC_UP M(MACRO_INC_VOICE)
@@ -77,6 +101,7 @@
#define SC_ACLS LALT(KC_F4)
#define SC_CCLS LCTL(KC_F4)
#define TG_NKRO MAGIC_TOGGLE_NKRO
#define OS_SHFT KC_FN0
#define _______ KC_TRNS
@@ -86,169 +111,126 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
* |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
* | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_QWERTY] = { // QWERTY
{ 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_BSPC },
{ 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_BSLS, KC_DEL },
{ KC_CAPS, 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_ENT, KC_PGUP },
{ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
{ KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
},
/* COLEMAK
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
* |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
* | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_COLEMAK] = { // COLEMAK
{ 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_BSPC },
{ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
{ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP },
{ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
{ KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
},
/* DVORAK
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | XXXXXX . BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | TAB | ' | , | . | P | Y | F | G | C | R | L | / | = | \ | DEL |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | CAPS | A | O | E | U | I | D | H | T | N | S | - | XXXXXX . ENTER | PG UP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN |
* |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
* | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_DVORAK] = { // DVORAK
{ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_BSPC },
{ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL },
{ KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_ENT, KC_PGUP },
{ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
{ KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
},
/* UPPER
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | PRINT | BR TOG | BR SP+ | BR SP- | BR RST | XXXXXX | XXXXXX | NUM LK | / | * | | NUM LK | SCR LK | XXXXXX . PAUSE |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | | F1 | F2 | F3 | F4 | | | 7 | 8 | 9 | - | | | | INS |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | CAP LK | F5 | F6 | F7 | F8 | | | 4 | 5 | 6 | + | | XXXXXX . | HOME |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | | F9 | F10 | F11 | F12 | | | 1 | 2 | 3 | ENTER | XXXXXX . | | END |
* |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
* | | | | | | 0 | | RALT | . | ENTER | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_UPPER] = { // UPPER
{ KC_PSCR, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, XXXXXXX, XXXXXXX, KC_SLCK, KC_PAUS, KC_PAUS },
{ _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS },
{ KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, ________________, KC_HOME },
{ _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, ________________, _______, KC_END },
{ _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, _______, _______, _______, _______ },
},
/* LOWER
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | | $ | { | [ | ( | % | # | ) | ] | } | @ | | | | INS |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | | ^ | * | + | - | / | \ | _ | ' | " | ` | | XXXXXX . | HOME |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | | | | & | ! | ~ | ; | : | = | < | > | ? | XXXXXX . | | END |
* |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
* | | | | | | | | | | | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_LOWER] = { // LOWER
{ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ },
{ _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, _______, _______, _______, KC_INS },
{ _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, _______, ________________, KC_HOME },
{ _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL, KC_LT, KC_GT, KC_QUES, ________________, _______, KC_END },
{ _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ },
},
/* FUNCTION
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | NUM LK | | | | | | | | | | | | | XXXXXX . |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | SCR LK | F13 | F14 | F15 | F16 | | | | | | | | | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | CAP LK | F17 | F18 | F19 | F20 | | | | | | | | XXXXXX . | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | | F21 | F22 | F23 | F24 | | | | | | | XXXXXX . | VOL UP | MUTE |
* |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
* | | | | | | PLAY/PAUSE | | | | | | PTRACK | VOL DN | NTRACK |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_FUNCTION] = { // FUNCTION
{ KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX },
{ KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
{ KC_CAPS, KC_F17, KC_F18, KC_F19, KC_F20, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXX },
{ _______, KC_F21, KC_F22, KC_F23, KC_F24, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ________________, KC_VOLU, KC_MUTE },
{ _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT },
},
#ifdef MOUSEKEY_ENABLE
[LAYER_MOUSE] = { // MOUSE
{ _______, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX },
{ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
{ XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX, KC_WH_U },
{ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ________________, KC_MS_U, KC_WH_D },
{ _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R },
},
#endif
[LAYER_ADJUST] = { // ADJUST
{ _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, _______, MU_TOG, AU_TOG, ________________ },
{ _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ },
{ _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, _______, ________________, MUV_IN, _______ },
{ _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, MUV_DE, _______ },
},
/*
[LAYER_EMPTY] = { // LAYER
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________ },
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ },
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______, _______ },
{ _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ },
},
/* LAYER = LAYER_QWERTY
.--------------------------------------------------------------------------------------------------------------------------------------.
| ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP . BACKSP |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| CAP LK | A | S | D | F | G | H | J | K | L | ; | ' | ENTER . ENTER | PG UP |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT . RSHIFT | UP | PG DN |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| LCTRL | LWIN | FN | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
'--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_QWERTY] = {
{ 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_BSPC },
{ 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_BSLS, KC_DEL },
{ KC_CAPS, 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_ENT , KC_PGUP },
{ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT, KC_UP , KC_PGDN },
{ KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }
},
/* LAYER = LAYER_UPPER
.--------------------------------------------------------------------------------------------------------------------------------------.
| PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | KP / | KP * | KP - | XXXXXX | XXXXXX | ______ . ______ |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| PAUSE | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | ______ | ______ | ______ | INS |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | F5 | F6 | F7 | F8 | CAP LK | KP * | KP 4 | KP 5 | KP 6 | KP + | ______ | ______ . ______ | HOME |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | F9 | F10 | F11 | F12 | SCR LK | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | ______ . ______ | ______ | END |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP ENT | ______ | ______ | ______ | ______ |
'--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_UPPER] = {
{ KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX, _______, _______ },
{ KC_PAUS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS },
{ _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, KC_HOME },
{ _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_SLCK, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______, _______, KC_END },
{ _______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, _______, _______, _______, _______ }
},
/* LAYER = LAYER_LOWER
.--------------------------------------------------------------------------------------------------------------------------------------.
| PRINT | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | ______ . ______ |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | ______ | ______ | ______ | INS |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | ______ | ______ . ______ | HOME |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | | | & | ! | ~ | ; | : | = | < | > | ? | ______ . ______ | ______ | END |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | ______ | ______ | ______ | ______ |
'--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_LOWER] = {
{ KC_PSCR, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______ },
{ _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, KC_INS },
{ _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, KC_HOME },
{ _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, _______, _______, _______, KC_END },
{ _______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, _______, _______, _______, _______ }
},
/* LAYER = LAYER_FUNCTION
.--------------------------------------------------------------------------------------------------------------------------------------.
| XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ______ . ______ | VOL UP | MUTE |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | ______ | FN | ______ | ______ | PLAY . PLAY | ______ | ______ | ______ | ______ | ______ | PREV | VOL DN | NEXT |
'--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_FUNCTION] = {
{ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
{ XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
{ XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
{ _______, KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_VOLU, KC_MUTE },
{ _______, _______, M_FUNCT, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT }
},
/* LAYER = LAYER_MOUSE
.--------------------------------------------------------------------------------------------------------------------------------------.
| ESC | MS AC0 | MS AC1 | MS AC2 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | XXXXXX | XXXXXX | XXXXXX | MS WHL | MS WHR |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | XXXXXX | XXXXXX . XXXXXX | MS WHU |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | XXXXXX | ______ . ______ | MS U | MS WHD |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| ______ | ______ | ______ | ______ | ______ | MS BT1 . MS BT1 | ______ | ______ | ______ | ______ | ______ | MS L | MS D | MS R |
'--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_MOUSE] = {
{ KC_ESC , KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
{ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_R },
{ XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U },
{ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_DL, KC_MS_D, M_MS_DR, XXXXXXX, _______, _______, KC_MS_U, KC_WH_D },
{ _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }
},
/* LAYER = LAYER_ADJUST
.--------------------------------------------------------------------------------------------------------------------------------------.
| XXXXXX | HELP 1 | HELP 2 | HELP 3 | HELP 4 | HELP 5 | HELP 6 | HELP 7 | HELP 8 | HELP 9 | XXXXXX | MUSIC | AUDIO | XXXXXX . XXXXXX |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | RESET | XXXXXX | MOUSE | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | VOICE+ | XXXXXX |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
| XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | TEMPO- | VOICE- | TEMPO+ |
'--------------------------------------------------------------------------------------------------------------------------------------'
*/
[LAYER_ADJUST] = {
{ XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, XXXXXXX, MU_TOG , AU_TOG , XXXXXXX, XXXXXXX },
{ XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
{ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
{ XXXXXXX, M_QWRTY, XXXXXXX, XXXXXXX, M_BACKL, RESET , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MUV_IN , XXXXXXX },
{ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TMPO_DN, MUV_DE , TMPO_UP }
},
};
#ifdef AUDIO_ENABLE
@@ -290,6 +272,69 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
switch(id)
{
case MACRO_HELP_1:
if (record->event.pressed)
{
uprintf("1");
}
break;
case MACRO_HELP_2:
if (record->event.pressed)
{
uprintf("2");
}
break;
case MACRO_HELP_3:
if (record->event.pressed)
{
uprintf("3");
}
break;
case MACRO_HELP_4:
if (record->event.pressed)
{
uprintf("4");
}
break;
case MACRO_HELP_5:
if (record->event.pressed)
{
uprintf("5");
}
break;
case MACRO_HELP_6:
if (record->event.pressed)
{
uprintf("6");
}
break;
case MACRO_HELP_7:
if (record->event.pressed)
{
uprintf("7");
}
break;
case MACRO_HELP_8:
if (record->event.pressed)
{
uprintf("8");
}
break;
case MACRO_HELP_9:
if (record->event.pressed)
{
uprintf("9");
}
break;
case MACRO_BREATH_TOGGLE:
if (record->event.pressed)
{
@@ -322,29 +367,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed)
{
persistant_default_layer_set(1UL<<LAYER_QWERTY);
#ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO);
#endif /* AUDIO_ENABLE */
}
break;
case MACRO_COLEMAK:
if (record->event.pressed)
{
persistant_default_layer_set(1UL<<LAYER_COLEMAK);
#ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO);
#endif /* AUDIO_ENABLE */
}
break;
case MACRO_DVORAK:
if (record->event.pressed)
{
persistant_default_layer_set(1UL<<LAYER_DVORAK);
#ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO);
#endif /* AUDIO_ENABLE */
}
break;

View File

@@ -0,0 +1,80 @@
/*
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 "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER Arbitrary Definitions
#define PRODUCT Planckeus
#define DESCRIPTION q.m.k. keyboard firmware for Planckeus
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 11
#define MATRIX_ROW_PINS { D0, D1, D2, D3 }
#define MATRIX_COL_PINS { F6, F5, F4, F1, F0, F7, B0, B1, B2, B3, B7 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
//#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* 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
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#endif

View File

@@ -0,0 +1,45 @@
#include "atreus.h"
#define BASE 0
#define SYMB 1
#define ETC 2
enum macro_id {
TEENSY,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = KEYMAP(
KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN,
LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H,
SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
KC_GRV, KC_DEL, KC_LALT, GUI_T(KC_TAB), LT(SYMB,KC_BSPC), CTL_T(KC_ESC), SFT_T(KC_ENT), LT(SYMB,KC_SPC), GUI_T(KC_LEFT), KC_DOWN, KC_UP, LCAG_T(KC_RGHT)
),
[SYMB] = KEYMAP(
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS,
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BSLS, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT,
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_ASTR, KC_UNDS, KC_1, KC_2, KC_3, KC_DQUO,
KC_TILD, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_NO, KC_DOT, KC_TRNS
),
[ETC] = KEYMAP(
RESET, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_HOME,
LT(ETC,KC_A), KC_NO, KC_NO, KC_NO, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_END,
KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_INS,
KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO
),
};
const uint16_t PROGMEM fn_actions[] = {
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch(id) {
case TEENSY:
break;
}
return MACRO_NONE;
};

View File

@@ -0,0 +1,96 @@
/*
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 "config_common.h"
/* Make Overloaded Keys switch faster */
#define TAPPING_TERM 150
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER Technomancy
#define PRODUCT Atreus
#define DESCRIPTION q.m.k. keyboard firmware for Atreus
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 11
// Change this to how you wired your keyboard
// COLS: Left to right, ROWS: Top to bottom
#if defined(ATREUS_ASTAR)
# define MATRIX_ROW_PINS { D0, D1, D3, D2 }
#if defined(PCBDOWN)
# define MATRIX_COL_PINS { B7, D6, F7, F6, B6, D4, E6, B4, B5, C6, D7 }
#else
# define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
#endif
# define UNUSED_PINS
#elif defined(ATREUS_TEENSY2)
# define MATRIX_ROW_PINS { D0, D1, D2, D3 }
# define MATRIX_COL_PINS { F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0 }
# define UNUSED_PINS
#endif
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
//#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* 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
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#endif

View File

@@ -0,0 +1,61 @@
// this is the style you want to emulate.
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
#include "atreus.h"
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define BASE 0
#define NUMS 1
#define MOUS 2
// Some quick aliases, just to make it look pretty
#define _______ KC_TRNS
#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = KEYMAP( /* Qwerty */
KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,
KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN ,
SFT_T(KC_Z), KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , SFT_T(KC_QUOT),
KC_LCTL , KC_LALT, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, F(NUMS), KC_RALT, KC_SLSH, KC_BSLS ),
[NUMS] = KEYMAP( /* Numbers / Arrows / Symbols */
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_LPRN, KC_RPRN, KC_MINS, KC_EQL , KC_LBRC,
KC_TAB , KC_5 , KC_6 , KC_7 , KC_8 , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_RBRC,
_______, KC_9 , KC_0 , KC_DOT , KC_COMM, KC_HOME, KC_PGDN, KC_PGUP, KC_END , _______,
_______, _______, _______, _______, KC_DEL , F(MOUS), _______, _______, _______, _______, _______, _______),
[MOUS] = KEYMAP( /* Mouse and Media Keys */
KC_SLCK, KC_PAUSE, KC_F11 , KC_F10 , KC_F9 , KC_F8 , KC_F7 , KC_F6 , KC_F5 , KC_F4,
KC_VOLD, KC_ACL0 , KC_ACL1, KC_ACL2, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_F3,
KC_MUTE, KC_MPRV , KC_MPLY, KC_MNXT, KC_MUTE, KC_WH_R, KC_WH_U, KC_WH_D, KC_WH_L, KC_F2,
_______, _______ , _______, _______, _______, _______, _______, KC_BTN1, F(BASE), RESET , KC_F12 , KC_F1)
};
// I prefer this layer switching strategy to the TG and MO functions.
// so that I can get out of mouse mode just by tapping/holding my base layer FN key.
const uint16_t PROGMEM fn_actions[] = {
[BASE] = ACTION_LAYER_OFF(2, 1), // switch back to layer 0
[NUMS] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
[MOUS] = ACTION_LAYER_ON(2, 1) // switch to layer 2
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};

View File

@@ -0,0 +1,66 @@
// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
#include "atreus.h"
#include "action_layer.h"
#include "keymap_colemak.h"
#define PREVENT_STUCK_MODIFIERS
// Each layer gets a name for readability, which is then used in the keymap matrix below.
#define ALPH 0
#define NUMS 1
#define CURS 2
#define SYMB 3
#define FKEY 4
// Some handy macros to keep the keymaps clean and easier to maintain
#define KM_SAVE LGUI(CM_S)
#define KM_CLSE LGUI(CM_W)
#define KM_OPEN LGUI(CM_O)
#define KM_COPY LGUI(KC_C)
#define KM_CUT LGUI(KC_X)
#define KM_PAST LGUI(KC_V)
#define KM_UNDO LGUI(KC_Z)
#define KM_REDO LGUI(LSFT(KC_Z))
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[ALPH] = {
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P},
{KC_A, LT(NUMS, KC_S), LT(FKEY, KC_D), KC_F, KC_G, KC_TRNS, KC_H, KC_J, LT(CURS, KC_K), LT(SYMB, KC_L), KC_SCLN},
{KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH},
{KC_LCTL, KC_ESC, KC_NO, KC_LSFT, KC_SPC, KC_LGUI, KC_ENT, KC_RSFT, KC_NO, KC_ESC, KC_RCTL}
},
[NUMS] = {
{KC_TRNS, KC_TRNS, KC_TRNS, KC_ASTR, KC_SLSH, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_SLSH},
{KC_TRNS, KC_TRNS, KC_EQL, KC_PLUS, KC_MINS, KC_TRNS, KC_LPRN, KC_4, KC_5, KC_6, KC_ASTR},
{KC_TRNS, KC_TRNS, KC_DOT, KC_COMM, CM_SCLN, KC_TRNS, KC_RPRN, KC_1, KC_2, KC_3, KC_MINS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL, KC_PLUS}
},
[CURS] = {
{KC_TRNS, KC_BSPC, KC_UP, KC_DELT, KC_PGUP, KC_TRNS, KC_TRNS, KM_SAVE, KC_TRNS, KM_OPEN, KC_TRNS},
{KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KM_UNDO, KC_LALT, KC_TRNS, KC_LGUI, KC_TRNS},
{KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_MPLY, KM_COPY, KM_REDO, KM_CLSE, KC_TRNS, KC_TRNS, KC_TRNS},
{KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TAB, KM_CUT, KM_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
},
[SYMB] = {
{KC_BSLS, KC_EXLM, KC_LABK, KC_RABK, CM_COLN, KC_TRNS, KC_UNDS, KC_DLR, KC_QUES, KC_TRNS, KC_PERC},
{KC_AT, KC_AMPR, KC_LPRN, KC_RPRN, CM_SCLN, KC_TRNS, KC_COMM, KC_DOT, KC_QUOT, KC_TRNS, KC_TILD},
{KC_HASH, KC_PIPE, KC_LCBR, KC_RCBR, KC_SLSH, KC_TRNS, KC_TRNS, KC_GRV, KC_DQT, KC_TRNS, KC_CIRC},
{KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
},
[FKEY] = {
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
}};
const uint16_t PROGMEM fn_actions[] = {};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch(id) {}
return MACRO_NONE;
};

View File

@@ -0,0 +1,45 @@
Jeremy's Atreus Key Mapping
===========================
I am a programmer by trade that suffers from the beginning stages of RSI. As a programmer I use letters, symbols and cursor navigation most often. To prevent strange finger gymnastics, I wrote a script to rank which non-letter characters occurred in my primary source projects most often and then placed these characters in the easiest to reach locations, for me. I made heavy use of momentary layer toggling.
My layout is also geared toward a software based Colemak mapping. I would like it to be hardware, but I use my Laptop on the go frequently and thus my laptop keyboard. I have moved the keycaps to reflect the Colemak layout. My laptop is a MacBook Pro (2015).
## Main Layers
1. [Letters](http://www.keyboard-layout-editor.com/#/gists/6861cb9df09ce78efaddf8aa7471e3ac)
2. [Symbols](http://www.keyboard-layout-editor.com/#/gists/8956a18b508a78e93b9c38ec3fcccaa5)
3. [Navigation](http://www.keyboard-layout-editor.com/#/gists/6ed492b714a7f54eb1c5de09b87fd8c4)
4. [Numbers](http://www.keyboard-layout-editor.com/#/gists/399ceb5624e8388e48a3a5eacac8e973)
5. [Function Keys](http://www.keyboard-layout-editor.com/#/gists/7fd7dc24c7048316f3724b1893c64e89)
## Notes
### General
Some characters can be accessed multiple ways. This was done because you may be in a given layer, such as numbers, where when doing math, you may need quick access to the parentheses characters for grouping. This prevents some layer switching.
I own an ErgoDox and plan on porting this as a base layer, then using the extra keys the ErgoDox provides accordingly. My goal, though, is to be fully functional on this base setup and build everything into muscle memory.
### Symbol Layer
1. I placed characters that deal with an if statement close together, such as !, & and |.
2. All matching brace/bracket characters are together as well.
### Number Layer
1. Everything I did was a compromise when trying to mimic a ten-key. I did the best I could.
2. Operators are duplicated on the right and left. I do not find it comfortable to use my pinky much, so I tend to use my left hand for +, -, * and / but those were also placed on the right hand to mimic the ten-key.
3. Parentheses were added for typing on the calculator.
### Cursor Layer
1. It includes basic audio controls because they didn't really fit anywhere else
2. It contains basic file manipulation. I'm not sure that was a good idea. I do save all the time, but Cmd+S isn't exactly hard.
3. It contains the backspace and delete keys right on top of the left and right arrows.
4. Cmd and Opt keys are duplicated. This makes for very easy navigation, for example on a Mac, Opt+Left/Right moves word by word. It also backspaces or deletes word by word.
### Function Layer
1. Almost all other layers I saw grouped the F keys into a bunch of three. This only gives nine function keys in order if you attempt to stay as close to the home row as possible. I went with a group of four, which gives all twelve function keys to the right hand, one row below and above the home row.
2. I duplicated the Command and Option keys the same as on the cursor layer. This makes it dead easy to hit modified function keys such as Cmd+Opt+F5. It's also easy to toss in a Shift modifier in there with the right thumb since the bottom row is preserved.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -1,7 +1,7 @@
/*
* Keyboard: Atreus
* Keymap: replicaJunction
* Version: 0.3
* Version: 0.4
*
* This keymap is designed to complement my Ergodox keyboard layout, found in keyboards/ergodox_ez.
* The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox. I now
@@ -42,51 +42,157 @@
#define KX_PAST LCTL(KC_V)
#define KX_UNDO LCTL(KC_Z)
#define _USER 0 // User macro
; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* Colemak-ModDH
*
* ,----------------------------------. ,----------------------------------.
* | Q | W | F | P | B | | J | L | U | Y | ; |
* +------+------+------+------+------| +------+------+------+------+------|
* | A | R | S | T | G | | M | N | E | I | O |
* +------+------+------+------+------| +------+------+------+------+------|
* |Z Shft| X | C | D | V | ,------. ,------. | K | H | , | . |/ Shft|
* +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------|
* | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_CO] = KEYMAP(
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O,
SFT_T(KC_Z), KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
KC_ESC, KC_LGUI, KC_TAB, KC_LALT, KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL
KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL
),
/*
* QWERTY
*
* ,----------------------------------. ,----------------------------------.
* | Q | W | E | R | T | | Y | U | I | O | P |
* +------+------+------+------+------| +------+------+------+------+------|
* | A | S | D | F | G | | H | J | K | L | ; |
* +------+------+------+------+------| +------+------+------+------+------|
* |Z Shft| X | C | V | B | ,------. ,------. | N | M | , | . |/ Shft|
* +------+------+------+------+------| | Ctrl | | Alt | +------+------+------+------+------|
* | Esc | Gui | Tab | _FN | Bksp | | Del | | Enter| |Sp/_NU| _EX | - | ' | = |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_QW] = KEYMAP( /* Qwerty */
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
KC_ESC, KC_LGUI, KC_TAB, KC_LALT, KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL
KC_ESC, KC_LGUI, KC_TAB, MO(_FN), KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL
),
/*
* Extend
*
* Ctrl+` is a keyboard shortcut for the program ConEmu, which brings up a dropdown console window.
*
* Also note that some dual-role keys are overridden here with their modifiers
*
* ,----------------------------------. ,----------------------------------.
* | | | | |Ctrl `| | PgUp | Home | Up | End | Del |
* +------+------+------+------+------| +------+------+------+------+------|
* | Gui | Shift| Alt | Ctrl | | | PgDn | Left | Down | Right| Bksp |
* +------+------+------+------+------| +------+------+------+------+------|
* | Shift| Cut | Copy | | Paste| ,------. ,------. | | ^Tab | Tab | |Insert|
* +------+------+------+------+------| | Del | | Enter| +------+------+------+------+------|
* | | | | | | | | | | | Space|XXXXXX| | |PrntSc|
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_EX] = KEYMAP( /* Extend */
KC_CAPS, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL,
_______, KC_LGUI, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
_______, KX_CUT, KX_COPY, _______, KX_PAST, _______, KC_TAB, KCX_LST, _______, KC_INSERT,
_______, _______, _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, KC_PSCR
_______, _______, _______, _______, LCTL(KC_GRV), KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL,
KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
KC_LSFT, KX_CUT, KX_COPY, _______, KX_PAST, _______, KCX_LST, KC_TAB, _______, KC_INS,
_______, _______, _______, _______, _______, KC_DEL, KC_ENT, KC_SPC, _______, _______, _______, KC_PSCR
),
/*
* Numbers and symbols
*
* ,----------------------------------. ,----------------------------------.
* | ! | @ | { | } | & | | / | 7 | 8 | 9 | * |
* +------+------+------+------+------| +------+------+------+------+------|
* | # | $ | ( | ) | ~ | | | | 4 | 5 | 6 | - |
* +------+------+------+------+------| +------+------+------+------+------|
* | % | ^ | [ | ] | ` | ,------. ,------. | \ | 1 | 2 | 3 | + |
* +------+------+------+------+------| | | | | +------+------+------+------+------|
* | | _GA | | | | | | | | |XXXXXX| 0 | . | = | |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_NU] = KEYMAP( /* Numbers and symbols */
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR,
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD, KC_PIPE, KC_4, KC_5, KC_6, KC_MINS,
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, KC_BSLS, KC_1, KC_2, KC_3, KC_PLUS,
_______, TG(_GA), _______, MO(_FN), _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______
_______, TG(_GA), _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______
),
/*
* Functions
*
* ,----------------------------------. ,----------------------------------.
* | Caps | F9 | F10 | F11 | F12 | | _USER|Whl Up| MUp |Whl Dn| |
* +------+------+------+------+------| +------+------+------+------+------|
* | | F5 | F6 | F7 | F8 | | Vol ^| MLeft| MDown|MRight| |
* +------+------+------+------+------| +------+------+------+------+------|
* | | F1 | F2 | F3 | F4 | ,------. ,------. | Vol v| | | | |
* +------+------+------+------+------| | | |RClick| +------+------+------+------+------|
* | | | |XXXXXX| | | | | | |LClick|MClick| _CO | _GA | RESET|
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_FN] = KEYMAP( /* Functions */
KC_DEL, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_F7, KC_F8, KC_F9, KC_F10,
KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, _______, KC_F4, KC_F5, KC_F6, KC_F11,
_______, KC_VOLU, KC_MUTE, KC_VOLD, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12,
_______, _______, _______, _______, KC_MSTP, _______, _______, _______, KC_NO, DF(_CO), DF(_QW), RESET
KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, M(_USER),KC_WH_U, KC_MS_U, KC_WH_D, _______,
_______, KC_F5, KC_F6, KC_F7, KC_F8, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_R, _______,
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_VOLD, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN3, DF(_CO), DF(_QW), RESET
),
/*
* Gaming
*
* ,----------------------------------. ,----------------------------------.
* | | | | | | | |Whl Up| MUp |Whl Dn| |
* +------+------+------+------+------| +------+------+------+------+------|
* | | | | | | | | MLeft| MDown|MRight| |
* +------+------+------+------+------| +------+------+------+------+------|
* | Z | | | | | ,------. ,------. | | | | | |
* +------+------+------+------+------| | Bksp | |RClick| +------+------+------+------+------|
* | | _GA | | Shift| Space| | | | | |LClick|MClick| | | |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
[_GA] = KEYMAP( /* Gaming */
_______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______,
_______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______,
KC_Z, _______, _______, _______, _______, KC_BTN3, _______, KC_MS_D, _______, _______,
_______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, _______, _______, _______, _______
KC_Z, _______, _______, _______, _______, _______, _______, KC_MS_D, _______, _______,
_______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, KC_BTN3, _______, _______, _______
)};
/*
* Template
*
* ,----------------------------------. ,----------------------------------.
* | | | | | | | | | | | |
* +------+------+------+------+------| +------+------+------+------+------|
* | | | | | | | | | | | |
* +------+------+------+------+------| +------+------+------+------+------|
* | | | | | | ,------. ,------. | | | | | |
* +------+------+------+------+------| | | | | +------+------+------+------+------|
* | | | | | | | | | | | | | | | |
* `----------------------------------' `------' `------' `----------------------------------'
*
*/
const uint16_t PROGMEM fn_actions[] = {
};
@@ -95,7 +201,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
case _USER:
if (record->event.pressed) {
register_code(KC_RSFT);
} else {

View File

@@ -10,13 +10,15 @@ I won't claim that this layout is perfect for everyone. It does make several sig
## Base Layer ##
![Atreus base layout](atreus-replica-base-colemakdh.png)
![Atreus base layout](atreus-replica-base.png)
The letters on this layout are arranged in the [Colemak Mod-DH layout](https://colemakmods.github.io/mod-dh/).
Note that there are four dual-purpose keys: Shift (Backspace), Ctrl (Delete), Alt (Enter), and Space (Number layer). In QMK, these dual-role keys can be made to hold their primary key by double-tapping the key and holding on the second tap. For example, if I wanted to insert a long string of Spaces, I would tap the Space key, then tap it again and hold. A single press and hold would trigger the secondary function of the key instead.
The primary mechanism for the Shift keys in this keyboard are the dual-role Z and slash keys. Pressing the key sends the keystroke, while holding the key sends a shift. This is a design choice taken from the xyverz layout, and one I find much more intuitive than a thumb shift. In addition, the pinky doesn't need to stretch as far to reach these keys as it does to reach a standard Shift key.
The secondary Alt on the left bottom row exists to provide a single-hand Alt+Tab shortcut, which would take two rows otherwise.
Occasionally, when typing the letter Z, I'll hold the key down a fraction of a second too long, and the keyboard will shift instead. If you're not a confident typist, this dual-role Shift key layout is probably not a good solution. In that case, I'd suggest moving Shift onto the Backspace key (press for Backspace, hold for Shift).
In addition to the Shift keys, there are three dual-purpose keys: Ctrl (Delete), Alt (Enter), and Space (Number layer). In QMK, these dual-role keys can be made to hold their primary key with a tap and hold. For example, if I wanted to insert a long string of Spaces, I would tap the Space key, then tap it again and hold. A single press and hold would trigger the secondary function of the key instead.
## Extend Layer ##
@@ -42,9 +44,11 @@ This layer also provides plenty of symbol shortcuts. Most of these can be access
![Atreus function layer](atreus-replica-function.png)
Function keys (F1-F12) are on this layer, as well as some more generic "functions" such as media keys. I've also set up a mirror image of the arrows from the Extend layer in case I need to use these with my left hand, but I don't do this very often.
Function keys (F1-F12) are on this layer. Their layout in groups of four comes from Jeremy's Atreus layout in this repository. I'd been using 1-9 in a numpad layout, then adding 10-12 on the side...I suppose it took seeing someone else do it this way for me to realize how much more sense it makes.
The reset key is on this layer, as well as a toggle from Colemak to QWERTY and back. The QWERTY layer is not currently documented, but it is functionally identical to the base layer except for letter positions.
On the right side are mouse keys - cursor left/right/up/down, and scroll up/down. Volume keys are also here, though really only because there was room for them (I'm not entirely happy with their positions).
Finally, the reset key is on this layer, as well as toggles from Colemak to QWERTY and back. The QWERTY layer is not currently documented, but it is functionally identical to the base layer except for letter positions.
## Gaming Layer ##
@@ -54,4 +58,4 @@ This is a small layer developed to allow some simple gameplay without a mouse. T
The keys on the left hand bring Space into the left thumb's reach, as well as overriding the dual-role Shift with its standard function (Z in both QWERTY and in Colemak). This allows easy Shift presses without blocking the Z key, commonly used in games.
I would probably not consider this a hard-core gaming keyboard, and this layout does have the huge problem of blocking access to the number keys, but for more casual games, it plays quite well. I've used it quite a bit on Minecraft, for example, and I'm quite pleased with it.
I would probably not consider the Atreus a hard-core gaming keyboard in the first place, and this layout does have the huge problem of blocking access to the number keys, but for more casual games, it plays quite well. I've used it quite a bit on Minecraft, for example, and I'm quite pleased with it.

View File

@@ -88,7 +88,7 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac
### Remember: These are just aliases
These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action).
These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action).
Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them.
@@ -169,7 +169,7 @@ This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboar
## Building
Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button.
Download or clone the whole firmware and navigate to the keyboards/atreus folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button.
Depending on which keymap you would like to use, you will have to compile slightly differently.

View File

@@ -0,0 +1,3 @@
ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif

View File

@@ -0,0 +1 @@
#include "atreus62.h"

View File

@@ -0,0 +1,26 @@
#ifndef ATREUS62_H
#define ATREUS62_H
#include "quantum.h"
void promicro_bootloader_jmp(bool program);
// This a shortcut to help you visually see your layout.
// The first section contains all of the arguements
// The second converts the arguments into a two-dimensional array
#define KEYMAP( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d \
) \
{ \
{ k00, k01, k02, k03, k04, k05, KC_NO, k06, k07, k08, k09, k0a, k0b }, \
{ k10, k11, k12, k13, k14, k15, KC_NO, k16, k17, k18, k19, k1a, k1b }, \
{ k20, k21, k22, k23, k24, k25, KC_NO, k26, k27, k28, k29, k2a, k2b }, \
{ k30, k31, k32, k33, k34, k35, k46, k36, k37, k38, k39, k3a, k3b }, \
{ k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c, k4d } \
}
#endif

View File

@@ -0,0 +1,83 @@
/*
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 "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6062
#define DEVICE_VER 0x0001
#define MANUFACTURER Profet
#define PRODUCT Atreus62
#define DESCRIPTION q.m.k. keyboard firmware for Atreus62
/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 5
#define MATRIX_COLS 13
// wiring of each half
#define MATRIX_ROW_PINS { D2, D3, D1, D0, D4 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7, C6 }
#define CATERINA_BOOTLOADER
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
// #define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* 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
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
// #define NO_DEBUG
/* disable print */
// #define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#endif

View File

@@ -0,0 +1,71 @@
// this is the style you want to emulate.
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
#include "atreus62.h"
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _DEFAULT 0
#define _NAV 1
#define _RESET 2
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT] = { /* qwerty */
{ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS },
{ KC_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC },
{ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
{ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LBRC },
{ KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(_NAV),KC_BSPC, KC_ENT, KC_SPC, KC_EQL, KC_MINS, KC_QUOT, KC_ENT, KC_RGUI }
},
[_NAV] = {
{ TO(_DEFAULT), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 },
{ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS },
{ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS },
{ TO(_RESET), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
{ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
},
[_RESET] = {
{ TO(_DEFAULT), 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_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_NO , KC_NO , KC_NO , RESET }
}
/*
[_TRNS] = {
{ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
{ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
{ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
{ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
{ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
},
*/
};
const uint16_t PROGMEM fn_actions[] = {
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch (id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
}
else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};

View File

@@ -0,0 +1,5 @@
TAP_DANCE_ENABLE = yes
NKRO_ENABLE = true
MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = no

View File

@@ -0,0 +1,56 @@
<!-- -*- mode: markdown; fill-column: 8192 -*- -->
Mnemes Swedish Bonaza
=======================
My Layout in process, most of the code is shamelessly stolen from [algernons][algernon] excellent layout
[algernon]: https://github.com/algernon/ergodox-layout
It's for Windows (current work forces me to) and Swedish (matter of birth) so ymmw.
## Table of Contents
* [Layouts](#layouts)
- [Base layer](#base-layer)
- [Nav layer](#nav-layer)
- [Sym layer](#sym-layer)
- [LED states](#led-states)
# Layouts
## Base layer
![Base layer](img/base.png)
* The number row doubles as a function row. Short presses produces numbers, long presses produces Fxx
* The `Shift`, `Alt`, and `Control` modifiers are one-shot.
* `Backspace` and `Enter` doubles as switches to the `sym` layer when held
* The `ESC` key also doubles as a one-shot cancel key.
* The **Lead** key is followed by a sequence of keys.
- `LEAD l` : `lgui+l`.
- `LEAD s l` : `λ`.
- `LEAD s s` : `¯\_(ツ)_/¯`
- `LEAD s f` : `凸(ツ)凸`
- `LEAD a *` : Application switching based on position in start menu. Very specific to my computer.
## Nav layer
![Nav layer](img/fun.png)
Basic navigation on the right hand and modifiers close
by for the left. The latter because I tend to use `ctrl+arrows` quite a lot.
## Sym layer
![Sym layer](img/sym.png)
* Easy access to most symbols I use on a daily basis. Most common are on the home row, the rest are grouped as best as I could.
- `eq` : Tapdance, produces `===` and `!==`
- `fun`: Tapdance, produces `=>` and `() => {\n`
# License
GPL-3+

View File

@@ -0,0 +1,7 @@
#define ONESHOT_TIMEOUT 3000
#define TAPPING_TERM 200
#define PREVENT_STUCK_MODIFIERS
#define LEADER_TIMEOUT 1000
#include "../../config.h"

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

View File

@@ -0,0 +1,337 @@
#include <stdarg.h>
#include "atreus62.h"
#include "led.h"
#include "action_layer.h"
#include "action_util.h"
/*
*WINDOWS SWEDISH
*/
#define KN_HALF KC_GRV // 1/2
#define KN_PLUS KC_MINS // +
#define KN_ACUT KC_EQL // ´
#define KN_AO KC_LBRC // Å
#define KN_UMLA KC_RBRC // ¨
#define KN_OE KC_SCLN // Ö
#define KN_AE KC_QUOT // Ä
#define KN_QUOT KC_NUHS // '
#define KN_LABK KC_NUBS // <
#define KN_MINS KC_SLSH // -
#define KN_EXLM LSFT(KC_1) // !
#define KN_DQT LSFT(KC_2) // "
#define KN_AT RALT(KC_2) // @
#define KN_HASH LSFT(KC_3) // #
#define KN_DLR RALT(KC_4) // $
#define KN_PERC LSFT(KC_5) // %
#define KN_AMPR LSFT(KC_6) // &
#define KN_SLSH LSFT(KC_7) // /
#define KN_LPRN LSFT(KC_8) // (
#define KN_RPRN LSFT(KC_9) // )
#define KN_EQL LSFT(KC_0) // =
#define KN_UNDS LSFT(KN_MINS) // _
#define KN_QUES LSFT(KN_PLUS) // ?
#define KN_GRAV LSFT(KN_ACUT) // `
#define KN_LCBR RALT(KC_7) // {
#define KN_RCBR RALT(KC_0) // }
#define KN_LBRC RALT(KC_8) // [
#define KN_RBRC RALT(KC_9) // ]
#define KN_RABK LSFT(KN_LABK) // <
#define KN_COLN LSFT(KC_DOT) // :
#define KN_SCLN LSFT(KC_COMM) // :
#define KN_PIPE RALT(KN_LABK) // |
#define KN_QUES LSFT(KN_PLUS) // ?
#define KN_CIRC LSFT(KN_UMLA) // ^
#define KN_ASTR LSFT(KN_QUOT) // *
#define KN_TILD RALT(KN_UMLA) // ~
#define KN_BSLS RALT(KN_PLUS) //
#define OSM_LCTL OSM(MOD_LCTL)
#define OSM_LALT OSM(MOD_LALT)
#define OSM_LSFT OSM(MOD_LSFT)
#define KC_HYP LSFT(LALT(LCTL(KC_LGUI)))
#define KC_COPY LCTL(KC_C)
#define KC_PASTE LCTL(KC_V)
#define KC_UNDO LCTL(KC_Z)
#define KC_REDO LCTL(LSFT(KC_Z))
// Layers
enum {
BASE = 0,
NAV,
SYM
};
//Macros
enum {
KF_1 = 0, // 1, F1
KF_2, // ...
KF_3,
KF_4,
KF_5,
KF_6,
KF_7,
KF_8,
KF_9,
KF_10,
KF_11,
KF_12
};
// Tapdance
enum {
TD_FUN = 0,
TD_EQ
};
//Custom keycodes
enum {
PLACEHOLDER = SAFE_RANGE
};
//State and timers
uint16_t kf_timers[12];
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = {
{ M(KF_11) ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,KC_NO ,M(KF_6) ,M(KF_7) ,M(KF_8) ,M(KF_9) ,M(KF_10) ,M(KF_12) },
{ KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_NO ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KN_AO },
{ OSM_LCTL ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_NO ,KC_H ,KC_J ,KC_K ,KC_L ,KN_OE ,KN_AE },
{ OSM_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_DELT ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KN_MINS ,OSM_LSFT },
{ MO(NAV) ,OSM_LCTL ,OSM_LALT ,KC_LGUI ,KC_SPC ,LT(SYM,KC_BSPC) ,KC_HYP ,LT(SYM,KC_ENT) ,KC_SPC ,KC_LEAD ,KC_LALT ,KC_LCTRL ,MO(NAV) }
},
[NAV] = {
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_NO ,KC_PGUP ,KC_HOME ,KC_UP ,KC_END ,KC_TRNS ,KC_TRNS },
{ KC_TRNS ,KC_LSFT ,KC_LCTL ,KC_LALT ,KC_L ,KC_TRNS ,KC_NO ,KC_PGDN ,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_TRNS ,KC_TRNS },
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_VOLD ,KC_VOLU }
},
[SYM] = {
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,TD(TD_EQ) ,KC_NO ,TD(TD_FUN) ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS },
{ KC_TRNS ,KN_LABK ,KN_RABK ,KN_LCBR ,KN_RCBR ,KN_PLUS ,KC_NO ,KN_AT ,KN_DQT ,KN_QUOT ,KN_GRAV ,KN_SLSH ,KC_TRNS },
{ KC_TRNS ,KN_EXLM ,KN_EQL ,KN_LPRN ,KN_RPRN ,KN_MINS ,KC_NO ,KN_UNDS ,KN_SCLN ,KN_COLN ,KN_AMPR ,KN_PIPE ,KC_TRNS },
{ KC_TRNS ,KN_DLR ,KN_PERC ,KN_LBRC ,KN_RBRC ,KN_ASTR ,KC_TRNS ,KN_HASH ,KC_COMM ,KC_DOT ,KN_QUES ,KN_BSLS ,KC_TRNS },
{ KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS }
}
};
#define TAP_ONCE(code) \
register_code (code); \
unregister_code (code)
static void m_tapn (uint8_t code, ...) {
uint8_t kc = code;
va_list ap;
va_start(ap, code);
do {
register_code(kc);
unregister_code(kc);
wait_ms(50);
kc = va_arg(ap, int);
} while (kc != 0);
va_end(ap);
}
static void m_handle_kf (keyrecord_t *record, uint8_t id) {
uint8_t code = id - KF_1;
if (record->event.pressed) {
kf_timers[code] = timer_read ();
} else {
uint8_t kc_base;
uint8_t long_press = (kf_timers[code] && timer_elapsed (kf_timers[code]) > TAPPING_TERM);
kf_timers[code] = 0;
switch(id){
case KF_1 ... KF_10:
if (long_press) {
// Long press
kc_base = KC_F1;
} else {
kc_base = KC_1;
}
code += kc_base;
break;
case KF_11:
code = long_press ? KC_F11 : KC_ESC;
break;
case KF_12:
code = long_press ? KC_F12 : KN_PLUS;
break;
}
register_code (code);
unregister_code (code);
}
}
const uint16_t PROGMEM fn_actions[] = {
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch (id) {
case KF_1 ... KF_12:
m_handle_kf(record, id);
break;
}
return MACRO_NONE;
};
// Custom keycodes
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool queue = true;
//Cancle one-shot mods.
switch (keycode) {
case KC_ESC:
if (record->event.pressed && get_oneshot_mods() && !has_oneshot_mods_timed_out()) {
clear_oneshot_mods();
queue = false;
}
break;
}
return queue;
}
// TAP DANCE SETTINGS
void dance_eq (qk_tap_dance_state_t *state, void *user_data) {
switch (state->count) {
case 1: // ===
register_code(KC_LSHIFT);
m_tapn(KC_0, KC_0, KC_0, 0);
unregister_code(KC_LSHIFT);
break;
case 2:
register_code(KC_LSHIFT);
m_tapn(KC_1, KC_0, KC_0, 0);
unregister_code(KC_LSHIFT);
break;
default:
reset_tap_dance(state);
}
}
void dance_fun (qk_tap_dance_state_t *state, void *user_data) {
switch (state->count) {
case 1: // =>
register_code(KC_LSHIFT);
m_tapn(KC_0, KN_LABK, 0);
unregister_code(KC_LSHIFT);
break;
case 2: // () => {}
register_code(KC_LSHIFT);
m_tapn(KC_8, KC_9, KC_SPC, KC_0, KN_LABK, KC_SPC, 0);
unregister_code(KC_LSHIFT);
register_code(KC_RALT);
m_tapn(KC_7, 0);
unregister_code(KC_RALT);
TAP_ONCE(KC_ENT);
break;
default:
reset_tap_dance(state);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_FUN] = ACTION_TAP_DANCE_FN (dance_fun)
,[TD_EQ] = ACTION_TAP_DANCE_FN (dance_eq)
};
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
set_unicode_input_mode(UC_WINC);
};
LEADER_EXTERNS();
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
LEADER_DICTIONARY() {
leading = false;
leader_end();
SEQ_ONE_KEY(KC_L){
register_code(KC_RGUI);
TAP_ONCE(KC_L);
unregister_code(KC_RGUI);
};
SEQ_TWO_KEYS (KC_A, KC_W) {
//Web - chrome
register_code (KC_LGUI); TAP_ONCE (KC_1); unregister_code (KC_LGUI);
}
SEQ_TWO_KEYS (KC_A, KC_P) {
//sPotify
register_code (KC_LGUI); TAP_ONCE (KC_2); unregister_code (KC_LGUI);
}
SEQ_TWO_KEYS (KC_A, KC_T) {
//Total Commander
register_code (KC_LGUI); TAP_ONCE (KC_3); unregister_code (KC_LGUI);
}
SEQ_TWO_KEYS (KC_A, KC_A) {
//Atom
register_code (KC_LGUI); TAP_ONCE (KC_4); unregister_code (KC_LGUI);
}
SEQ_TWO_KEYS (KC_A, KC_E) {
//Emacs
register_code (KC_LGUI); TAP_ONCE (KC_5); unregister_code (KC_LGUI);
}
SEQ_TWO_KEYS (KC_A, KC_C) {
//Cmdr
register_code (KC_LGUI); TAP_ONCE (KC_6); unregister_code (KC_LGUI);
}
SEQ_TWO_KEYS (KC_A, KC_S) {
//Slack
register_code (KC_LGUI); TAP_ONCE (KC_7); unregister_code (KC_LGUI);
}
SEQ_TWO_KEYS (KC_S, KC_S) {
// ¯\_(ツ)_/¯
unicode_input_start(); register_hex(0xaf); unicode_input_finish();
register_code (KC_LALT);
register_code (KC_LCTL);
TAP_ONCE (KN_PLUS);
unregister_code (KC_LCTL);
unregister_code (KC_LALT);
register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT);
unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
register_code (KC_RSFT); TAP_ONCE (KC_9); TAP_ONCE(KC_7); unregister_code (KC_RSFT);
unicode_input_start (); register_hex(0xaf); unicode_input_finish();
}
SEQ_TWO_KEYS (KC_S, KC_F) {
// 凸(ツ)凸
unicode_input_start(); register_hex(0x51F8); unicode_input_finish();
register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT);
unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
register_code (KC_RSFT); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
unicode_input_start (); register_hex(0x51F8); unicode_input_finish();
}
SEQ_TWO_KEYS (KC_S, KC_L) {
// λ
unicode_input_start();
register_hex(0x03bb);
unicode_input_finish();
}
};
};

View File

@@ -0,0 +1,114 @@
Todo
☐ 2610 Todo
☑ 2611 Done
☒ 2612 Failed
Operator
× 00D7 Multiplication
÷ 00F7 Division
≤ 2264 LessEqual
≥ 2265 MoreEqual
± 00B1 Plusminus
Math
∏ 220F Product
∑ 2211 Sum
≈ 2248 Almost
≡ 2261 Equivalent
∞ 221E Infinity
‰ 2030 Mille
Set
⊂ 2282 Subset
⊃ 2283 sUperset
∩ 2229 Intersextion
222A Union
∈ 2208 Element
∉ 2209 Notelement
∍ 220D Contains
∌ 220C doesNotcontain
Logic
¬ 00AC Not
∧ 2227 And
2228 Or
∃ 2203 Exists
∄ 2204 Notexists
Greek
µ 00B5 Micro
λ 03BB Lamda
Ω 2126 Omega
α 03B1 Alpha
β 03B2 Beta
γ 03B3 Gamma
π 03C0 Pi
δ 03B4 Delta
Other
☁ 2601 Cloud
☼ 263C Sun
☂ 2602 Rain
☠ 2620 Skull
♺ 267A Recycle
👍1F44D thumbsUp
👎1F44E thumbsDown
💩 1F4A9 Poo
//Todo
SEQ_THREE_KEYS(KC_U, KC_G, KC_T){m_unicode(0x2610);}; // Todo
SEQ_THREE_KEYS(KC_U, KC_G, KC_D){m_unicode(0x2611);}; // Done
SEQ_THREE_KEYS(KC_U, KC_G, KC_F){m_unicode(0x2612);}; // Failed
//Operator
SEQ_THREE_KEYS(KC_U, KC_O, KC_M){m_unicode(0x00D7);}; // Multiplication
SEQ_THREE_KEYS(KC_U, KC_O, KC_D){m_unicode(0x00F7);}; // Division
SEQ_THREE_KEYS(KC_U, KC_O, KC_L){m_unicode(0x2264);}; // LessEqual
SEQ_THREE_KEYS(KC_U, KC_O, KC_M){m_unicode(0x2265);}; // MoreEqual
SEQ_THREE_KEYS(KC_U, KC_O, KC_P){m_unicode(0x00B1);}; // Plusminus
//Math
SEQ_THREE_KEYS(KC_U, KC_M, KC_P){m_unicode(0x220F);}; // Product
SEQ_THREE_KEYS(KC_U, KC_M, KC_S){m_unicode(0x2211);}; // Sum
SEQ_THREE_KEYS(KC_U, KC_M, KC_A){m_unicode(0x2248);}; // Almost
SEQ_THREE_KEYS(KC_U, KC_M, KC_E){m_unicode(0x2261);}; // Equivalent
SEQ_THREE_KEYS(KC_U, KC_M, KC_I){m_unicode(0x221E);}; // Infinity
SEQ_THREE_KEYS(KC_U, KC_M, KC_M){m_unicode(0x2030);}; // Mille
//Set
SEQ_THREE_KEYS(KC_U, KC_S, KC_S){m_unicode(0x2282);}; Subset
SEQ_THREE_KEYS(KC_U, KC_S, KC_P){m_unicode(0x2283);}; suPerset
SEQ_THREE_KEYS(KC_U, KC_S, KC_I){m_unicode(0x2229);}; Intersection
SEQ_THREE_KEYS(KC_U, KC_S, KC_U){m_unicode(0x222A);}; Union
SEQ_THREE_KEYS(KC_U, KC_S, KC_E){m_unicode(0x2208);}; Element
SEQ_THREE_KEYS(KC_U, KC_S, KC_N){m_unicode(0x2209);}; Notelement
SEQ_THREE_KEYS(KC_U, KC_S, KC_C){m_unicode(0x220D);}; Contains
SEQ_THREE_KEYS(KC_U, KC_S, KC_D){m_unicode(0x220C);}; doesNotcontain
//Logic
SEQ_THREE_KEYS(KC_U, KC_L, KC_N){m_unicode(0x00AC);}; // Not
SEQ_THREE_KEYS(KC_U, KC_L, KC_A){m_unicode(0x2227);}; // And
SEQ_THREE_KEYS(KC_U, KC_L, KC_O){m_unicode(0x2228);}; // Or
SEQ_THREE_KEYS(KC_U, KC_L, KC_E){m_unicode(0x2203);}; // Exists
SEQ_THREE_KEYS(KC_U, KC_L, KC_N){m_unicode(0x2204);}; // Notexists
//Greek
SEQ_THREE_KEYS(KC_U, KC_G, KC_M){m_unicode(0x00B5);}; // Micro
SEQ_THREE_KEYS(KC_U, KC_G, KC_L){m_unicode(0x03BB);}; // Lamda
SEQ_THREE_KEYS(KC_U, KC_G, KC_O){m_unicode(0x2126);}; // Omega
SEQ_THREE_KEYS(KC_U, KC_G, KC_A){m_unicode(0x03B1);}; // Alpha
SEQ_THREE_KEYS(KC_U, KC_G, KC_B){m_unicode(0x03B2);}; // Beta
SEQ_THREE_KEYS(KC_U, KC_G, KC_G){m_unicode(0x03B3);}; // Gamma
SEQ_THREE_KEYS(KC_U, KC_G, KC_P){m_unicode(0x03C0);}; // Pi
SEQ_THREE_KEYS(KC_U, KC_G, KC_D){m_unicode(0x03B4);}; // Delta
//Zother
SEQ_THREE_KEYS(KC_U, KC_Z, KC_C){m_unicode(0x2601);}; // Cloud
SEQ_THREE_KEYS(KC_U, KC_Z, KC_S){m_unicode(0x263C);}; // Sun
SEQ_THREE_KEYS(KC_U, KC_Z, KC_R){m_unicode(0x2602);}; // Rain
SEQ_THREE_KEYS(KC_U, KC_Z, KC_K){m_unicode(0x2620);}; // sKull
SEQ_THREE_KEYS(KC_U, KC_Z, KC_R){m_unicode(0x267A);}; // rEcycle
SEQ_THREE_KEYS(KC_U, KC_Z, KC_U){m_unicode(0x1F44D);}; // thumbsUp
SEQ_THREE_KEYS(KC_U, KC_Z, KC_D){m_unicode(0x1F44E);}; // thumbsDown
SEQ_THREE_KEYS(KC_U, KC_Z, KC_P){m_unicode(0x1F4A9);}; // Poo

View File

@@ -0,0 +1,362 @@
/*
pins_arduino.h - Pin definition functions for Arduino
Part of Arduino - http://www.arduino.cc/
Copyright (c) 2007 David A. Mellis
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General
Public License along with this library; if not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
$Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
*/
#ifndef Pins_Arduino_h
#define Pins_Arduino_h
#include <avr/pgmspace.h>
// Workaround for wrong definitions in "iom32u4.h".
// This should be fixed in the AVR toolchain.
#undef UHCON
#undef UHINT
#undef UHIEN
#undef UHADDR
#undef UHFNUM
#undef UHFNUML
#undef UHFNUMH
#undef UHFLEN
#undef UPINRQX
#undef UPINTX
#undef UPNUM
#undef UPRST
#undef UPCONX
#undef UPCFG0X
#undef UPCFG1X
#undef UPSTAX
#undef UPCFG2X
#undef UPIENX
#undef UPDATX
#undef TCCR2A
#undef WGM20
#undef WGM21
#undef COM2B0
#undef COM2B1
#undef COM2A0
#undef COM2A1
#undef TCCR2B
#undef CS20
#undef CS21
#undef CS22
#undef WGM22
#undef FOC2B
#undef FOC2A
#undef TCNT2
#undef TCNT2_0
#undef TCNT2_1
#undef TCNT2_2
#undef TCNT2_3
#undef TCNT2_4
#undef TCNT2_5
#undef TCNT2_6
#undef TCNT2_7
#undef OCR2A
#undef OCR2_0
#undef OCR2_1
#undef OCR2_2
#undef OCR2_3
#undef OCR2_4
#undef OCR2_5
#undef OCR2_6
#undef OCR2_7
#undef OCR2B
#undef OCR2_0
#undef OCR2_1
#undef OCR2_2
#undef OCR2_3
#undef OCR2_4
#undef OCR2_5
#undef OCR2_6
#undef OCR2_7
#define NUM_DIGITAL_PINS 30
#define NUM_ANALOG_INPUTS 12
#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0)
#define TXLED0 PORTD |= (1<<5)
#define TXLED1 PORTD &= ~(1<<5)
#define RXLED0 PORTB |= (1<<0)
#define RXLED1 PORTB &= ~(1<<0)
static const uint8_t SDA = 2;
static const uint8_t SCL = 3;
#define LED_BUILTIN 13
// Map SPI port to 'new' pins D14..D17
static const uint8_t SS = 17;
static const uint8_t MOSI = 16;
static const uint8_t MISO = 14;
static const uint8_t SCK = 15;
// Mapping of analog pins as digital I/O
// A6-A11 share with digital pins
static const uint8_t ADC0 = 18;
static const uint8_t ADC1 = 19;
static const uint8_t ADC2 = 20;
static const uint8_t ADC3 = 21;
static const uint8_t ADC4 = 22;
static const uint8_t ADC5 = 23;
static const uint8_t ADC6 = 24; // D4
static const uint8_t ADC7 = 25; // D6
static const uint8_t ADC8 = 26; // D8
static const uint8_t ADC9 = 27; // D9
static const uint8_t ADC10 = 28; // D10
static const uint8_t ADC11 = 29; // D12
#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0))
#define digitalPinToPCICRbit(p) 0
#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0))
#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4))))))
// __AVR_ATmega32U4__ has an unusual mapping of pins to channels
extern const uint8_t PROGMEM analog_pin_to_channel_PGM[];
#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) )
#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT)))))
#ifdef ARDUINO_MAIN
// On the Arduino board, digital pins are also used
// for the analog output (software PWM). Analog input
// pins are a separate set.
// ATMEL ATMEGA32U4 / ARDUINO LEONARDO
//
// D0 PD2 RXD1/INT2
// D1 PD3 TXD1/INT3
// D2 PD1 SDA SDA/INT1
// D3# PD0 PWM8/SCL OC0B/SCL/INT0
// D4 A6 PD4 ADC8
// D5# PC6 ??? OC3A/#OC4A
// D6# A7 PD7 FastPWM #OC4D/ADC10
// D7 PE6 INT6/AIN0
//
// D8 A8 PB4 ADC11/PCINT4
// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5
// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6
// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7
// D12 A11 PD6 T1/#OC4D/ADC9
// D13# PC7 PWM10 CLK0/OC4A
//
// A0 D18 PF7 ADC7
// A1 D19 PF6 ADC6
// A2 D20 PF5 ADC5
// A3 D21 PF4 ADC4
// A4 D22 PF1 ADC1
// A5 D23 PF0 ADC0
//
// New pins D14..D17 to map SPI port to digital pins
//
// MISO D14 PB3 MISO,PCINT3
// SCK D15 PB1 SCK,PCINT1
// MOSI D16 PB2 MOSI,PCINT2
// SS D17 PB0 RXLED,SS/PCINT0
//
// Connected LEDs on board for TX and RX
// TXLED D24 PD5 XCK1
// RXLED D17 PB0
// HWB PE2 HWB
// these arrays map port names (e.g. port B) to the
// appropriate addresses for various functions (e.g. reading
// and writing)
const uint16_t PROGMEM port_to_mode_PGM[] = {
NOT_A_PORT,
NOT_A_PORT,
(uint16_t) &DDRB,
(uint16_t) &DDRC,
(uint16_t) &DDRD,
(uint16_t) &DDRE,
(uint16_t) &DDRF,
};
const uint16_t PROGMEM port_to_output_PGM[] = {
NOT_A_PORT,
NOT_A_PORT,
(uint16_t) &PORTB,
(uint16_t) &PORTC,
(uint16_t) &PORTD,
(uint16_t) &PORTE,
(uint16_t) &PORTF,
};
const uint16_t PROGMEM port_to_input_PGM[] = {
NOT_A_PORT,
NOT_A_PORT,
(uint16_t) &PINB,
(uint16_t) &PINC,
(uint16_t) &PIND,
(uint16_t) &PINE,
(uint16_t) &PINF,
};
const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
PD, // D0 - PD2
PD, // D1 - PD3
PD, // D2 - PD1
PD, // D3 - PD0
PD, // D4 - PD4
PC, // D5 - PC6
PD, // D6 - PD7
PE, // D7 - PE6
PB, // D8 - PB4
PB, // D9 - PB5
PB, // D10 - PB6
PB, // D11 - PB7
PD, // D12 - PD6
PC, // D13 - PC7
PB, // D14 - MISO - PB3
PB, // D15 - SCK - PB1
PB, // D16 - MOSI - PB2
PB, // D17 - SS - PB0
PF, // D18 - A0 - PF7
PF, // D19 - A1 - PF6
PF, // D20 - A2 - PF5
PF, // D21 - A3 - PF4
PF, // D22 - A4 - PF1
PF, // D23 - A5 - PF0
PD, // D24 - PD5
PD, // D25 / D6 - A7 - PD7
PB, // D26 / D8 - A8 - PB4
PB, // D27 / D9 - A9 - PB5
PB, // D28 / D10 - A10 - PB6
PD, // D29 / D12 - A11 - PD6
};
const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
_BV(2), // D0 - PD2
_BV(3), // D1 - PD3
_BV(1), // D2 - PD1
_BV(0), // D3 - PD0
_BV(4), // D4 - PD4
_BV(6), // D5 - PC6
_BV(7), // D6 - PD7
_BV(6), // D7 - PE6
_BV(4), // D8 - PB4
_BV(5), // D9 - PB5
_BV(6), // D10 - PB6
_BV(7), // D11 - PB7
_BV(6), // D12 - PD6
_BV(7), // D13 - PC7
_BV(3), // D14 - MISO - PB3
_BV(1), // D15 - SCK - PB1
_BV(2), // D16 - MOSI - PB2
_BV(0), // D17 - SS - PB0
_BV(7), // D18 - A0 - PF7
_BV(6), // D19 - A1 - PF6
_BV(5), // D20 - A2 - PF5
_BV(4), // D21 - A3 - PF4
_BV(1), // D22 - A4 - PF1
_BV(0), // D23 - A5 - PF0
_BV(5), // D24 - PD5
_BV(7), // D25 / D6 - A7 - PD7
_BV(4), // D26 / D8 - A8 - PB4
_BV(5), // D27 / D9 - A9 - PB5
_BV(6), // D28 / D10 - A10 - PB6
_BV(6), // D29 / D12 - A11 - PD6
};
const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
TIMER0B, /* 3 */
NOT_ON_TIMER,
TIMER3A, /* 5 */
TIMER4D, /* 6 */
NOT_ON_TIMER,
NOT_ON_TIMER,
TIMER1A, /* 9 */
TIMER1B, /* 10 */
TIMER0A, /* 11 */
NOT_ON_TIMER,
TIMER4A, /* 13 */
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
NOT_ON_TIMER,
};
const uint8_t PROGMEM analog_pin_to_channel_PGM[] = {
7, // A0 PF7 ADC7
6, // A1 PF6 ADC6
5, // A2 PF5 ADC5
4, // A3 PF4 ADC4
1, // A4 PF1 ADC1
0, // A5 PF0 ADC0
8, // A6 D4 PD4 ADC8
10, // A7 D6 PD7 ADC10
11, // A8 D8 PB4 ADC11
12, // A9 D9 PB5 ADC12
13, // A10 D10 PB6 ADC13
9 // A11 D12 PD6 ADC9
};
#endif /* ARDUINO_MAIN */
// These serial port names are intended to allow libraries and architecture-neutral
// sketches to automatically default to the correct port name for a particular type
// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
// the first hardware serial port whose RX/TX pins are not dedicated to another use.
//
// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
//
// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial
//
// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library
//
// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins.
//
// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
// pins are NOT connected to anything by default.
#define SERIAL_PORT_MONITOR Serial
#define SERIAL_PORT_USBVIRTUAL Serial
#define SERIAL_PORT_HARDWARE Serial1
#define SERIAL_PORT_HARDWARE_OPEN Serial1
#endif /* Pins_Arduino_h */

View File

@@ -0,0 +1,10 @@
atreus62 keyboard firmware
======================
This firmware is for the atreus62 keyboard.
This version utilizes a Pro Micro for its controller and has a 62 key layout.
https://github.com/profet23/atreus62
TODO: More information

View File

@@ -0,0 +1,66 @@
# MCU name
#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
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(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# 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
# 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 ?= yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration
NKRO_ENABLE ?= no # 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
UNICODE_ENABLE ?= yes # Unicode
#BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend

View File

@@ -26,7 +26,7 @@
/* Underlight configuration
*/
#define RGB_DI_PIN B2
#define RGBLIGHT_TIMER
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 14 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17

View File

@@ -30,7 +30,7 @@
/* Underlight configuration
*/
#define RGB_DI_PIN D7
#define RGBLIGHT_TIMER
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 14 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17

View File

@@ -140,7 +140,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Underlight configuration
*/
#define RGB_DI_PIN E6
//#define RGBLIGHT_TIMER
//#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 4 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17

View File

@@ -1 +1,5 @@
# The default keymap for cluecard
Note that this keymap has audio enabled, so the RGB mode button does not go through the different effects.
So the LEDs will still show a static light, that is configurable with the hue, staturation and brightness
buttons. You can of course also turn them on and off with the on/off button.

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 = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
CONSOLE_ENABLE = yes # 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 = yes # 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 = yes # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -0,0 +1,12 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
// place overrides here
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2
#endif

View File

@@ -0,0 +1,28 @@
#include "cluecard.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP(
RGB_TOG, RGB_SAI, RGB_VAI, \
RGB_HUD, RGB_HUI, \
RGB_MOD, RGB_SAD, RGB_VAD, \
BL_STEP, \
KC_NO, KC_NO, KC_NO \
)
};
const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {255, 170, 85};
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {255, 170, 85};
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void led_set_user(uint8_t usb_led) {
}

View File

@@ -0,0 +1,7 @@
# RGB effect test keymap for cluecard
This keymap is made for testing the RGB effects. Audio is disabled and the mode buttons goes through each
effect. If you run HID-listen you will be able to see which effect is active. For a list of effects, check
the `rgblight.c` file.
The hue, saturation and brightness buttons will work depending on which effect is active.

View File

@@ -70,7 +70,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Underlight configuration
*/
#define RGB_DI_PIN F6
#define RGBLIGHT_TIMER
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 4 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17

View File

@@ -0,0 +1,3 @@
ifndef MAKEFILE_INCLUDED
include ../../Makefile
endif

View File

@@ -0,0 +1 @@
#include "converter.h"

View File

@@ -0,0 +1 @@
#include "quantum.h"

View File

@@ -0,0 +1,40 @@
Keyboard converter for IBM terminal keyboard
============================================
This is a port of TMK's converter/terminal_usb to QMK.
It supports PS/2 Scan Code Set 3 and runs on USB AVR chips such like PJRC Teensy.
I tested the converter on ATMega32U4 with 1392595(102keys) and 6110345(122keys).
Source code: https://github.com/tmk/tmk_keyboard
Article: http://geekhack.org/index.php?topic=27272.0
CONNECTION
----------
Keyboard ATMega32U4
----------------------
Data: PD2
Clock: PD5
And VCC and GND, of course. See RESOURCE for keyboard connector pin assign.
BUILD
-----
$ git clone https://github.com/tmk/tmk_keyboard.git
$ cd converter/terminal_usb
$ make
RESOURCE
--------
Soarer's Converter: http://geekhack.org/index.php?topic=17458.0
102keys(1392595): http://geekhack.org/index.php?topic=10737.0
122keys(1390876): http://www.seasip.info/VintagePC/ibm_1390876.html
KbdBabel: http://www.kbdbabel.org/
RJ45 Connector: http://www.kbdbabel.org/conn/kbd_connector_ibmterm.png
DIN Connector: http://www.kbdbabel.org/conn/kbd_connector_ibm3179_318x_319x.png
WinAVR: http://winavr.sourceforge.net/
EOF

View File

@@ -0,0 +1,138 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2016 Priyadi Iman Nurcahyo <priyadi@priyadi.net>
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 0x6535
#define DEVICE_VER 0x0100
#define MANUFACTURER QMK
#define PRODUCT IBM Terminal Keyboard
#define DESCRIPTION USB converter for IBM Terminal Keyboard
/* matrix size */
#define MATRIX_ROWS 17 // 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) | MOD_BIT(KC_RALT) | MOD_BIT(KC_RCTL)) \
)
/*
* PS/2 USART configuration for ATMega32U4
*/
#ifdef PS2_USE_USART
/* XCK for clock line */
#define PS2_CLOCK_PORT PORTD
#define PS2_CLOCK_PIN PIND
#define PS2_CLOCK_DDR DDRD
#define PS2_CLOCK_BIT 5
/* RXD for data line */
#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
#endif
/*
* PS/2 Interrupt configuration
*/
#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 0
#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
/*
* PS/2 Busywait configuration
*/
#ifdef PS2_USE_BUSYWAIT
#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 0
#endif
#endif

View File

@@ -0,0 +1,6 @@
#include "ibm_terminal.h"
// void matrix_init_kb(void) {
// matrix_init_user();
// }

View File

@@ -0,0 +1,82 @@
#ifndef IBM_TERMINAL_H
#define IBM_TERMINAL_H
#include "quantum.h"
void matrix_init_user(void);
/*
* 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, K01, KC_NO, K03, K04, K05, K06, K07 }, \
{ K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17 }, \
{ K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27 }, \
{ K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
{ K30, K31, K32, K33, K34, K35, K36, K37 }, \
{ K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
{ K40, K41, K42, K43, K44, K45, K46, K47 }, \
{ K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \
{ K50, K51, K52, K53, K54, K55, K56, K57 }, \
{ K58, K59, K5A, K5B, K5C, K5D, K5E, K5F }, \
{ K60, K61, K62, K63, K64, K65, K66, K67 }, \
{ K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
{ K70, K71, K72, K73, K74, K75, K76, K77 }, \
{ K78, K79, K7A, K7B, K7C, K7D, K7E, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, K83, K84, KC_NO, KC_NO, KC_NO,}, \
}
/*
* IBM Terminal keyboard 1399625, 101-key
*/
#define KEYMAP_101( \
K08, K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, K57,K5F,K62, \
\
K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, K67,K6E,K6F, K76,K77,K7E,K84, \
K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5C, K64,K65,K6D, K6C,K75,K7D, \
K14,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52, K5A, K6B,K73,K74,K7C, \
K12, K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A, K59, K63, K69,K72,K7A, \
K11, K19, K29, K39, K58, K61,K60,K6A, K70, K71,K79 \
) { \
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K07 }, \
{ K08, KC_NO, KC_NO, KC_NO, KC_NO, K0D, K0E, K0F }, \
{ KC_NO, K11, K12, KC_NO, K14, K15, K16, K17 }, \
{ KC_NO, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
{ KC_NO, K21, K22, K23, K24, K25, K26, K27 }, \
{ KC_NO, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
{ KC_NO, K31, K32, K33, K34, K35, K36, K37 }, \
{ KC_NO, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
{ KC_NO, K41, K42, K43, K44, K45, K46, K47 }, \
{ KC_NO, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \
{ KC_NO, KC_NO, K52, KC_NO, K54, K55, K56, K57 }, \
{ K58, K59, K5A, K5B, K5C, KC_NO, K5E, K5F }, \
{ K60, K61, K62, K63, K64, K65, K66, K67 }, \
{ KC_NO, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
{ K70, K71, K72, K73, K74, K75, K76, K77 }, \
{ KC_NO, K79, K7A, KC_NO, K7C, K7D, K7E, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, KC_NO, K84, KC_NO, KC_NO, KC_NO,}, \
}
#endif

View File

@@ -0,0 +1,27 @@
# 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 ?= no # 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
UNICODEMAP_ENABLE ?= yes
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.
PS2_USE_USART ?= yes
API_SYSEX_ENABLE ?= no
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../../Makefile
endif

View File

@@ -0,0 +1,6 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#endif

View File

@@ -0,0 +1,69 @@
/*
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 "keycode.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "ibm_terminal.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Layer 0
KEYMAP(
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_PSCR,KC_ESC, 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_NO, KC_BSPC, KC_INS, KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS,
KC_SLCK,KC_INT4, 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_NO, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_PAUS,KC_INT5, 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_BSLS,KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PCMM,
KC_APP, KC_INT6, KC_LSFT,KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_LEFT,KC_INT2,KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_RGUI,KC_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_GRV, KC_DOWN, KC_NO, KC_P0, KC_PDOT,KC_NO
),
/* 101-key keymaps
*/
/* 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| -| =|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| |Alt | Space |Alt | |Ctrl| |Lef|Dow|Rig| | 0| .| |
* `----' `---------------------------------------' `----' `-----------' `---------------'
*/
/*
KEYMAP_101(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK, KC_BRK,
KC_GRV, 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_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS,
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_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,
KC_CAPS, 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_PPLS,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT,KC_PENT
),
*/
};

View File

@@ -0,0 +1,27 @@
# 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 ?= no # 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
UNICODEMAP_ENABLE ?= yes
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.
PS2_USE_USART ?= yes
API_SYSEX_ENABLE ?= no
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../../Makefile
endif

View File

@@ -0,0 +1,6 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#endif

View File

@@ -0,0 +1,312 @@
/*
Copyright 2016 Priyadi Iman Nurcahyo <priyadi@priyadi.net>
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 "keycode.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "ibm_terminal.h"
#include "action_layer.h"
// Fillers to make layering clearer
#define _______ KC_TRNS
#define XXXXXXX KC_NO
enum layers {
QWE, // qwerty
COL, // colemak
WOR, // workman
DVO, // dvorak
MOU, // mouse keys
EMO, // emoji
SYS, // system
};
enum keycodes {
// default layout switcher
LAY_QWE = SAFE_RANGE,
LAY_COL,
LAY_WOR,
LAY_DVO,
// layer switchers
LYR_SYS,
LYR_EMO,
// os switchers
OS_LIN,
OS_WIN,
OS_MAC,
};
// unicode map
enum unicode_name {
GRIN, // grinning face 😊
TJOY, // tears of joy 😂
SMILE, // grining face with smiling eyes 😁
HEART, // heart ❤
EYERT, // smiling face with heart shaped eyes 😍
CRY, // crying face 😭
SMEYE, // smiling face with smiling eyes 😊
UNAMU, // unamused 😒
KISS, // kiss 😘
HART2, // two hearts 💕
WEARY, // weary 😩
OKHND, // ok hand sign 👌
PENSV, // pensive 😔
SMIRK, // smirk 😏
RECYC, // recycle ♻
WINK, // wink 😉
THMUP, // thumb up 👍
THMDN, // thumb down 👎
PRAY, // pray 🙏
PHEW, // relieved 😌
MUSIC, // musical notes
FLUSH, // flushed 😳
CELEB, // celebration 🙌
CRY2, // crying face 😢
COOL, // smile with sunglasses 😎
NOEVS, // see no evil
NOEVH, // hear no evil
NOEVK, // speak no evil
POO, // pile of poo
EYES, // eyes
VIC, // victory hand
BHART, // broken heart
SLEEP, // sleeping face
SMIL2, // smiling face with open mouth & sweat
HUNRD, // 100
CONFU, // confused
TONGU, // face with tongue & winking eye
DISAP, // disappointed
YUMMY, // face savoring delicious food
CLAP, // hand clapping
FEAR, // face screaming in fear
HORNS, // smiling face with horns
HALO, // smiling face with halo
BYE, // waving hand
SUN, // sun
MOON, // moon
SKULL, // skull
};
const uint32_t PROGMEM unicode_map[] = {
[GRIN] = 0x1F600,
[TJOY] = 0x1F602,
[SMILE] = 0x1F601,
[HEART] = 0x2764,
[EYERT] = 0x1f60d,
[CRY] = 0x1f62d,
[SMEYE] = 0x1F60A,
[UNAMU] = 0x1F612,
[KISS] = 0x1F618,
[HART2] = 0x1F495,
[WEARY] = 0x1F629,
[OKHND] = 0x1F44C,
[PENSV] = 0x1F614,
[SMIRK] = 0x1F60F,
[RECYC] = 0x267B,
[WINK] = 0x1F609,
[THMUP] = 0x1F44D,
[THMDN] = 0x1F44E,
[PRAY] = 0x1F64F,
[PHEW] = 0x1F60C,
[MUSIC] = 0x1F3B6,
[FLUSH] = 0x1F633,
[CELEB] = 0x1F64C,
[CRY2] = 0x1F622,
[COOL] = 0x1F60E,
[NOEVS] = 0x1F648,
[NOEVH] = 0x1F649,
[NOEVK] = 0x1F64A,
[POO] = 0x1F4A9,
[EYES] = 0x1F440,
[VIC] = 0x270C,
[BHART] = 0x1F494,
[SLEEP] = 0x1F634,
[SMIL2] = 0x1F605,
[HUNRD] = 0x1F4AF,
[CONFU] = 0x1F615,
[TONGU] = 0x1F61C,
[DISAP] = 0x1F61E,
[YUMMY] = 0x1F60B,
[CLAP] = 0x1F44F,
[FEAR] = 0x1F631,
[HORNS] = 0x1F608,
[HALO] = 0x1F607,
[BYE] = 0x1F44B,
[SUN] = 0x2600,
[MOON] = 0x1F314,
[SKULL] = 0x1F480,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* qwerty */
[QWE] = KEYMAP(
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_PSCR, KC_SLCK, KC_PAUS,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
MO(EMO), MO(SYS), 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, XXXXXXX, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_MNXT, KC_VOLU, 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, XXXXXXX, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_MPLY, KC_MUTE, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PCMM,
KC_MPRV, KC_VOLD, KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, KC_LEFT, TG(MOU), KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LGUI, KC_APP, KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_DOWN, XXXXXXX, KC_P0, KC_PDOT, XXXXXXX
),
/* colemak */
[COL] = KEYMAP(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* workman */
[WOR] = KEYMAP(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* dvorak */
[DVO] = KEYMAP(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* system */
[SYS] = KEYMAP(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, LAY_QWE, OS_WIN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, LAY_DVO, _______, _______, _______, _______, LAY_WOR, OS_LIN, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, LAY_COL, _______, _______, _______, OS_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* mouse keys */
[MOU] = KEYMAP(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_BTN4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_BTN5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, _______, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
KC_BTN1, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_D, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
),
/* emoji */
[EMO] = KEYMAP(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY), X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV),XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN), X(HEART),X(BYE), X(KISS), X(CELEB),X(COOL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,X(SLEEP),X(CLAP), X(CRY), X(VIC), X(BHART),X(SUN), X(SMEYE),X(WINK), X(MOON), X(CONFU), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
),
/*
[XXX] = KEYMAP(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
*/
};
void persistant_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
/* layout switcher */
case LAY_QWE:
if (record->event.pressed) {
persistant_default_layer_set(1UL<<QWE);
}
return false;
break;
case LAY_COL:
if (record->event.pressed) {
persistant_default_layer_set(1UL<<COL);
}
return false;
break;
case LAY_WOR:
if (record->event.pressed) {
persistant_default_layer_set(1UL<<WOR);
}
return false;
break;
case LAY_DVO:
if (record->event.pressed) {
persistant_default_layer_set(1UL<<DVO);
}
return false;
break;
/* os switcher */
case OS_LIN:
set_unicode_input_mode(UC_LNX);
return false;
break;
case OS_WIN:
set_unicode_input_mode(UC_WINC);
return false;
break;
case OS_MAC:
set_unicode_input_mode(UC_OSX);
return false;
break;
}
return true;
}
void matrix_init_user() {
set_unicode_input_mode(UC_LNX);
}

View File

@@ -0,0 +1,33 @@
/*
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

@@ -0,0 +1,237 @@
/*
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"
#define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row))
#define print_matrix_header() print("\nr/c 01234567\n")
#define matrix_bitpop(i) bitpop(matrix[i])
#define ROW_SHIFTER ((uint8_t)1)
static void matrix_make(uint8_t code);
static void matrix_break(uint8_t code);
/*
* Matrix Array usage:
* 'Scan Code Set 3' is assigned into 17x8 cell matrix.
*
* 8bit wide
* +---------+
* 0| |
* :| | 0x00-0x87
* ;| |
* 17| |
* +---------+
*/
static uint8_t matrix[MATRIX_ROWS];
#define ROW(code) (code>>3)
#define COL(code) (code&0x07)
__attribute__ ((weak))
void matrix_init_user(void) {
}
void matrix_init(void)
{
debug_enable = true;
//debug_matrix = true;
//debug_keyboard = true;
//debug_mouse = false;
ps2_host_init();
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
matrix_init_user();
return;
}
uint8_t matrix_scan(void)
{
// scan code reading states
static enum {
RESET,
RESET_RESPONSE,
KBD_ID0,
KBD_ID1,
CONFIG,
READY,
F0,
} state = RESET;
uint8_t code;
if ((code = ps2_host_recv())) {
debug("r"); debug_hex(code); debug(" ");
}
switch (state) {
case RESET:
debug("wFF ");
if (ps2_host_send(0xFF) == 0xFA) {
debug("[ack]\nRESET_RESPONSE: ");
state = RESET_RESPONSE;
}
break;
case RESET_RESPONSE:
if (code == 0xAA) {
debug("[ok]\nKBD_ID: ");
state = KBD_ID0;
} else if (code) {
debug("err\nRESET: ");
state = RESET;
}
break;
// after reset receive keyboad ID(2 bytes)
case KBD_ID0:
if (code) {
state = KBD_ID1;
}
break;
case KBD_ID1:
if (code) {
debug("\nCONFIG: ");
state = CONFIG;
}
break;
case CONFIG:
debug("wF8 ");
if (ps2_host_send(0xF8) == 0xFA) {
debug("[ack]\nREADY\n");
state = READY;
}
break;
case READY:
switch (code) {
case 0x00:
break;
case 0xF0:
state = F0;
debug(" ");
break;
default: // normal key make
if (code < 0x88) {
matrix_make(code);
} else {
debug("unexpected scan code at READY: "); debug_hex(code); debug("\n");
}
state = READY;
debug("\n");
}
break;
case F0: // Break code
switch (code) {
case 0x00:
break;
default:
if (code < 0x88) {
matrix_break(code);
} else {
debug("unexpected scan code at F0: "); debug_hex(code); debug("\n");
}
state = READY;
debug("\n");
}
break;
}
return 1;
}
inline
uint8_t matrix_get_row(uint8_t row)
{
return matrix[row];
}
inline
static void matrix_make(uint8_t code)
{
if (!matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] |= 1<<COL(code);
}
}
inline
static void matrix_break(uint8_t code)
{
if (matrix_is_on(ROW(code), COL(code))) {
matrix[ROW(code)] &= ~(1<<COL(code));
}
}
bool matrix_is_on(uint8_t row, uint8_t col)
{
return (matrix_get_row(row) & (1<<col));
}
void matrix_print(void)
{
#if (MATRIX_COLS <= 8)
print("r/c 01234567\n");
#elif (MATRIX_COLS <= 16)
print("r/c 0123456789ABCDEF\n");
#elif (MATRIX_COLS <= 32)
print("r/c 0123456789ABCDEF0123456789ABCDEF\n");
#endif
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
#if (MATRIX_COLS <= 8)
xprintf("%02X: %08b%s\n", row, bitrev(matrix_get_row(row)),
#elif (MATRIX_COLS <= 16)
xprintf("%02X: %016b%s\n", row, bitrev16(matrix_get_row(row)),
#elif (MATRIX_COLS <= 32)
xprintf("%02X: %032b%s\n", row, bitrev32(matrix_get_row(row)),
#endif
#ifdef MATRIX_HAS_GHOST
matrix_has_ghost_in_row(row) ? " <ghost" : ""
#else
""
#endif
);
}
}
#ifdef MATRIX_HAS_GHOST
__attribute__ ((weak))
bool matrix_has_ghost_in_row(uint8_t row)
{
matrix_row_t matrix_row = matrix_get_row(row);
// No ghost exists when less than 2 keys are down on the row
if (((matrix_row - 1) & matrix_row) == 0)
return false;
// Ghost occurs when the row shares column line with other row
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
if (i != row && (matrix_get_row(i) & matrix_row))
return true;
}
return false;
}
#endif

View File

@@ -0,0 +1,72 @@
# MCU name
MCU = atmega32u4
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
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(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# 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
# 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 ?= no # 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
UNICODEMAP_ENABLE ?= yes
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.
PS2_USE_USART ?= yes
API_SYSEX_ENABLE ?= n
CUSTOM_MATRIX = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
SRC = matrix.c led.c

View File

View File

@@ -1,10 +1,11 @@
#ifndef KEYBOARDS_ERGODOX_CONFIG_H_
#define KEYBOARDS_ERGODOX_CONFIG_H_
#define MOUSEKEY_DELAY 100
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_MAX_SPEED 3
#define MOUSEKEY_TIME_TO_MAX 10
#define MOUSEKEY_DELAY 0
#define MOUSEKEY_TIME_TO_MAX 5
#define MOUSEKEY_MAX_SPEED 2
#define MOUSEKEY_WHEEL_DELAY 0
#define TAPPING_TOGGLE 1
@@ -33,4 +34,4 @@
#endif
#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */
#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */

View File

@@ -0,0 +1,4 @@
#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"

View File

@@ -1,3 +1,8 @@
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
COMMAND_ENABLE = no # Commands for debug and configuration
RGBLIGHT_ENABLE ?= yes
MIDI_ENABLE ?= no
ifndef MAKEFILE_INCLUDED
include ../../../Makefile
endif
endif

View File

@@ -21,6 +21,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "../config.h"
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x1307
@@ -39,10 +41,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LED_BRIGHTNESS_LO 15
#define LED_BRIGHTNESS_HI 255
/* ws2812 RGB LED */
#define RGB_DI_PIN D7
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 15 // Number of LEDs
#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 255
#define RGBLIGHT_VAL_STEP 12
// #define RGB_MIDI
#define RGBW_BB_TWI
#define RGBW 1
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#define USB_MAX_POWER_CONSUMPTION 500
/*
* Feature disable options
* These options are also useful to firmware size reduction.

View File

@@ -16,10 +16,10 @@ void matrix_init_kb(void) {
// unused pins - C7, D4, D5, D7, E6
// set as input with internal pull-ip enabled
DDRC &= ~(1<<7);
DDRD &= ~(1<<7 | 1<<5 | 1<<4);
DDRD &= ~(1<<5 | 1<<4);
DDRE &= ~(1<<6);
PORTC |= (1<<7);
PORTD |= (1<<7 | 1<<5 | 1<<4);
PORTD |= (1<<5 | 1<<4);
PORTE |= (1<<6);
ergodox_blink_all_leds();
@@ -51,6 +51,10 @@ uint8_t init_mcp23018(void) {
mcp23018_status = 0x20;
// I2C subsystem
// uint8_t sreg_prev;
// sreg_prev=SREG;
// cli();
if (i2c_initialized == 0) {
i2c_init(); // on pins D(1,0)
i2c_initialized++;
@@ -79,7 +83,30 @@ uint8_t init_mcp23018(void) {
out:
i2c_stop();
// SREG=sreg_prev;
return mcp23018_status;
}
#ifdef ONEHAND_ENABLE
__attribute__ ((weak))
// swap-hands action needs a matrix to define the swap
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
/* Left hand, matrix positions */
{{0,13}, {1,13}, {2,13}, {3,13}, {4,13}, {5,13}},
{{0,12}, {1,12}, {2,12}, {3,12}, {4,12}, {5,12}},
{{0,11}, {1,11}, {2,11}, {3,11}, {4,11}, {5,11}},
{{0,10}, {1,10}, {2,10}, {3,10}, {4,10}, {5,10}},
{{0,9}, {1,9}, {2,9}, {3,9}, {4,9}, {5,9}},
{{0,8}, {1,8}, {2,8}, {3,8}, {4,8}, {5,8}},
{{0,7}, {1,7}, {2,7}, {3,7}, {4,7}, {5,7}},
/* Right hand, matrix positions */
{{0,6}, {1,6}, {2,6}, {3,6}, {4,6}, {5,6}},
{{0,5}, {1,5}, {2,5}, {3,5}, {4,5}, {5,5}},
{{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}},
{{0,3}, {1,3}, {2,3}, {3,3}, {4,3}, {5,3}},
{{0,2}, {1,2}, {2,2}, {3,2}, {4,2}, {5,2}},
{{0,1}, {1,1}, {2,1}, {3,1}, {4,1}, {5,1}},
{{0,0}, {1,0}, {2,0}, {3,0}, {4,0}, {5,0}},
};
#endif

View File

@@ -121,7 +121,7 @@ void matrix_init(void)
matrix_scan_count = 0;
#endif
matrix_init_kb();
matrix_init_quantum();
}

View File

@@ -71,6 +71,10 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512
# comment out to disable the options.
#
SLEEP_LED_ENABLE = no
API_SYSEX_ENABLE ?= no
RGBLIGHT_ENABLE ?= yes
ifndef QUANTUM_DIR
include ../../../Makefile
endif

View File

@@ -38,7 +38,6 @@ void init_serial_link_hal(void) {
// Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced
// Which will reduce the brightness range
#define PRESCALAR_DEFINE 0
#ifdef VISUALIZER_ENABLE
void lcd_backlight_hal_init(void) {
// Setup Backlight
SIM->SCGC6 |= SIM_SCGC6_FTM0;
@@ -76,7 +75,6 @@ void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) {
CHANNEL_GREEN.CnV = g;
CHANNEL_BLUE.CnV = b;
}
#endif
__attribute__ ((weak))
void matrix_init_user(void) {
@@ -92,6 +90,10 @@ void matrix_init_kb(void) {
// runs once when the firmware starts up
matrix_init_user();
// The backlight always has to be initialized, otherwise it will stay lit
#ifndef VISUALIZER_ENABLE
lcd_backlight_hal_init();
#endif
}
void matrix_scan_kb(void) {

View File

@@ -21,29 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
void led_set(uint8_t usb_led) {
// The LCD backlight functionality conflicts with this simple
// red backlight
#if !defined(LCD_BACKLIGHT_ENABLE) && defined(STATUS_LED_ENABLE)
// PTC1: LCD Backlight Red(0:on/1:off)
GPIOC->PDDR |= (1<<1);
PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
GPIOC->PCOR |= (1<<1);
} else {
GPIOC->PSOR |= (1<<1);
}
#elif !defined(LCD_BACKLIGHT_ENABLE)
//TODO: Add led emulation if there's no customized visualization
(void)usb_led;
GPIOC->PDDR |= (1<<1);
PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
GPIOC->PSOR |= (1<<1);
GPIOC->PDDR |= (1<<2);
PORTC->PCR[2] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
GPIOC->PSOR |= (1<<2);
GPIOC->PDDR |= (1<<3);
PORTC->PCR[3] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1);
GPIOC->PSOR |= (1<<3);
#else
(void)usb_led;
#endif
}

View File

@@ -63,6 +63,8 @@ VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile
LCD_ENABLE ?= yes
LED_ENABLE ?= yes
LCD_BACKLIGHT_ENABLE ?= yes
MIDI_ENABLE = no
RGBLIGHT_ENABLE = no
ifndef QUANTUM_DIR
include ../../../Makefile

View File

@@ -8,7 +8,7 @@ Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get
* Easy on beginners. It has everything you need for your day to day usage.
#### Cons
* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/default/readme.md)
* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/default/readme.md)
* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys.
#### Notes

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

@@ -15,9 +15,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
* | BkSp | A/L2 | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
* | LS/PO |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RS/PC |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
KC_BSPC, LT(MDIA, KC_A), KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
@@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
@@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
* | | |MsLeft|MsDown|MsRght| |------| |------| left | down | up | down | | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
@@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | |Brwser|
* | | |------| |------| |Back |
* | Lclk | Rclk |------| |------| |Back |
* | | | | | | | |
* `--------------------' `--------------------'
*/

View File

@@ -2,6 +2,9 @@
## Changelog
* Sept. 14, 2016 (V0.2):
* Added Space Cadet to Left and Right Shift. Pressing Left shift with no other key adds an "(" and pressing Right shift with no other key adds an ")"
* Sept. 8, 2016 (V0.1):
* Made A key double as MEDIA Layer change when you hold it. Added mouse buttons to the large thumb buttons on the left side on the Media Layer. Added vi/vim style arrow keys on HJKL on media layer.

View File

@@ -0,0 +1,5 @@
COMMAND_ENABLE = no # Commands for debug and configuration
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -0,0 +1,12 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
/* using UK layout for space-cadet-shift */
#define LSPO_KEY KC_9
#define RSPC_KEY KC_0
#define LEADER_TIMEOUT 800 // leader key sequence timeout in millis
#endif

View File

@@ -0,0 +1,661 @@
#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "version.h"
#include <stdarg.h>
/* use UK keymap */
#define UK_HASH KC_NONUS_HASH
#define UK_BSLS KC_NONUS_BSLASH
#define UK_PIPE LSFT(UK_BSLS)
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define NUMB 2 // numbers and hex
#define CRSR 3 // cursor keys
#define MOUS 4 // mouse keys
#define KEYW 5 // keyword macros
#define EMAC 6 // emacs
// my macros
#define UM_ECET M(0) // { }
#define UM_0x M(1)
#define UM_PUB M(2)
#define UM_PRO M(3)
#define UM_PRV M(4)
#define UM_CLS M(5)
#define UM_STR M(6)
#define UM_RET M(7)
#define UM_INC M(8)
#define UM_OBJ M(9)
#define UM_GITLOG M(10)
#define UM_GOODM M(11)
#define UM_NAMESP M(12)
#define UM_EMTR M(14) // emacs toggle read-only
#define UM_EMWR M(15) // emacs write buffer (save)
#define UM_EMUN M(16) // emacs undo
#define UM_EMRE M(17) // emacs redo
#define UM_EMPB M(18) // emacs previous buffer
#define UM_EMNB M(19) // emacs next buffer
#define UM_GOODN M(20)
#define UM_ECETS M(22) // { };
#define UM_TMPL M(23)
#define UM_TYPN M(24)
#define UM_CONT M(25)
#define UM_BREAK M(26)
#define UM_CONST M(27)
#define UM_SMILY M(28)
#define UM_SADF M(29)
#define UM_SCARF M(30)
#define UM_DECAF M(31)
#define UM_OPER M(32)
#define UM_NULP M(33)
#define UM_EXTR M(34)
#define UM_VIRT M(35)
#define UM_EMFB M(36) // emacs font bigger
#define UM_EMFS M(37) // emacs font smaller
#define UM_VOLAT M(38)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Base layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | SfLt | | SfRt | 6 | 7 | 8 | 9 | 0 | BkSp |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Del |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Caps/L2| A | S | D | F | G |------| |------| H | J | K | L | ; |Enter/L2|
* |--------+------+------+------+------+------| L6 | | L6 |------+------+------+------+------+--------|
* | LSft/( | Z | X | C | V/L3 | B/L4 | | | | N/L4 | M/L3 | , | . | / | RSft/) |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |Ctrl/[| Alt/]| # | Left |Right | | Up | Down | - | Alt/[|Ctrl/]|
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | L2 | lead | | lead | Ins |
* ,------|------|------| |------+------+------.
* | Space| BkSp | Home | | PgUp | Enter|Space |
* | / | / |------| |------| / | / |
* | Ctrl | Alt |End/L5| |PDn/L5| Alt | Ctrl |
* `--------------------' `--------------------'
*/
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_LEFT),
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB),
LT(NUMB, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSPO, KC_Z, KC_X, KC_C, LT(CRSR, KC_V), LT(MOUS, KC_B), MO(EMAC),
CTL_T(KC_LBRC), ALT_T(KC_RBRC), UK_HASH, KC_LEFT, KC_RGHT,
TG(NUMB), KC_LEAD,
KC_HOME,
CTL_T(KC_SPC), ALT_T(KC_BSPC), LT(KEYW, KC_END),
// right hand
LSFT(KC_RGHT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DELT,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(NUMB, KC_ENT),
MO(EMAC), LT(MOUS, KC_N), LT(CRSR, KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
KC_UP, KC_DOWN, KC_MINS, ALT_T(KC_LBRC), CTL_T(KC_RBRC),
KC_LEAD, KC_INS,
KC_PGUP,
LT(KEYW, KC_PGDN), ALT_T(KC_ENT), CTL_T(KC_SPC)
),
/* Keymap 1: Symbol Layer with F keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ## | F1 | F2 | F3 | F4 | F5 | ## | | ## | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | ## | ! | " | £ | $ | % | ## | | ## | - | + | = | @ | ~ | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | ## | ^ | & | * | _ | # |------| |------| { | } | ; | ' | # | ## |
* |--------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------|
* | ## | \ | | | ` | - | / | | | | [ | ] | < | > | ? | ## |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | ## | ## | ## | ## | ## | | ## | ## | ## | ## | ## |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | ## | ## | | ## | ## |
* ,------|------|------| |------+------+------.
* | | | ## | | ## | | |
* | ## | ## |------| |------| ## | ## |
* | | | ## | | ## | | |
* `--------------------' `--------------------'
*/
[SYMB] = KEYMAP(
// left hand
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS, KC_EXLM, LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), KC_TRNS,
KC_TRNS, LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_MINS), UK_HASH,
KC_TRNS, UK_BSLS, UK_PIPE, KC_GRV, KC_MINS, KC_SLSH, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_MINS, KC_PLUS, KC_EQL, LSFT(KC_QUOT), LSFT(UK_HASH), KC_F12,
KC_LCBR, KC_RCBR, KC_SCLN, KC_QUOT, UK_HASH, KC_TRNS,
KC_TRNS, KC_LBRC, KC_RBRC, LSFT(KC_COMM), LSFT(KC_DOT), LSFT(KC_SLSH), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Numerics and hex
*
* ,---------------------------------------------------. ,--------------------------------------------------.
* | ## | A | B | C | D | E | F | | A | B | C | D | E | F | ## |
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | ## | * | 7 | 8 | 9 | * | 0x | | 0x | * | 7 | 8 | 9 | * | ## |
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | ## | / | 4 | 5 | 6 | / |------| |------| / | 4 | 5 | 6 | / | ## |
* |---------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------|
* | ## | - | 1 | 2 | 3 | - | | | | - | 1 | 2 | 3 | - | ## |
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | = | + | 0 | , | . | | 0 | , | . | + | = |
* `-----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | ## | ## | | ## | ## |
* ,------|------|------| |------+------+------.
* | | | ## | | ## | | |
* | ## | ## |------| |------| ## | ## |
* | | | ## | | ## | | |
* `--------------------' `--------------------'
*/
[NUMB] = KEYMAP(
// left hand
KC_TRNS, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F,
KC_TRNS, KC_ASTR, KC_7, KC_8, KC_9, KC_ASTR, UM_0x,
KC_TRNS, KC_SLSH, KC_4, KC_5, KC_6, KC_SLSH,
KC_TRNS, KC_MINS, KC_1, KC_2, KC_3, KC_MINS, KC_TRNS,
KC_EQL, KC_PLUS, KC_0, KC_COMM, KC_DOT,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_TRNS,
UM_0x, KC_ASTR, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
KC_SLSH, KC_4, KC_5, KC_6, KC_SLSH, KC_TRNS,
KC_TRNS, KC_MINS, KC_1, KC_2, KC_3, KC_MINS, KC_TRNS,
KC_0, KC_COMM, KC_DOT, KC_PLUS, KC_EQL,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 3: Cursor movement
*
* ,---------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | Home | | Up | | PgUp | | | | PgUp | | Up | | Home | |
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | End | Left | Down | Right| PgDn |------| |------| PgDn | Left | Down | Right| End | |
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | ## | Up | | Down | ## | | | | | | ## | Down | | Up | ## |
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | Left | Down | Right| | | | | | Left | Down | Right|
* `-----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | ## | ## |------| |------| ## | ## |
* | | | | | | | |
* `--------------------' `--------------------'
*/
[CRSR] = KEYMAP(
// left hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_HOME, KC_NO, KC_UP, KC_NO, KC_PGUP, KC_NO,
KC_NO, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
KC_TRNS, KC_UP, KC_NO, KC_DOWN, KC_TRNS, KC_NO, KC_NO,
KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO,
KC_NO, KC_NO,
KC_NO,
KC_TRNS, KC_TRNS, KC_NO,
// right hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_PGUP, KC_NO, KC_UP, KC_NO, KC_HOME, KC_NO,
KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_NO,
KC_NO, KC_NO, KC_TRNS, KC_DOWN, KC_NO, KC_UP, KC_TRNS,
KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT,
KC_NO, KC_NO,
KC_NO,
KC_NO, KC_TRNS, KC_TRNS
),
/* Keymap 4: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | Lclk | MsUp | Rclk | | | | | | Lclk | MsUp | Rclk | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| |MsLeft|MsDown|MsRght| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Lclk | MsUp | Rclk |MsDown| | ## | | | | ## | |MsDown| Lclk | MsUp | Rclk |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |MsLeft|MsDown|MsRight | | | | |MsLeft|MsDown|MsRght|
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
[MOUS] = KEYMAP(
// left hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO,
KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO,
KC_BTN1, KC_MS_U, KC_BTN2, KC_MS_D, KC_NO, KC_TRNS, KC_NO,
KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO,
KC_NO, KC_NO,
KC_NO,
KC_NO, KC_NO, KC_NO,
// right hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO,
KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO,
KC_NO, KC_TRNS, KC_NO, KC_MS_D, KC_BTN1, KC_MS_U, KC_BTN2,
KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R,
KC_NO, KC_NO,
KC_NO,
KC_NO, KC_NO, KC_NO
),
/* Keymap 5: Keywords
*
* ,---------------------------------------------------. ,--------------------------------------------------.
* | | | | scarf| sadf | smily| | | | decaf| | | | | |
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | const| volat| oper | ret | tmpl | | | | typen| cont | prv | pro | pub | |
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | str | obj | | gitl |------| |------| | | | nulp | | |
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | extr | cls | virt | break| | | |namesp| goodm| goodn| | | |
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | inc | | | | | | | | |
* `-----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | ecet | ecets|
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | ## | | ## | | |
* `--------------------' `--------------------'
*/
[KEYW] = KEYMAP(
// left hand
KC_NO, KC_NO, KC_NO, UM_SCARF, UM_SADF, UM_SMILY, KC_NO,
KC_NO, UM_CONST, UM_VOLAT, UM_OPER, UM_RET, UM_TMPL, KC_NO,
KC_NO, KC_NO, UM_STR, UM_OBJ, KC_NO, UM_GITLOG,
KC_NO, KC_NO, UM_EXTR, UM_CLS, UM_VIRT, UM_BREAK, KC_NO,
KC_NO, KC_NO, UM_INC, KC_NO, KC_NO,
KC_NO, KC_NO,
KC_NO,
KC_NO, KC_NO, KC_TRNS,
// right hand
KC_NO, UM_DECAF, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, UM_TYPN, UM_CONT, UM_PRV, UM_PRO, UM_PUB, KC_NO,
KC_NO, KC_NO, KC_NO, UM_NULP, KC_NO, KC_NO,
KC_NO, UM_NAMESP, UM_GOODM, UM_GOODN, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
UM_ECET, UM_ECETS,
KC_NO,
KC_TRNS, KC_NO, KC_NO
),
/* Keymap 6: emacs
*
* ,---------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | empb | | emnb | emfs | emfb | | | | |
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | emtr | | | | | | | | emun | emre | w-up | | | |
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | emwr | | | |------| |------| |w-left|w-down|w-rght| | |
* |---------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------|
* | | | | | | | | | | | |w-down| | | |
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `-----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
[EMAC] = KEYMAP(
// left hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, UM_EMPB,
KC_NO, UM_EMTR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, UM_EMWR, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO,
KC_NO,
KC_NO, KC_NO, KC_NO,
// right hand
UM_EMNB, UM_EMFS, UM_EMFB, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, UM_EMUN, UM_EMRE, LSFT(KC_UP), KC_NO, KC_NO, KC_NO,
KC_NO, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_RGHT), KC_NO, KC_NO,
KC_TRNS, KC_NO, KC_NO, LSFT(KC_DOWN), 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
),
};
enum next_key_down_up {
NK_DOWN_UP,
NK_DOWN,
NK_UP // a bit of a hack, this works as long as NK_UP < KC_A
};
void send_keystrokes(uint8_t key, ...)
{
va_list vl;
va_start(vl, key);
enum next_key_down_up nkdu = NK_DOWN_UP;
while (key != KC_NO) {
if (key < KC_A) {
nkdu = key;
} else {
switch (nkdu) {
case NK_DOWN_UP:
register_code(key);
case NK_UP:
unregister_code(key);
break;
case NK_DOWN:
register_code(key);
}
nkdu = NK_DOWN_UP;
}
key = va_arg(vl, int);
}
va_end(vl);
}
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0: // { }
if (record->event.pressed) {
return MACRO(T(ENT), D(LSFT), T(LBRC), U(LSFT), T(ENT),
D(LSFT), T(RBRC), U(LSFT), T(UP),
T(TAB), END);
}
break;
case 1:
if (record->event.pressed) {
return MACRO(T(0), T(X), END);
}
break;
case 2:
if (record->event.pressed) {
SEND_STRING("public");
}
break;
case 3:
if (record->event.pressed) {
SEND_STRING("protected");
}
break;
case 4:
if (record->event.pressed) {
SEND_STRING("private");
}
break;
case 5: // class
if (record->event.pressed) {
return MACRO(T(C), T(L), T(A), T(S), T(S), T(ENT),
D(LSFT), T(LBRC), U(LSFT), T(ENT),
T(P), T(U), T(B), T(L), T(I), T(C),
D(LSFT), T(SCLN), U(LSFT), T(ENT), T(ENT),
T(P), T(R), T(I), T(V), T(A), T(T), T(E),
D(LSFT), T(SCLN), U(LSFT), T(ENT),
D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(ENT),
T(UP), T(UP), T(UP), T(UP), T(UP), T(UP), T(UP),
T(END), T(SPC), END);
}
break;
case 6: // struct
if (record->event.pressed) {
return MACRO(T(S), T(T), T(R), T(U), T(C), T(T), T(ENT),
D(LSFT), T(LBRC), U(LSFT), T(ENT),
D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(ENT),
T(UP), T(UP), T(UP), T(UP),
T(END), T(SPC), END);
}
break;
case 7:
if (record->event.pressed) {
SEND_STRING("return");
}
break;
case 8: // #include
if (record->event.pressed) {
return MACRO(T(NONUS_HASH), T(I), T(N), T(C), T(L), T(U), T(D), T(E), END);
}
break;
case 9:
if (record->event.pressed) {
SEND_STRING("objdump -CT -x -d");
}
break;
case 10:
if (record->event.pressed) {
SEND_STRING("git log --oneline --graph --decorate=short");
}
break;
case 11:
if (record->event.pressed) {
SEND_STRING("good morning");
}
break;
case 12:
if (record->event.pressed) {
SEND_STRING("namespace");
}
break;
case 14: // emacs toggle read-only
if (record->event.pressed) {
return MACRO(D(LCTL), T(X), T(Q), U(LCTL), END);
}
break;
case 15: // emacs write buffer
if (record->event.pressed) {
return MACRO(D(LCTL), T(X), T(S), U(LCTL), END);
}
break;
case 16: // emacs undo
if (record->event.pressed) {
return MACRO(D(LCTL), D(LSFT), T(MINS), U(LSFT), U(LCTL), END);
}
break;
case 17: // emacs redo
if (record->event.pressed) {
return MACRO(D(LALT), D(LSFT), T(MINS), U(LSFT), U(LALT), END);
}
break;
case 18: // emacs previous buffer
if (record->event.pressed) {
return MACRO(D(LCTL), T(X), U(LCTL), T(LEFT), END);
}
break;
case 19: // emacs next buffer
if (record->event.pressed) {
return MACRO(D(LCTL), T(X), U(LCTL), T(RGHT), END);
}
break;
case 20:
if (record->event.pressed) {
SEND_STRING("good night");
}
break;
case 22: // { };
if (record->event.pressed) {
return MACRO(T(ENT), D(LSFT), T(LBRC), U(LSFT), T(ENT),
D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(UP),
T(TAB), END);
}
break;
case 23:
if (record->event.pressed) {
SEND_STRING("template");
}
break;
case 24:
if (record->event.pressed) {
SEND_STRING("typename");
}
break;
case 25:
if (record->event.pressed) {
SEND_STRING("continue");
return MACRO(T(SCLN), END);
}
break;
case 26:
if (record->event.pressed) {
SEND_STRING("break");
return MACRO(T(SCLN), END);
}
break;
case 27:
if (record->event.pressed) {
SEND_STRING("const");
}
break;
case 28:
if (record->event.pressed) {
SEND_STRING(":-)");
}
break;
case 29:
if (record->event.pressed) {
SEND_STRING(":-(");
}
break;
case 30: // dazed
if (record->event.pressed) {
send_keystrokes(NK_DOWN, KC_LSFT, KC_8, KC_MINS, KC_8, NK_UP, KC_LSFT, KC_NO);
}
break;
case 31: // decaf
if (record->event.pressed) {
send_keystrokes(NK_DOWN, KC_LSFT, KC_C, KC_9, KC_MINS, KC_0, NK_UP, KC_LSFT, KC_NO);
}
break;
case 32:
if (record->event.pressed) {
SEND_STRING("operator");
}
break;
case 33:
if (record->event.pressed) {
SEND_STRING("nullptr");
}
break;
case 34:
if (record->event.pressed) {
SEND_STRING("extern");
}
break;
case 35:
if (record->event.pressed) {
SEND_STRING("virtual");
}
break;
case 36: // emacs font smaller
if (record->event.pressed) {
return MACRO(D(LCTL), T(X), T(EQL), U(LCTL), END);
}
break;
case 37: // emacs font bigger
if (record->event.pressed) {
return MACRO(D(LCTL), T(X), T(MINS), U(LCTL), END);
}
break;
case 38:
if (record->event.pressed) {
SEND_STRING("volatile");
}
break;
}
return MACRO_NONE;
}
LEADER_EXTERNS();
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
LEADER_DICTIONARY() {
leading = false;
leader_end();
SEQ_TWO_KEYS(KC_G, KC_A) {
SEND_STRING("git add .");
}
SEQ_TWO_KEYS(KC_G, KC_D) {
SEND_STRING("git diff");
}
SEQ_THREE_KEYS(KC_G, KC_D, KC_S) {
SEND_STRING("git diff --staged");
}
SEQ_TWO_KEYS(KC_G, KC_L) {
SEND_STRING("git log");
}
SEQ_THREE_KEYS(KC_G, KC_L, KC_O) {
SEND_STRING("git log --oneline");
}
SEQ_TWO_KEYS(KC_G, KC_F) {
SEND_STRING("git fetch");
}
SEQ_TWO_KEYS(KC_G, KC_O) {
SEND_STRING("git checkout");
}
SEQ_TWO_KEYS(KC_G, KC_P) {
SEND_STRING("git pull");
}
SEQ_TWO_KEYS(KC_G, KC_S) {
SEND_STRING("git status");
}
SEQ_TWO_KEYS(KC_G, KC_C) {
SEND_STRING("git commit -m ''");
send_keystrokes(KC_LEFT, KC_NO);
}
SEQ_THREE_KEYS(KC_G, KC_C, KC_A) {
SEND_STRING("git commit --amend");
}
SEQ_TWO_KEYS(KC_C, KC_C) {
SEND_STRING("const_cast<>");
send_keystrokes(KC_LEFT, KC_NO);
}
SEQ_TWO_KEYS(KC_C, KC_D) {
SEND_STRING("dynamic_cast<>");
send_keystrokes(KC_LEFT, KC_NO);
}
SEQ_TWO_KEYS(KC_C, KC_R) {
SEND_STRING("reinterpret_cast<>");
send_keystrokes(KC_LEFT, KC_NO);
}
SEQ_TWO_KEYS(KC_C, KC_S) {
SEND_STRING("static_cast<>");
send_keystrokes(KC_LEFT, KC_NO);
}
SEQ_ONE_KEY(KC_SLSH) {
send_keystrokes(KC_SLSH, NK_DOWN, KC_LSFT, KC_8, KC_8, NK_UP, KC_LSFT, KC_ENT,
NK_DOWN, KC_LSFT, KC_8, NK_UP, KC_LSFT, KC_ENT,
NK_DOWN, KC_LSFT, KC_8, NK_UP, KC_LSFT, KC_SLSH, KC_UP, KC_END, KC_SPC,
KC_NO);
}
}
}

View File

@@ -0,0 +1,188 @@
# ErgoDox EZ Configuration for typing like a boss.
This layout has 7 layers:
0. Base layers
1. Symbols and F-keys
2. Number pad (with hexadecimal)
3. Cursor keys
4. Mouse movement and clicks
5. Keyword macros
6. Emacs
There are also some leader keys defined for frequently used commands (git etc).
## The layers
Double hashes (`##`) indicate transparent keys (`KC_TRNS`) and blanks indicate no key (`KC_NO`).
### 0. Base layer
```
,--------------------------------------------------. ,--------------------------------------------------.
| ESC | 1 | 2 | 3 | 4 | 5 | SfLt | | SfRt | 6 | 7 | 8 | 9 | 0 | BkSp |
|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
| Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Del |
|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| Caps/L2| A | S | D | F | G |------| |------| H | J | K | L | ; |Enter/L2|
|--------|------|------|------|------|------| L6 | | L6 |------|------|------|------|------|--------|
| LSft/( | Z | X | C | V/L3 | B/L4 | | | | N/L4 | M/L3 | , | . | / | RSft/) |
`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
|Ctrl/[| Alt/]| # | Left |Right | | Up | Down | - | Alt/[|Ctrl/]|
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| L2 | lead | | lead | Ins |
,------|------|------| |------|------|------.
| Space| BkSp | Home | | PgUp | Enter|Space |
| / | / |------| |------| / | / |
| Ctrl | Alt |End/L5| |PDn/L5| Alt | Ctrl |
`--------------------' `--------------------'
```
Space Cadet shift is enabled. Ctrl and Alt doubles up as normal keys when tapped.
SfLt and SfRt sends Shift + left and Shift + Right respectively - for use with emacs with `windmove-default-keybindings`.
Caps and Enter may be held down to activate layer 2 (hexadecimal number pad).
Please see `matrix_scan_user` function in `keymap.c` for list of commands available via `lead` key.
### 1. Symbols and F-keys
```
,--------------------------------------------------. ,--------------------------------------------------.
| ## | F1 | F2 | F3 | F4 | F5 | ## | | ## | F6 | F7 | F8 | F9 | F10 | F11 |
|--------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
| ## | ! | " | £ | $ | % | ## | | ## | - | + | = | @ | ~ | F12 |
|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| ## | ^ | & | * | _ | # |------| |------| { | } | ; | ' | # | ## |
|--------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------|
| ## | \ | | | ` | - | / | | | | [ | ] | < | > | ? | ## |
`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
| ## | ## | ## | ## | ## | | ## | ## | ## | ## | ## |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| ## | ## | | ## | ## |
,------|------|------| |------|------|------.
| | | ## | | ## | | |
| ## | ## |------| |------| ## | ## |
| | | ## | | ## | | |
`--------------------' `--------------------'
```
### 2. Number pad (with hexadecimal)
```
,---------------------------------------------------. ,--------------------------------------------------.
| ## | A | B | C | D | E | F | | A | B | C | D | E | F | ## |
|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
| ## | * | 7 | 8 | 9 | * | 0x | | 0x | * | 7 | 8 | 9 | * | ## |
|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| ## | / | 4 | 5 | 6 | / |------| |------| / | 4 | 5 | 6 | / | ## |
|---------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------|
| ## | - | 1 | 2 | 3 | - | | | | - | 1 | 2 | 3 | - | ## |
`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
| = | + | 0 | , | . | | 0 | , | . | + | = |
`-----------------------------------' `----------------------------------'
,-------------. ,-------------.
| ## | ## | | ## | ## |
,------|------|------| |------|------|------.
| | | ## | | ## | | |
| ## | ## |------| |------| ## | ## |
| | | ## | | ## | | |
`--------------------' `--------------------'
```
### 3. Cursor keys
```
,---------------------------------------------------. ,--------------------------------------------------.
| | | | | | | | | | | | | | | |
|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
| | Home | | Up | | PgUp | | | | PgUp | | Up | | Home | |
|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| | End | Left | Down | Right| PgDn |------| |------| PgDn | Left | Down | Right| End | |
|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| ## | Up | | Down | ## | | | | | | ## | Down | | Up | ## |
`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
| Left | Down | Right| | | | | | Left | Down | Right|
`-----------------------------------' `----------------------------------'
,-------------. ,-------------.
| | | | | |
,------|------|------| |------|------|------.
| | | | | | | |
| ## | ## |------| |------| ## | ## |
| | | | | | | |
`--------------------' `--------------------'
```
### 4. Mouse movement and clicks
```
,--------------------------------------------------. ,--------------------------------------------------.
| | | | | | | | | | | | | | | |
|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
| | | Lclk | MsUp | Rclk | | | | | | Lclk | MsUp | Rclk | | |
|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| | |MsLeft|MsDown|MsRght| |------| |------| |MsLeft|MsDown|MsRght| | |
|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| Lclk | MsUp | Rclk |MsDown| | ## | | | | ## | |MsDown| Lclk | MsUp | Rclk |
`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
|MsLeft|MsDown|MsRight | | | | |MsLeft|MsDown|MsRght|
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| | | | | |
,------|------|------| |------|------|------.
| | | | | | | |
| | |------| |------| | |
| | | | | | | |
`--------------------' `--------------------'
```
### 5. Keyword macros
```
,---------------------------------------------------. ,--------------------------------------------------.
| | | | scarf| sadf | smily| | | | decaf| | | | | |
|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
| | const| volat| oper | ret | tmpl | | | | typen| cont | prv | pro | pub | |
|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| | | str | obj | | gitl |------| |------| | | | nulp | | |
|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| | | extr | cls | virt | break| | | |namesp| goodm| goodn| | | |
`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
| | | inc | | | | | | | | |
`-----------------------------------' `----------------------------------'
,-------------. ,-------------.
| | | | ecet | ecets|
,------|------|------| |------|------|------.
| | | | | | | |
| | |------| |------| | |
| | | ## | | ## | | |
`--------------------' `--------------------'
```
Please see `keymap.c` for the keywords/commands.
Some are const, volatile, operator, return, template, typename, continue, private,
protected, public, struct, class, extern, virtual, break, namespace.
Also a git log command I use a lot (`git log --oneline --graph --decorate=short` (I know git can be configured but that is boring)).
### 6. Emacs
```
,---------------------------------------------------. ,--------------------------------------------------.
| | | | | | | empb | | emnb | emfs | emfb | | | | |
|---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------|
| | emtr | | | | | | | | emun | emre | w-up | | | |
|---------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| | | emwr | | | |------| |------| |w-left|w-down|w-rght| | |
|---------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------|
| | | | | | | | | | | |w-down| | | |
`---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
| | | | | | | | | | | |
`-----------------------------------' `----------------------------------'
,-------------. ,-------------.
| | | | | |
,------|------|------| |------|------|------.
| | | | | | | |
| | |------| |------| | |
| | | | | | | |
`--------------------' `--------------------'
```
Some emacs shortcuts like toggle read/write mode (emtr), write file (emwr), previous-buffer (empb),
next-buffer (emnb), smaller font(emfs), larger font (emfb), undo (emun), redo (emre) and switching between windows in a frame.

View File

@@ -7,7 +7,7 @@ CONSOLE_ENABLE = no
TAP_DANCE_ENABLE = yes
KEYLOGGER_ENABLE ?= yes
UCIS_ENABLE = yes
MOUSEKEY_ENABLE ?= yes
MOUSEKEY_ENABLE = no
AUTOLOG_ENABLE ?= no
@@ -25,6 +25,8 @@ OPT_DEFS += -DKEYLOGGER_ENABLE
CONSOLE_ENABLE = yes
endif
OPT_DEFS += -DUSER_PRINT
KEYMAP_VERSION = $(shell \
if [ -d "${KEYMAP_PATH}/.git" ]; then \
cd "${KEYMAP_PATH}" && git describe --abbrev=6 --dirty --always --tags --match 'v*' 2>/dev/null; \

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