Compare commits

...

168 Commits

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

EE_HANDS should not be enabled by default since it's more confusing for
most users
2017-02-07 12:30:24 -08:00
b4e30d3929 added functionality for just a port 2017-02-07 15:23:56 -05:00
d639bd2021 Merge pull request #1072 from nicinabox/improve-ls-avrdude-target
Check for Pro Micro serial port automatically
2017-02-07 13:52:03 -05:00
42ea912fde Merge pull request #1062 from luizribeiro/fix-win
Fix V-USB bug on Windows 10
2017-02-07 13:49:10 -05:00
13c394fba4 Merge pull request #1071 from dungdung/rgb_tweaks
RGB tweaks
2017-02-07 13:32:31 -05:00
c0c69a1a7c Merge pull request #1068 from adzenith/master
Minor cleanup
2017-02-07 13:27:41 -05:00
3c7fa0acc1 Merge pull request #1046 from LukeSilva/master
Add Tapping Macros to QMK
2017-02-07 13:18:47 -05:00
3dbdd15304 Check for a new serial port every second 2017-02-06 19:57:34 -06:00
a7882b1ffc Added non-animated gradient mode 2017-02-06 14:18:20 -08:00
5a1b68d562 Added mode reverse step function 2017-02-06 14:18:20 -08:00
0e548f8b5d Christmas mode now works with even RGBED_NUM
Added Christmas mode steps to reduce red and green colors blending into each other
Added Christmas mode interval
Increased green hue to 120
2017-02-06 14:18:20 -08:00
06d21009b2 Minor cleanup 2017-02-05 19:55:27 -05:00
8cbf61c919 Add new DIODE_DIRECTION option
The previous two options were COL2ROW, ROW2COL; this adds CUSTOM_MATRIX
to disable the built-in matrix scanning code.

Most notably, this obviates the need to set MATRIX_ROW_PINS or
MATRIX_COL_PINS.
2017-02-05 19:47:33 -05:00
d961c80df2 Remove unused matrix_raw variable in matrix.c 2017-02-05 19:41:08 -05:00
b0dfb037dc Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2017-02-04 20:08:07 -08:00
101465b6ed Add missing header to ergodox ordinary keymap 2017-02-03 21:09:50 -05:00
3faf06c880 Fix compile warnings in egodox robot_test_layout
Fixes the warning "right shift count >= width of type" by adding UL to
the end of constants.
2017-02-03 21:07:24 -05:00
e667e9f6da Fix compile warnings in light_ws2812.c
Fixes the warning "function declaration isn't a prototype" by explicitly
making the parameter list void.
2017-02-03 21:00:13 -05:00
a3da586505 Fix V-USB bug on Windows 10 2017-02-01 21:57:44 -05:00
467e284178 increase timeout for dual mode caps key 2017-02-01 13:46:00 +08:00
e8ba4838d3 fixing kinesis reboot 2017-01-30 19:39:23 -08:00
3835b4bfcc Merge branch 'promethium' of github.com:priyadi/qmk_firmware into promethium 2017-01-29 18:38:15 +07:00
011811af68 minimize LEDs 2017-01-29 18:37:49 +07:00
306f43e5ee fix greek layers 2017-01-29 18:37:49 +07:00
c5ab0b2b61 Implement greek layers on my Promethium layout 2017-01-29 18:37:49 +07:00
77e54e34e1 Add luke keymap, as an example of the tapping macros 2017-01-29 11:27:38 +11:00
a3357d078e Add support for various tapping macros
A macro key can now be easily set to act as a modifier on hold, and
press a shifted key when tapped. Or to switch layers when held, and
again press a shifted key when tapped.

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

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

MACRO_NONE had to be cast to a (macro_t*) to suppress compiler
warnings within some tapping macros.
2017-01-28 18:42:35 +11:00
f6feee8167 eliminate references to shell_layer 2017-01-28 09:45:13 +08:00
a1c53d0f93 documented dual mode capslock 2017-01-28 09:42:55 +08:00
cb2d4fb80b split kinesis layout into ergodox and planck style symbol layers 2017-01-27 16:45:18 -08:00
93c1bfa646 dual capslock functionality, activating shell nav or brackets 2017-01-27 23:55:33 +08:00
cfc4149712 Add ability to use tap macros without using functions 2017-01-27 10:28:42 +11:00
87bc36253d Fix documentation for TMK actions 2017-01-26 22:44:22 +11:00
f35adb4f37 Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware 2017-01-18 22:58:49 +01:00
d910b94a3c Don't change ralt to lalt, it's really not the same thing on windows. 2017-01-17 19:33:09 +01:00
53382d9564 whitespace fixes 2017-01-16 21:31:44 +01:00
a37e924e36 vi style arrow keys. Live unicode switch support 2017-01-16 21:10:25 +01:00
11eb3d5491 Merge branch 'master' into promethium 2017-01-17 01:39:29 +07:00
87b675241a minimize LEDs 2017-01-09 23:19:34 +07:00
8c2cc30b0e fix greek layers 2017-01-09 21:24:26 +07:00
cf0650e3f0 Implement greek layers on my Promethium layout 2017-01-09 19:35:01 +07:00
107 changed files with 3858 additions and 2061 deletions

View File

@ -30,3 +30,10 @@ addons:
- diffutils
after_success:
bash util/travis_compiled_push.sh
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/cca31de3d44b9adb617b
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always

View File

@ -161,18 +161,26 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes)
OPT_DEFS += -DFAUXCLICKY_ENABLE
SRC += $(QUANTUM_DIR)/fauxclicky.c
endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_ENABLE = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_ENABLE = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif

View File

@ -1,6 +1,6 @@
<!-- -*- mode: markdown; fill-column: 8192 -*- -->
Mnemes Swedish Bonaza
Mnemes Swedish Bonanza
=======================
My Layout in process, most of the code is shamelessly stolen from [algernons][algernon] excellent layout
@ -33,6 +33,8 @@ It's for Windows (current work forces me to) and Swedish (matter of birth) so ym
- `LEAD s l` : `λ`.
- `LEAD s s` : `¯\_(ツ)_/¯`
- `LEAD s f` : `凸(ツ)凸`
- `LEAD u l` : Set unicode input mode to linux.
- `LEAD s w` : Set unicode input mode to windows.
- `LEAD a *` : Application switching based on position in start menu. Very specific to my computer.
@ -42,7 +44,7 @@ It's for Windows (current work forces me to) and Swedish (matter of birth) so ym
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)

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 KiB

After

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 KiB

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 KiB

After

Width:  |  Height:  |  Size: 423 KiB

View File

@ -7,43 +7,47 @@
/*
*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) //
/*
*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_EUR LSFT(KC_4) //
#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)
@ -85,32 +89,26 @@ enum {
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) }
{ 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 ,MO(SYM) ,KC_BSPC ,KC_ENT ,KC_SPC ,MO(SYM) ,KC_LEAD ,KC_LALT ,KC_LCTRL ,KC_HYP }
},
[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_NO ,KC_HOME ,KC_PGDN ,KC_PGUP ,KC_END ,KC_TRNS ,KC_TRNS },
{ KC_TRNS ,KC_LSFT ,KC_LCTL ,KC_LALT ,KC_L ,KC_TRNS ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_UP ,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 }
@ -119,8 +117,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{ 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 ,KN_EXLM ,KN_EQL ,KN_LPRN ,KN_RPRN ,KN_MINS ,KC_NO ,KN_UNDS ,KN_CIRC ,KN_DLR ,KN_AMPR ,KN_PIPE ,KC_TRNS },
{ KC_TRNS ,KN_EUR ,KN_PERC ,KN_LBRC ,KN_RBRC ,KN_ASTR ,KC_TRNS ,KN_HASH ,KN_SCLN ,KN_COLN ,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 }
}
@ -302,6 +300,15 @@ void matrix_scan_user(void) {
register_code (KC_LGUI); TAP_ONCE (KC_7); unregister_code (KC_LGUI);
}
SEQ_TWO_KEYS (KC_U, KC_L) {
set_unicode_input_mode(UC_LNX);
}
SEQ_TWO_KEYS (KC_U, KC_W) {
set_unicode_input_mode(UC_WINC);
}
SEQ_TWO_KEYS (KC_S, KC_S) {
// ¯\_(ツ)_/¯

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/qmk/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/keymaps/default/readme.md)
* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys.
#### Notes

View File

@ -4,5 +4,5 @@ SLEEP_LED_ENABLE=no
FORCE_NKRO ?= yes
DEBUG_ENABLE = no
CONSOLE_ENABLE = no
TAP_DANCE_ENABLE = yes
TAP_DANCE_ENABLE = no
MOUSEKEY_ENABLE = yes

View File

@ -7,7 +7,6 @@ Layers
------
* BASE: this is where you type.
* SHELL_LAYER: this is a permanent layer which I use when I don't need the F keys and gives me bash shortcuts on the top row.
* SHELL_NAV: hold down the Tab key to access shell/terminal navigation shorcuts such as forward/backward word, history, Ctrl+C, screen tab movement.
* KEY_NAV: arrow key movement with backward/forward word support, and copy/paste.
* KEY_SEL: same as above, but every movement shift-selects.
@ -20,6 +19,12 @@ Layers
Updates
-------
2017/02/10:
* Made left shift an MO for SHELL_NAV, and symbol+right shift CAPSLOCK. Made all modifiers OSM.
2017/01/28:
* Made the capslock key a dual momentary layer activation for BRACKETS and SHELL_NAV. One keypress held down for BRACKETS, one keypress, released and then held down for SHELL_NAV
2017/01/22:
* Made brackets toggle an OSL on the left capslock
* Added SHELL_LAYER

View File

@ -6,7 +6,6 @@
#include "action_code.h"
#define BASE 0 // default layer
#define SHELL_LAYER 1
#define SHELL_NAV 2
#define KEY_NAV 3 // key navigation layer
#define KEY_SEL 4 // key selection layer
@ -37,41 +36,25 @@
#define END_NEWLINE 17
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(KEY_NAV), // FN1 - keynav layer
[2] = ACTION_LAYER_TAP_TOGGLE(NUMBER), // FN2 - number layer
[3] = ACTION_MODS_ONESHOT(MOD_LSFT), // FN3 - shift modifier / oneshot
[4] = ACTION_MODS_ONESHOT(MOD_LCTL), // FN4 - ctrl modifier / oneshot
[5] = ACTION_MODS_ONESHOT(MOD_LALT), // FN5 - alt modifier / oneshot
};
//Tap Dance Declarations
enum {
TD_SHIFT_CAPSLOCK = 0,
TD_BRK_LEFT = 1,
TD_BRK_RIGHT = 2
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// base layer
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
LT(SHELL_NAV,KC_TAB), KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL),
OSL(BRACKETS), KC_A, KC_O, KC_E, KC_U, KC_I,
OSM(MOD_LSFT), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV),
OSL(SHORTCUTS),KC_FN4, KC_FN5,OSL(SYMBOL),MO(NUMBER),
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL),
MO(BRACKETS), KC_A, KC_O, KC_E, KC_U, KC_I,
MO(SHELL_NAV), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV),
OSL(SHORTCUTS),OSM(MOD_LCTL), OSM(MOD_LALT),OSL(SYMBOL),MO(NUMBER),
// thumb cluster
MO(MOUSE), RCTL(KC_S),
RCTL(KC_DEL),
OSM(MOD_LSFT), RCTL(KC_S),
RCTL(KC_DEL),
KC_BSPC,RCTL(KC_BSPC),KC_DEL,
// right hand
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSLS,
KC_PGUP, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_PGDN, KC_B, KC_M, KC_W, KC_V, KC_Z, TD(TD_SHIFT_CAPSLOCK),
KC_PGDN, KC_B, KC_M, KC_W, KC_V, KC_Z, OSM(MOD_LSFT),
// lower keys - browser tab control
RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), RCTL(KC_T), LALT(KC_LEFT), RCTL(KC_W),
// thumb cluster
@ -82,31 +65,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// permanent shell layer - meant to be used while in a terminal. only the top keys are overriden
[SHELL_LAYER] = KEYMAP(
// left hand
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,LALT(KC_DOT),RCTL(KC_R),RCTL(KC_C),
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,
// bottom row
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// thumb cluster
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
RCTL(KC_W), LALT(KC_B),LALT(KC_F), KC_LEFT, KC_RIGHT, LALT(KC_D), 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,
// bottom row
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
// thumb cluster
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
// shell navigation layer
[SHELL_NAV] = KEYMAP(
@ -270,11 +228,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MEH(KC_F7), MEH(KC_F8), MEH(KC_F9), MEH(KC_F10), MEH(KC_F11), MEH(KC_F12), M(SWITCH_NDS),
KC_TRNS, MEH(KC_A), MEH(KC_B), MEH(KC_C), MEH(KC_D), MEH(KC_E), MEH(KC_F),
MEH(KC_G), MEH(KC_H), MEH(KC_I), MEH(KC_J), MEH(KC_K), MEH(KC_L),
KC_TRNS, MEH(KC_M), MEH(KC_N), MEH(KC_O), MEH(KC_P), MEH(KC_Q), MEH(KC_R),
KC_TRNS, MEH(KC_M), MEH(KC_N), MEH(KC_O), MEH(KC_P), MEH(KC_Q), KC_CAPSLOCK,
MEH(KC_S), MEH(KC_T), MEH(KC_U), MEH(KC_V), MEH(KC_X),
MEH(KC_6), MEH(KC_7),
MEH(KC_8),
MEH(KC_9), TO(BASE), TO(SHELL_LAYER)
MEH(KC_9), MEH(KC_Y), MEH(KC_Z)
),
@ -395,7 +353,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed) {
return MACRO( T(END), T(ENTER), END);
}
break;
break;
}
return MACRO_NONE;
@ -415,13 +374,6 @@ void led_set_user(uint8_t usb_led) {
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_SHIFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPSLOCK),
[TD_BRK_LEFT] = ACTION_TAP_DANCE_DOUBLE (KC_LPRN, KC_LCBR),
[TD_BRK_RIGHT] = ACTION_TAP_DANCE_DOUBLE (KC_RPRN, KC_RCBR)
};
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

View File

@ -1,5 +1,6 @@
#include "ergodox.h"
#include "led.h"
#include "mousekey.h"
#include "debug.h"
#include "action_layer.h"
#include "action_util.h"
@ -8,6 +9,7 @@
#define SYMB 1 // symbols layer
#define MDIA 2 // media layer
#define SPEC 3 // special layer
#define RBASE 4 // reverse default layer
#define LSymb 10 // left symbol-shift key
#define LMdia 11 // left media-shift key
@ -16,15 +18,23 @@
#define RMdia 14 // right media-shift key
#define RSpec 15 // right special-shift key
#define NotEq 16 // != macro
#define GrtEq 17 // >= macro
#define LesEq 18 // <= macro
#define DeRef 19 // -> macro
#define MUL 20 // mouse up left
#define MUR 21 // mouse up right
#define MDL 22 // mouse down left
#define MDR 23 // mouse down right
/*
* The Ordinary Layout for the Ergodox EZ keyboard, v4.20
* The Ordinary Layout for the Ergodox EZ keyboard, v5
*
* Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
* Modifications from the default Ergodox EZ layout
* by Nicholas Keene ergodoxez@nicholaskeene.com
*
* No rights reserved. This software is in the public domain.
* Credit me if you are friendly but if you're a jerk don't bother.
@ -43,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
* | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media |
* |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
* | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol |
* | Symbol | ^A | S | D | ^F | G |------| |------| H | ^J | K | L | ^; | '" Symbol |
* |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------|
* | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals |
* `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
@ -59,24 +69,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[BASE] = KEYMAP(
// left hand
F(LSpec) ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC
,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB)
,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI
F(LSpec) ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC
,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
,M(LSymb) ,LT(RBASE, KC_A),KC_S ,KC_D ,LT(RBASE, KC_F) ,KC_G
,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB)
,KC_LCTL ,MEH_T(KC_NO) ,ALL_T(KC_NO),KC_LALT,KC_LGUI
,KC_HOME,KC_END
,KC_PGUP
,KC_BSPC,KC_DEL ,KC_PGDN
// right hand
,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec)
,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia)
,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb)
,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT
,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL
,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec)
,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia)
,KC_H ,LT(RBASE, KC_J),KC_K ,KC_L ,LT(RBASE,KC_SCLN),F(RSymb)
,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT
,KC_RGUI ,KC_RALT,KC_HYPR,KC_MEH ,KC_RCTL
,KC_LEFT ,KC_RGHT
,KC_UP
,KC_DOWN ,KC_ENT ,KC_SPC
),
),
/******* Symbols Layer *************************************************************************************************
*
@ -86,52 +96,52 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | |
* |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
* | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | |
* |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------|
* | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | |
* |-----------+------+------+------+------+------| ' | | " |------+------+------+------+------+-----------|
* | | % | ^ | [ | ] | ~ | | | | \ | 1 | 2 | 3 | - | |
* `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
* | LCtrl | Meh |Hyper | LAlt | LGui | | 0 | . | = | + | Ent |
* | ; | & | * | < | > | | 0 | . | = | + | Enter |
* `-----------------------------------' `-----------------------------------'
* ,-------------. ,-------------.
* | Left | Right| | Home | End |
* | |||| | |||| | | |||| | |||| |
* ,------|------|------| |------+------+------.
* | | | Up | | PgUp | | |
* |Space |Enter |------| |------|BackSp| Del |
* | | | Down | | PgDn | | |
* | Plus | Equal| |||| | | |||| | Under| Dash |
* | | |------| |------| Score| |
* | + | = | != | | -> | _ | - |
* `--------------------' `--------------------'
*/
[SYMB] = KEYMAP(
// left hand
KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC
,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM)
,KC_TRNS ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV
,KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB
,KC_LCTL ,KC_MEH ,KC_HYPR ,KC_LALT ,KC_LGUI
,KC_LEFT ,KC_RGHT
,KC_UP
,KC_SPC ,KC_ENT ,KC_DOWN
KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC
,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM)
,KC_TRNS ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV
,KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_QUOT
,KC_SCLN ,KC_AMPR ,KC_ASTR ,LSFT(KC_COMM),LSFT(KC_DOT)
,M(GrtEq),M(LesEq)
,KC_NO
,KC_PLUS ,KC_EQL ,M(NotEq)
// right hand
,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS
,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS
,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS
,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS
,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT
,KC_HOME ,KC_END
,KC_PGUP
,KC_PGDN ,KC_BSPC ,KC_DEL
,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS
,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS
,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS
,LSFT(KC_QUOT),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS
,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT
,KC_NO ,KC_NO
,KC_NO
,M(DeRef) ,LSFT(KC_MINS),KC_MINS
),
/******* Media Layer *******************************************************************************************************
*
* ,---------------------------------------------------------------. ,---------------------------------------------------------------.
* | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | |
* | | F11 | F12 | F13 | F14 | F15 | Esc | | |||| | F16 | F17 | F18 | F19 | F20 | |
* |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------|
* | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | |
* |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------|
* | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | |
* |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------|
* | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | |
* | | |||| |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | |||| | End | Down | PgDn | |||| | |
* `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------'
* |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl|
* | ||| | |||| | MClick | LClick | R Click| | Insert | Del | |||| | |||| | ||| |
* `---------------------------------------------' `---------------------------------------------'
* ,-------------. ,-------------.
* | Stop |Refrsh| | Prev | Next |
@ -147,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
,KC_TRNS ,KC_POWER ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U
,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD
,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D
,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2
,KC_NO ,KC_NO ,KC_BTN3 ,KC_BTN1 ,KC_BTN2
,KC_WSTP ,KC_WREF
,KC_WSCH
,KC_WBAK ,KC_NO ,KC_WHOM
@ -156,7 +166,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS
,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS
,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS
,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL
,KC_INS ,KC_DEL ,KC_NO ,KC_NO ,KC_NO
,KC_MPRV ,KC_MNXT
,KC_VOLU
,KC_VOLD ,KC_MSTP ,KC_MPLY
@ -202,7 +212,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
,KC_TRNS ,KC_TRNS
,KC_TRNS
,KC_TRNS ,KC_TRNS ,KC_TRNS
)
),
/******* Reverse Base Layer *********************************************************************************************
*
* ,------------------------------------------------------. ,------------------------------------------------------.
* | =+ | 0 | 9 | 8 | 7 | 6 | - | | Esc | 5 | 4 | 3 | 2 | 1 | `~ |
* |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
* | \| | P | O | I | U | Y | ] | | [ | T | R | E | W | Q | Tab |
* |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
* | '" | ; | L | K | J | H |------| |------| G | F | D | S | A | |
* |------------+------+------+------+------+------| Tab | |Shift |------+------+------+------+------+------------|
* | Capitals | / | . | , | M | N | | | -Tab | B | V | C | X | Z | Capitals |
* `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
* | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl |
* `-----------------------------------' `-----------------------------------'
* ,-------------. ,-------------.
* | Left | Right| | Home | End |
* ,------|------|------| |------+------+------.
* | | | Up | | PgUp | | |
* |Space |Enter |------| |------|BackSp| Del |
* | | | Down | | PgDn | | |
* `--------------------' `--------------------'
*/
[RBASE] = KEYMAP(
// left hand
KC_EQL ,KC_0 ,KC_9 ,KC_8 ,KC_7 ,KC_6 ,KC_MINS
,KC_BSLS ,KC_P ,KC_O ,KC_I ,KC_U ,KC_Y ,KC_RBRC
,KC_QUOT ,LT(RBASE, KC_SCLN) ,KC_L ,KC_K ,LT(RBASE, KC_J) ,KC_H
,KC_RSFT ,KC_SLSH ,KC_DOT ,KC_COMM,KC_M ,KC_N ,KC_TAB
,KC_RCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_RALT,KC_RGUI
,KC_LEFT ,KC_RGHT
,KC_UP
,KC_SPC ,KC_ENT ,KC_DOWN
// right hand
,KC_ESC ,KC_5 ,KC_4 ,KC_3 ,KC_2 ,KC_1 ,KC_GRV
,KC_LBRC ,KC_T ,KC_R ,KC_E ,KC_W ,KC_Q ,KC_TAB
,KC_G ,LT(RBASE, KC_F),KC_D ,KC_S ,LT(RBASE, KC_A) ,KC_NO
,LSFT(KC_TAB),KC_B ,KC_V ,KC_C ,KC_X ,KC_Z ,KC_LSFT
,KC_LGUI,KC_LALT,KC_HYPR ,KC_MEH,KC_LCTL
,KC_HOME ,KC_END
,KC_PGUP
,KC_PGDN ,KC_BSPC ,KC_DEL
)
};
const uint16_t PROGMEM fn_actions[] = {
@ -226,14 +278,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch(id) {
// There are two shift keys for each layer so we increment a layer_shift var when one
// is pressed and decrement when one is released. If both are pressed at the same time
// then the layer is locked (or unlocked). The shift counts are bound between 0 and 2
// is pressed and decrement when one is released. The shift counts are bound between 0 and 2
// only because sometimes rapid pressing led to irregular events; this way the states
// are self healing during use.
case LSymb: //
if (record->event.pressed) { // when the LSymb button is pressed
if(++symb_shift > 2) mdia_shift = 2; // increment the symb shift count, max two
if(++symb_shift > 2) symb_shift = 2; // increment the symb shift count, max two
if(spec_shift) symb_lock = !symb_lock; // if the Special layer is on, toggle the shift lock
layer_on(SYMB); // in any case, turn on the Symbols layer
} else { // when the LSymb button is released
@ -263,7 +314,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case LSpec:
if (record->event.pressed) { // when the LSpec button is pressed
if(symb_shift) symb_lock == !symb_lock; // if another layer button is engaged, then
if(symb_shift) symb_lock = !symb_lock; // if another layer button is engaged, then
else if(mdia_shift) mdia_lock = !mdia_lock; // lock that layer, be it caps or symb or mdia
else if (record->tap.count && !record->tap.interrupted && (!spec_shift)) {
register_code(KC_GRV); // otherwise, if it's an uninterrupted tap, emit a char
@ -339,6 +390,30 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
}
break;
case NotEq:
if (record->event.pressed) {
return MACRO( I(10), D(LSFT), T(EXLM), U(LSFT), T(EQL), END ); // !=
}
break;
case GrtEq:
if (record->event.pressed) {
return MACRO( I(10), D(LSFT), T(COMM), U(LSFT), T(EQL), END ); // <=
}
break;
case LesEq:
if (record->event.pressed) {
return MACRO( I(10), D(LSFT), T(DOT), U(LSFT), T(EQL), END ); // >=
}
break;
case DeRef:
if (record->event.pressed) {
return MACRO( I(10), T(MINS), D(LSFT), T(DOT), U(LSFT), END ); // ->
}
break;
// mouse diagonals
case MUL: // mouse up left

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 118 KiB

View File

@ -7,10 +7,10 @@
[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"],
[{y:-0.875,c:"#c6c600",t:"#002299",w:1.5},"Media\n\nTab\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"Q",{x:14.5},"P",{c:"#c6c600",t:"#002299",w:1.5},"|\n\\\nMedia\n\n\n\n\nShift"],
[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000"},"D",{x:10.5},"K"],
[{y:-0.875,x:2.5},"S",{x:1},"F",{x:8.5},"J",{x:1},"L"],
[{y:-0.875,x:2.5},"S",{x:1,fa:[0,0,0,1]},"F\n\n\nreverse",{x:8.5},"J\n\n\nreverse",{x:1},"L"],
[{y:-0.875,x:5.5},"G",{x:6.5},"H"],
[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"A",{x:14.5},":\n;",{c:"#c6c600",t:"#007d00",w:1.5},"\"\n'\nSymbols\n\n\n\n\nShift"],
[{y:-0.625,x:6.5,c:"#ff8500",t:"#000000",fa:[0,0,0,1],h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"],
[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"A\n\n\nreverse",{x:14.5},":\n;\n\nreverse",{c:"#c6c600",t:"#007d00",w:1.5},"\"\n'\nSymbols\n\n\n\n\nShift"],
[{y:-0.625,x:6.5,c:"#ff8500",t:"#000000",h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"],
[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"],
[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
[{y:-0.875,x:5.5},"B",{x:6.5},"N"],

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 121 KiB

View File

@ -15,10 +15,10 @@
[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#1e8fff"},"End",{x:1},"Page\n\n\n\n\n\nDown"],
[{y:-0.875,x:5.5,c:"#9977ee"},"Mute",{x:6.5,c:"#737373",a:7},""],
[{y:-0.875,c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#9e0000",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#1e8fff",fa:[0,0,0,1]},"Delete\n\n\nOption"],
[{y:-0.875,x:2.5,c:"#0066cc"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#1e8fff"},"Insert\n\n\nCmd",{x:1,c:"#dddd77"},"Hyper"],
[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"],
[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#6633ee"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],
[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#1e8fff"},"Delete"],
[{y:-0.875,x:2.5,c:"#0066cc"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#1e8fff"},"Insert",{x:1,c:"#737373",a:7},""],
[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#6633ee",a:4,fa:[0,0,0,1]},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],
[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"],
[{x:2},"Home\n\n\nBrowser"],
[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"],

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -10,18 +10,18 @@
[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"],
[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"],
[{y:-0.875,c:"#000000",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#007d00",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
[{y:-0.625,x:6.5,c:"#ff8500",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"],
[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"],
[{y:-0.625,x:6.5,c:"#bbddbb",t:"#000000",a:6,h:1.5},"'",{x:4.5,h:1.5},"\""],
[{y:-0.75,x:3.5,a:4},"[",{x:10.5,c:"#89b087"},"2"],
[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"],
[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"],
[{y:-0.875,c:"#c6c600",t:"#9e0000",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"%",{x:14.5,c:"#89b087"},"-",{c:"#c6c600",t:"#9e0000",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
[{y:-0.375,x:3.5,c:"#dddd77",t:"#000000"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},"."],
[{y:-0.875,x:2.5,c:"#dddd77"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0",{x:1},"="],
[{y:-0.75,x:0.5,c:"#dddd77"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+","Enter"],
[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ff8500"},"Left","Right"],
[{h:2},"Space",{h:2},"Enter","Up"],
[{x:2},"Down"],
[{r:-30,rx:13,y:-1,x:-3},"Home","End"],
[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"],
[{x:-3},"Page\n\n\n\n\n\nDown"]
[{y:-0.375,x:3.5,c:"#bbddbb",t:"#000000"},"<",{x:10.5,c:"#89b087"},"."],
[{y:-0.875,x:2.5,c:"#bbddbb"},"*",{x:1},">",{x:8.5,c:"#89b087"},"0",{x:1},"="],
[{y:-0.75,x:0.5,c:"#bbddbb"},";","&",{x:14.5,c:"#89b087"},"+","Enter"],
[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#bbddbb"},"<=",">="],
[{a:7,h:2},"+",{h:2},"=",{c:"#737373"},""],
[{x:2,c:"#bbddbb",a:4},"!="],
[{r:-30,rx:13,y:-1,x:-3,c:"#737373",a:7},"",""],
[{x:-3},"",{c:"#bbddbb",h:2},"_",{h:2},"-"],
[{x:-3,a:4},"->"]

View File

@ -10,12 +10,13 @@ no rights reserved, use for any purposes, credit me if you are a nice person
## The Base Layout ##
* *White Keys* are all the normal characters and symbols in all the normal locations (except for the brackets).
* *Modifier Keys* are light yellow and in the traditional location: Control, Option, Command, plus Hyper and Meh.
* *Shift Keys* are dark yellow, found on the outsides of the keyboard. Capitals Shift (traditional shift) is found in the usual place and above that is found Symbol Shift, Media Shift, and Special Shift (Shift Lock).
* *White Keys* are all the normal characters and symbols in all the normal locations (except for the brackets, and who touch-types brackets?).
* *Modifier Keys* are light yellow and in the traditional locationn at the bottom of the keyboard: Control, Option, Command, plus Hyper and Meh. Modifier keys are only found on the base layout.
* *Shift Keys* are dark yellow, found on the outsides of the keyboard. Capitals Shift (traditional Shift) is found in the usual place and above that are Symbol Shift, Media Shift, and Special Shift (Shift Lock).
* Several of the shift keys double for entry of characters which would typically be in those locations.
* *Thumb Keys* shown in orange are for text navigation and manipulation.
* *Escape* is red and it is always found in that location no matter what.
* The keys under pinky fingers and index fingers will *reverse* the keyboard layout.
* *Escape* is red and it is always found in that location (*except* when the layout is reversed).
![Ordinary base layout](ordinary-base.png)
@ -23,12 +24,16 @@ The four big orange keys are arranged differently than in the default Ergodox EZ
The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code.
#### Reversing The Base Layout ####
The Ordinary Layout can be used to perform one-handed chorded text input. If you hold down the key under either index finger or either pinky finger (A, F, J and Semicolon), the whole base layout reverses order. Most keys are _mirrored_ but the delete keys, home/end, and left/right arrow keys are merely *translated* to preserve directionality. Pro-tip: This feature is particularly handly for bringing the Enter key to the left hand when the right hand is using the mouse.
## The Symbols Layer ##
* *Symbols* shown in light green. All kinds of brackets are available on this layer. Ampersand and Pipe justapose each other. Pipe, slash, and backslash are arranged in a column.
* *F-Keys* are bright green and overlay the row of numerals.
* *Symbols* shown in light green. All kinds of brackets are available on this layer. Ampersand and Pipe juxtapose each other. Pipe, slash, and backslash are arranged in a column.
* *F-Keys* are bright green and overlay the row of numerals. This layer has F1-F10, higher *F-Keys* are on the Symbols layer.
* *Number pad* in dark green under the right hand includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads so that NumLock is not needed.
* *Thumb keys* on this layer are the *reverse* of the orange keys on the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be.
* The dark gray keys do nothing in case you bump them by accident.
![Ordinary symbol layout](ordinary-symbol.png)
@ -42,7 +47,7 @@ The Symbols Layer is based on the Coder Layer from the default Ergodox EZ layout
* Higher-order *F-Keys* are shown in bright green overylaying the numerals.
* *Application Keys* to control web browsers and audio players are dark purple but don't get too excited because these have weak support on operating systems I've looked at. Good luck.
* The light purple keys are various operating system keys such as NumLock and Mute and a button to navigate to My Computer (usually your home dir).
* The dark gray keys do nothing in case you bump them by accident
* The dark gray keys do nothing in case you bump them by accident.
![Ordinary media layout](ordinary-media.png)
@ -64,27 +69,33 @@ Multiple layers can be turned on at once. The Capitals layer will affect charact
The Special Shift layer is mostly used to lock the shift keys but in order to make this layout more _ordinary_ there are a few special sequences which put some keys near their most common traditional locations.
### Escape ###
#### Escape ####
The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, which is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape.
The One True Location for an Escape key is separated from the rest of the keys, way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location, however, and the nearest one is home to the tilde (er, *grave*) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, which is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape.
The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers.
The Ordinary layout offers as a consolation prize, a Special sequence for Escape: **Special Shift + 1**. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers.
### Backspace ###
#### Backspace ####
At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence using the 0 key to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times.
At the top right corner of the Ergodox EZ you can do **Special Shift + 0** to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times.
### Other Characters ###
#### Other Characters ####
The Escape and Backspace special sequences are so useful why not have a few more? You can find dash under 9, left bracket under o, and right bracket under p. That's pretty much all the characters from the top right corner of the keyboard which moved to make room for the columnar layout.
## Errata ##
Some of the symbols on the Symbols layer are produced by the keyboard by "capitalizing" another character (such as *!* from *1*) so when you type that key you will notice the Capitals Shift red LED turn on.
****
The Ordinary Layout for the Ergodox EZ keyboard, v4.20
The Ordinary Layout for the Ergodox EZ keyboard, v5
Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother.
Keyboard layout images were created with http://www.keyboard-layout-editor.com/ by Ian Prest my thanks to that free service
Details: readme.md
https://github.com/nrrkeene/qmk_firmware/tree/master/keyboards/ergodox/keymaps/ordinary

View File

@ -68,7 +68,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case RGB_FF0000:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
EZ_RGB(0xff0000);
EZ_RGB(0xff0000UL);
register_code(KC_1); unregister_code(KC_1);
#endif
}
@ -77,7 +77,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case RGB_00FF00:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
EZ_RGB(0x00ff00);
EZ_RGB(0x00ff00UL);
register_code(KC_2); unregister_code(KC_2);
#endif
}
@ -86,7 +86,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case RGB_0000FF:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
EZ_RGB(0x0000ff);
EZ_RGB(0x0000ffUL);
register_code(KC_3); unregister_code(KC_3);
#endif
}
@ -95,7 +95,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case RGB_FFFFFF:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
EZ_RGB(0xffffff);
EZ_RGB(0xffffffUL);
register_code(KC_4); unregister_code(KC_4);
#endif
}

View File

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

View File

@ -0,0 +1,43 @@
#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 GON
#define PRODUCT NerD
#define DESCRIPTION QMK port for the GON Nerd PCB
/* key matrix size */
#define MATRIX_ROWS 10
#define MATRIX_COLS 9
/* backlight */
#define BACKLIGHT_PIN B7
#define BACKLIGHT_LEVELS 3
/* matrix pins */
#define MATRIX_ROW_PINS { B4, E2, F4, F7, F1, F6, C6, F5, D7, C7 }
#define MATRIX_COL_PINS { E6, B0, B1, B2, B3, F0, D0, D5, D1 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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 magic key command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
#endif

View File

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

View File

@ -0,0 +1,42 @@
#ifndef GONNERD_H
#define GONNERD_H
#include "quantum.h"
#define KEYMAP_TKL( \
K08, K09, K18, K19, K28, K29, K38, K39, K48, K49, K58, K59, K68, K69, K88, K89, \
K00, K01, K10, K11, K20, K21, K30, K31, K40, K41, K50, K51, K60, K61, K80, K81, K84, \
K02, K03, K12, K13, K22, K23, K32, K33, K42, K43, K52, K53, K62, K63, K82, K83, K85, \
K04, K14, K15, K24, K25, K34, K35, K44, K45, K54, K55, K64, K71, K65, \
K07, K79, K16, K17, K26, K27, K36, K37, K46, K47, K56, K57, K66, K67, K86, \
K06, K05, K78, K70, K72, K73, K74, K75, K76, K77, K87 \
) \
{ \
{ K00, K10, K20, K30, K40, K50, K60, K70, K80 }, \
{ K01, K11, K21, K31, K41, K51, K61, K71, K81 }, \
{ K02, K12, K22, K32, K42, K52, K62, K72, K82 }, \
{ K03, K13, K23, K33, K43, K53, K63, K73, K83 }, \
{ K04, K14, K24, K34, K44, K54, K64, K74, K84 }, \
{ K05, K15, K25, K35, K45, K55, K65, K75, K85 }, \
{ K06, K16, K26, K36, K46, K56, K66, K76, K86 }, \
{ K07, K17, K27, K37, K47, K57, K67, K77, K87 }, \
{ K08, K18, K28, K38, K48, K58, K68, K78, K88 }, \
{ K09, K19, K29, K39, K49, K59, K69, K79, K89 } \
}
#define KEYMAP_60( \
K08, K01, K10, K11, K20, K21, K30, K31, K40, K41, K50, K51, K60, K61, \
K02, K03, K12, K13, K22, K23, K32, K33, K42, K43, K52, K53, K62, K63, \
K04, K14, K15, K24, K25, K34, K35, K44, K45, K54, K55, K64, K71, K65, \
K07, K79, K16, K17, K26, K27, K36, K37, K46, K47, K56, K57, K66, K67, \
K06, K05, K78, K70, K72, K73, K74, K75 \
) KEYMAP_TKL( \
K08, 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, K01, K10, K11, K20, K21, K30, K31, K40, K41, K50, K51, K60, K61, KC_NO, KC_NO, KC_NO, \
K02, K03, K12, K13, K22, K23, K32, K33, K42, K43, K52, K53, K62, K63, KC_NO, KC_NO, KC_NO, \
K04, K14, K15, K24, K25, K34, K35, K44, K45, K54, K55, K64, K71, K65, \
K07, K79, K16, K17, K26, K27, K36, K37, K46, K47, K56, K57, K66, K67, KC_NO, \
K06, K05, K78, K70, K72, K73, K74, K75, KC_NO, KC_NO, KC_NO \
)
#endif

View File

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

View File

@ -0,0 +1,26 @@
#include "gonnerd.h"
#define __x__ KC_NO
// Keymap layers
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP_60( /* Base */
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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, __x__, KC_ENT, \
KC_LSFT, __x__, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, __x__, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL \
),
[1] = KEYMAP_60( /* System layer to have access to RESET button */
RESET, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
__x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
__x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
__x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
__x__, __x__, __x__, __x__, __x__, __x__, KC_TRNS, __x__ \
),
};
const uint16_t PROGMEM fn_actions[] = {
};

View File

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

View File

@ -0,0 +1,108 @@
#include "gonnerd.h"
// Keymap layers
#define BASE_LAYER 0
#define FUNCTION_LAYER 1
#define SYSTEM_LAYER 2
// Key aliases
#define __x__ KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Default Layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| = | BSp |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
* |-----------------------------------------------------------|
* |Funct | A| S| D| F| G| H| J| K| L| ;| '|Enter |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift |
* |-----------------------------------------------------------'
* | Ctl|Alt|Gui | Space |Gui |Alt| F2| Ctl |
* `-----------------------------------------------------------'
*/
[BASE_LAYER] = KEYMAP_60(
F(0), 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_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, \
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, __x__, KC_ENT, \
KC_LSFT, __x__, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, __x__, \
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(2), KC_RCTL \
),
/* Layer 1: Function Layer
* ,-----------------------------------------------------------.
* | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11| F12| Del |
* |-----------------------------------------------------------|
* | |Prv|Ply|Nxt| | |Pg^|Hme|Up |End| |Br-|Br+| |
* |-----------------------------------------------------------|
* |Hold |Mte|Vl-|Vl+| | |Pgv|Lft|Dwn|Rgt| | | |
* |-----------------------------------------------------------|
* | | | | | | | | | | | | |
* |-----------------------------------------------------------'
* | | | | | | | | |
* `-----------------------------------------------------------'
*/
[FUNCTION_LAYER] = KEYMAP_60(
KC_GRV, 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_DEL, \
__x__, KC_MPRV, KC_MPLY, KC_MNXT, __x__, __x__, KC_PGUP, KC_HOME, KC_UP, KC_END, __x__, KC_SLCK, KC_PAUS, __x__, \
KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, __x__, __x__, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, __x__, __x__, __x__, __x__, \
KC_LSFT, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, __x__, __x__, __x__, __x__ \
),
/* Layer 2: System Layer
* ,-----------------------------------------------------------.
* |Reset| | | | | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | | | | | | | | | | |
* |-----------------------------------------------------------'
* | | | | | | | | |
* `-----------------------------------------------------------'
*/
[SYSTEM_LAYER] = KEYMAP_60(
RESET, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
__x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
__x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
__x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \
__x__, __x__, __x__, __x__, __x__, __x__, KC_TRNS, __x__ \
),
};
enum function_id {
ESC_GRV, // Makes Esc behave like `~ when pressed with the left GUI modifier. This is the "switch between windows of the same application" key combination in macOS
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_FUNCTION(ESC_GRV),
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
static uint8_t esc_grv_mask;
switch (id) {
case ESC_GRV:
esc_grv_mask = get_mods() & MOD_BIT(KC_LGUI);
if (record->event.pressed) {
if (esc_grv_mask) {
add_key(KC_GRV);
send_keyboard_report();
} else {
add_key(KC_ESC);
send_keyboard_report();
}
} else {
if (esc_grv_mask) {
del_key(KC_GRV);
send_keyboard_report();
} else {
del_key(KC_ESC);
send_keyboard_report();
}
}
break;
}
}

View File

@ -0,0 +1,5 @@
# Mauin's keymap for the GON NerD
This layout is based on a Pok3r style layout with a standard base layer.
Function layers provide access to navigation and media keys.

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