aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Makefile31
-rw-r--r--keyboards/ergodox/keymaps/dvorak_programmer/Makefile8
-rw-r--r--keyboards/ergodox/keymaps/dvorak_programmer/README.md15
-rw-r--r--keyboards/ergodox/keymaps/dvorak_programmer/keymap.c403
-rw-r--r--keyboards/ergodox/keymaps/erez_experimental/keymap.c6
-rw-r--r--keyboards/ergodox/keymaps/erez_experimental/readme.md4
-rw-r--r--keyboards/ergodox/keymaps/j3rn/keymap.c10
-rw-r--r--keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.c213
-rw-r--r--keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.pngbin0 -> 119825 bytes
-rw-r--r--keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.pngbin0 -> 292705 bytes
-rw-r--r--keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md10
-rw-r--r--keyboards/planck/keymaps/priyadi/keymap.c144
-rw-r--r--keyboards/planck/keymaps/priyadi/readme.md12
-rw-r--r--readme.md2
15 files changed, 785 insertions, 76 deletions
diff --git a/.gitignore b/.gitignore
index 1abaeb217..f66a961fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,4 +30,5 @@ CMakeLists.txt
30.browse.VC.db* 30.browse.VC.db*
31*.stackdump 31*.stackdump
32util/Win_Check_Output.txt 32util/Win_Check_Output.txt
33.vscode \ No newline at end of file 33.vscode
34.stfolder
diff --git a/Makefile b/Makefile
index 0aaf58578..66c0ff30f 100644
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,9 @@ ABS_ROOT_MAKEFILE := $(abspath $(ROOT_MAKEFILE))
32ABS_STARTING_DIR := $(dir $(ABS_STARTING_MAKEFILE)) 32ABS_STARTING_DIR := $(dir $(ABS_STARTING_MAKEFILE))
33ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE)) 33ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE))
34STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR)) 34STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR))
35TEST_DIR := $(ROOT_DIR)/.build/test 35BUILD_DIR := $(ROOT_DIR)/.build
36TEST_DIR := $(BUILD_DIR)/test
37ERROR_FILE := $(BUILD_DIR)/error_occured
36 38
37MAKEFILE_INCLUDED=yes 39MAKEFILE_INCLUDED=yes
38 40
@@ -460,8 +462,21 @@ endef
460 462
461include $(ROOT_DIR)/message.mk 463include $(ROOT_DIR)/message.mk
462 464
463RUN_COMMAND = \ 465# The empty line is important here, as it will force a new shell to be created for each command
464$(COMMAND_$(SILENT_MODE)_$(COMMAND)) 466# Otherwise the command line will become too long with a lot of keyboards and keymaps
467define RUN_COMMAND
468+error_occured=0;\
469$(COMMAND_$(SILENT_MODE)_$(COMMAND))\
470if [ $$error_occured -gt 0 ]; then echo $$error_occured > $(ERROR_FILE); fi;
471
472
473endef
474define RUN_TEST
475+error_occured=0;\
476$($(TEST)_COMMAND))\
477if [ $$error_occured -gt 0 ]; then echo $$error_occured > $(ERROR_FILE); fi;
478
479endef
465 480
466# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps 481# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
467SUBPROJECTS := $(notdir $(patsubst %/Makefile,%,$(wildcard ./*/Makefile))) 482SUBPROJECTS := $(notdir $(patsubst %/Makefile,%,$(wildcard ./*/Makefile)))
@@ -481,17 +496,17 @@ $(SUBPROJECTS): %: %-allkm
481 *) printf "$(MSG_SUBMODULE_DIRTY)";break;; \ 496 *) printf "$(MSG_SUBMODULE_DIRTY)";break;; \
482 esac \ 497 esac \
483 done 498 done
499 rm -f $(ERROR_FILE) > /dev/null 2>&1
484 $(eval $(call PARSE_RULE,$@)) 500 $(eval $(call PARSE_RULE,$@))
485 $(eval $(call SET_SILENT_MODE)) 501 $(eval $(call SET_SILENT_MODE))
486 # Run all the commands in the same shell, notice the + at the first line 502 # Run all the commands in the same shell, notice the + at the first line
487 # it has to be there to allow parallel execution of the submake 503 # it has to be there to allow parallel execution of the submake
488 # This always tries to compile everything, even if error occurs in the middle 504 # This always tries to compile everything, even if error occurs in the middle
489 # But we return the error code at the end, to trigger travis failures 505 # But we return the error code at the end, to trigger travis failures
490 +error_occured=0; \ 506 $(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND))
491 $(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND)) \ 507 if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
492 if [ $$error_occured -gt 0 ]; then printf "$(MSG_ERRORS)" & exit $$error_occured; fi;\ 508 $(foreach TEST,$(TESTS),$(RUN_TEST))
493 $(foreach TEST,$(TESTS),$($(TEST)_COMMAND)) \ 509 if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
494 if [ $$error_occured -gt 0 ]; then printf "$(MSG_ERRORS)" & exit $$error_occured; fi;\
495 510
496# All should compile everything 511# All should compile everything
497.PHONY: all 512.PHONY: all
diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/Makefile b/keyboards/ergodox/keymaps/dvorak_programmer/Makefile
new file mode 100644
index 000000000..1fd6cb9ff
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_programmer/Makefile
@@ -0,0 +1,8 @@
1BOOTMAGIC_ENABLE=no
2COMMAND_ENABLE=no
3SLEEP_LED_ENABLE=no
4FORCE_NKRO ?= yes
5DEBUG_ENABLE = no
6CONSOLE_ENABLE = no
7TAP_DANCE_ENABLE = yes
8MOUSEKEY_ENABLE = no
diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/README.md b/keyboards/ergodox/keymaps/dvorak_programmer/README.md
new file mode 100644
index 000000000..a4580fe06
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_programmer/README.md
@@ -0,0 +1,15 @@
1Dvorak Programmer Layout
2========================
3
4This is a dvorak-only layout. The overall philosophy is that the left hand contains a number of layer-switching shortcuts, and the right hand key codes vary based on the layer selected.
5
6Layers
7------
8
9* BASE: this is where you type.
10* SHELL_NAV: hold down the Tab key to access shell/terminal navigation shorcuts such as forward/backward word, history, Ctrl+C, screen tab movement.
11* KEY_NAV: arrow key movement with backward/forward word support, and copy/paste.
12* KEY_SEL: same as above, but every movement shift-selects.
13* NUMBER: keypad layer.
14* SYMBOL: all the symbols as well as brackets at the bottom.
15* SHORTCUTS: sends Hyper keys for Autohotkey to interpret. I use this to switch between specific apps.
diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c
new file mode 100644
index 000000000..5100115a6
--- /dev/null
+++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c
@@ -0,0 +1,403 @@
1
2#include "ergodox.h"
3#include "led.h"
4#include "debug.h"
5#include "action_layer.h"
6#include "action_code.h"
7
8#define BASE 0 // default layer
9#define SHELL_NAV 1
10#define KEY_NAV 3 // key navigation layer
11#define KEY_SEL 4 // key selection layer
12#define NUMBER 5 // number layer
13#define SYMBOL 6
14#define BRACKETS 7
15#define SHORTCUTS 8
16
17// macros
18#define MC_COPY_LINE 0
19#define MC_CUT_LINE 1
20#define MC_PASTE_LINE 2
21#define MC_NEW_SEARCH_TAB 3
22#define SCREEN_TAB_LEFT 4
23#define SCREEN_TAB_RIGHT 5
24#define SCREEN_NEW_TAB 6
25#define SWITCH_NDS 7
26#define SCREEN_COPY_MODE 8
27#define SCREEN_PASTE 9
28#define OPEN_CLOSE_PAREN 10
29#define OPEN_CLOSE_BRACKET 11
30#define OPEN_CLOSE_CURLY 12
31#define OPEN_CLOSE_SINGLE_QUOTE 13
32#define OPEN_CLOSE_DOUBLE_QUOTE 14
33#define SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND 15
34#define SEMICOLON_NEWLINE 16
35#define END_NEWLINE 17
36
37
38const uint16_t PROGMEM fn_actions[] = {
39 [1] = ACTION_LAYER_TAP_TOGGLE(KEY_NAV), // FN1 - keynav layer
40 [2] = ACTION_LAYER_TAP_TOGGLE(NUMBER), // FN2 - number layer
41 [3] = ACTION_MODS_ONESHOT(MOD_LSFT), // FN3 - shift modifier / oneshot
42 [4] = ACTION_MODS_ONESHOT(MOD_LCTL), // FN4 - ctrl modifier / oneshot
43 [5] = ACTION_MODS_ONESHOT(MOD_LALT), // FN5 - alt modifier / oneshot
44};
45
46//Tap Dance Declarations
47enum {
48 TD_SHIFT_CAPSLOCK = 0,
49 TD_BRK_LEFT = 1,
50 TD_BRK_RIGHT = 2
51};
52
53
54
55const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
56// base layer
57[BASE] = KEYMAP( // layer 0 : default
58 // left hand
59 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
60 LT(BRACKETS,KC_TAB), KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL),
61 MO(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I,
62 KC_FN3, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV),
63 OSL(SHORTCUTS),KC_FN4, KC_FN5,OSL(SYMBOL),MO(NUMBER),
64 // thumb cluster
65 RCTL(KC_F), RCTL(KC_S),
66 RCTL(KC_DEL),
67 KC_BSPC,RCTL(KC_BSPC),KC_DEL,
68 // right hand
69 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSLS,
70 KC_PGUP, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
71 KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
72 KC_PGDN, KC_B, KC_M, KC_W, KC_V, KC_Z, TD(TD_SHIFT_CAPSLOCK),
73 // lower keys - browser tab control
74 RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), RCTL(KC_T), RCTL(KC_K), RCTL(KC_W),
75 // thumb cluster
76 M(SEMICOLON_NEWLINE), M(END_NEWLINE),
77 KC_UP,
78 KC_DOWN,KC_ENT, KC_SPC
79 ),
80
81
82// shell navigation layer
83[SHELL_NAV] = KEYMAP(
84 // left hand
85 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
86 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
87 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
88 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
89 // bottom row
90 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
91 // thumb cluster
92 KC_TRNS,KC_TRNS,
93 LALT(KC_D),
94 KC_TRNS,RCTL(KC_W),KC_TRNS,
95 // right hand
96 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
97 RCTL(KC_L), RCTL(KC_W), KC_HOME, KC_UP, KC_END, LALT(KC_D), RCTL(KC_R),
98 LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), LALT(KC_DOT),
99 RCTL(KC_C), RCTL(KC_U), M(SCREEN_COPY_MODE), M(SCREEN_PASTE), HYPR(KC_V), RCTL(KC_K), M(SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND),
100 // bottom row
101 M(SCREEN_TAB_LEFT), M(SCREEN_TAB_RIGHT), M(SCREEN_NEW_TAB), KC_TRNS, KC_TRNS,
102 // thumb cluster
103 KC_TRNS, KC_TRNS,
104 KC_TRNS,
105 KC_TRNS, KC_TRNS, KC_TRNS
106),
107
108
109// key navigation layer
110[KEY_NAV] = KEYMAP(
111 // left hand
112 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
113 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
114 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
115 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
116 // bottom row
117 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
118 // thumb cluster
119 KC_TRNS,KC_TRNS,
120 KC_TRNS,
121 KC_TRNS,KC_TRNS,KC_TRNS,
122 // right hand
123 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
124 KC_TRNS, KC_PGDN, KC_HOME, KC_UP, KC_END, KC_PGUP, M(MC_COPY_LINE),
125 RCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, RCTL(KC_RIGHT), M(MC_CUT_LINE),
126 KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_TRNS, M(MC_PASTE_LINE),
127 // bottom row
128 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
129 // thumb cluster
130 KC_TRNS, KC_TRNS,
131 KC_TRNS,
132 KC_TRNS, KC_TRNS, KC_TRNS
133),
134
135// key selection layer
136[KEY_SEL] = KEYMAP(
137 // left hand
138 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
139 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
140 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
141 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
142 // bottom row
143 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
144 // thumb cluster
145 KC_TRNS,KC_TRNS,
146 KC_TRNS,
147 KC_TRNS,KC_TRNS,KC_TRNS,
148 // right hand
149 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
150 RSFT(KC_PGUP), RSFT(KC_PGDN), RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), M(MC_COPY_LINE),
151 RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), M(MC_CUT_LINE),
152 RSFT(KC_PGDN), KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_TRNS, M(MC_PASTE_LINE),
153 // bottom row
154 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
155 // thumb cluster
156 KC_TRNS, KC_TRNS,
157 KC_TRNS,
158 KC_TRNS, KC_TRNS, KC_TRNS
159),
160
161// number layer
162[NUMBER] = KEYMAP(
163 // left hand
164 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
165 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
166 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
167 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
168 // bottom row
169 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
170 // thumb cluster
171 KC_TRNS,KC_TRNS,
172 KC_TRNS,
173 KC_TRNS,KC_TRNS,KC_TRNS,
174 // right hand
175 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
176 KC_TRNS, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
177 KC_MINS, KC_4, KC_5, KC_6, KC_SLSH, KC_TRNS,
178 KC_TRNS, KC_EQUAL, KC_1, KC_2, KC_3, KC_COLN, KC_TRNS,
179 // bottom row
180 KC_0, KC_DOT, KC_COMMA, KC_TRNS, KC_TRNS,
181 // thumb cluster
182 KC_TRNS, KC_TRNS,
183 KC_TRNS,
184 KC_TRNS, KC_TRNS, KC_TRNS
185),
186
187
188[SYMBOL] = KEYMAP(
189 // left hand
190 KC_NO,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
191 KC_TRNS,KC_TRNS, M(OPEN_CLOSE_PAREN), KC_LPRN, KC_RPRN, KC_TRNS, KC_TRNS,
192 KC_TRNS,KC_TRNS, M(OPEN_CLOSE_BRACKET), KC_LBRC, KC_RBRC, M(OPEN_CLOSE_DOUBLE_QUOTE),
193 KC_TRNS,M(SEMICOLON_NEWLINE),M(OPEN_CLOSE_CURLY), KC_LCBR, KC_RCBR, M(OPEN_CLOSE_SINGLE_QUOTE),KC_TRNS,
194 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
195 KC_TRNS,KC_TRNS,
196 KC_TRNS,
197 KC_TRNS,KC_TRNS,KC_TRNS,
198 // right hand
199 KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_TRNS,
200 KC_TRNS, KC_PLUS, KC_AMPR, KC_ASTR, KC_GRAVE,KC_TILD, KC_TRNS,
201 KC_MINS, KC_DLR, KC_PERC, KC_CIRC, KC_PIPE, KC_TRNS,
202 KC_TRNS, KC_EQUAL,KC_EXLM, KC_AT, KC_HASH, KC_TRNS, KC_TRNS,
203 KC_LBRC, KC_RBRC, TD(TD_BRK_LEFT), TD(TD_BRK_RIGHT), KC_TRNS,
204 KC_TRNS, KC_TRNS,
205 KC_TRNS,
206 KC_TRNS, KC_TRNS, KC_TRNS
207),
208
209[BRACKETS] = KEYMAP(
210 // left hand
211 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
212 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
213 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
214 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
215 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
216 KC_TRNS,KC_TRNS,
217 KC_TRNS,
218 KC_TRNS,KC_TRNS,KC_TRNS,
219 // right hand
220 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
221 KC_TRNS, KC_TRNS, M(OPEN_CLOSE_BRACKET),M(OPEN_CLOSE_PAREN),M(OPEN_CLOSE_CURLY),KC_TRNS,KC_TRNS,
222 KC_TRNS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_TRNS,
223 KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS,
224 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
225 KC_TRNS, KC_TRNS,
226 KC_TRNS,
227 KC_TRNS, KC_TRNS, KC_TRNS
228),
229
230[SHORTCUTS] = KEYMAP(
231 // left hand
232 KC_NO, HYPR(KC_F1), HYPR(KC_F2), HYPR(KC_F3), HYPR(KC_F4), HYPR(KC_F5), HYPR(KC_F6),
233 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
234 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
235 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
236 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
237 KC_TRNS,KC_TRNS,
238 KC_TRNS,
239 KC_TRNS,KC_TRNS,KC_TRNS,
240 // right hand
241 HYPR(KC_F7), HYPR(KC_F8), HYPR(KC_F9), HYPR(KC_F10), HYPR(KC_F11), HYPR(KC_F12), M(SWITCH_NDS),
242 KC_TRNS, HYPR(KC_A), HYPR(KC_B), HYPR(KC_C), HYPR(KC_D), HYPR(KC_E), HYPR(KC_F),
243 HYPR(KC_G), HYPR(KC_H), HYPR(KC_I), HYPR(KC_J), HYPR(KC_K), HYPR(KC_L),
244 KC_TRNS, HYPR(KC_M), HYPR(KC_N), HYPR(KC_O), HYPR(KC_P), HYPR(KC_Q), HYPR(KC_R),
245 LALT(KC_LEFT),LALT(KC_RIGHT),KC_F5, LCTL(LGUI(KC_LEFT)), LCTL(LGUI(KC_RIGHT)),
246 KC_TRNS, KC_TRNS,
247 KC_TRNS,
248 KC_TRNS, KC_TRNS, KC_TRNS
249),
250
251
252};
253
254
255
256const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
257{
258 // MACRODOWN only works in this function
259 switch(id) {
260 case MC_COPY_LINE:
261 if (record->event.pressed) {
262 return MACRO( T(HOME), D(LSFT), T(END), U(LSFT), D(LCTL), T(C), U(LCTL), END);
263 }
264 break;
265 case MC_CUT_LINE:
266 if (record->event.pressed) {
267 return MACRO( T(HOME), D(LSFT), T(END), U(LSFT), D(LCTL), T(X), U(LCTL), END);
268 }
269 break;
270 case MC_PASTE_LINE:
271 if (record->event.pressed) {
272 return MACRO( T(END), T(ENTER), D(LCTL), T(V), U(LCTL), END);
273 }
274 break;
275 case MC_NEW_SEARCH_TAB:
276 if (record->event.pressed) {
277 return MACRO( D(LCTL), T(T), T(K), U(LCTL), END);
278 }
279 break;
280 case SCREEN_TAB_LEFT:
281 if (record->event.pressed) {
282 return MACRO( D(LCTL), T(A), U(LCTL), T(P), END);
283 }
284 break;
285 case SCREEN_TAB_RIGHT:
286 if (record->event.pressed) {
287 return MACRO( D(LCTL), T(A), U(LCTL), T(N), END);
288 }
289 break;
290 case SCREEN_NEW_TAB:
291 if (record->event.pressed) {
292 return MACRO( D(LCTL), T(A), U(LCTL), T(C), END);
293 }
294 break;
295 case SCREEN_COPY_MODE:
296 if (record->event.pressed) {
297 return MACRO( D(LCTL), T(A), U(LCTL), T(ESC), END);
298 }
299 break;
300 case SCREEN_PASTE:
301 if (record->event.pressed) {
302 return MACRO( D(LCTL), T(A), U(LCTL), T(RBRC), END);
303 }
304 break;
305 case SWITCH_NDS:
306 if (record->event.pressed) {
307 return MACRO( D(LSFT), T(F11), U(LSFT), W(500), D(LALT), T(TAB), U(LALT), END);
308 }
309 break;
310 case OPEN_CLOSE_PAREN:
311 if (record->event.pressed) {
312 return MACRO( D(LSFT), T(LPRN), T(RPRN), U(LSFT), T(LEFT), END);
313 }
314 break;
315 case OPEN_CLOSE_BRACKET:
316 if (record->event.pressed) {
317 return MACRO( T(LBRC), T(RBRC), T(LEFT), END);
318 }
319 break;
320 case OPEN_CLOSE_CURLY:
321 if (record->event.pressed) {
322 return MACRO( D(LSFT), T(LCBR), T(RCBR), U(LSFT), T(LEFT), END);
323 }
324 break;
325 case OPEN_CLOSE_SINGLE_QUOTE:
326 if (record->event.pressed) {
327 return MACRO( T(QUOT), T(QUOT), T(LEFT), END);
328 }
329 break;
330 case OPEN_CLOSE_DOUBLE_QUOTE:
331 if (record->event.pressed) {
332 return MACRO( D(LSFT), T(QUOT), T(QUOT), U(LSFT), T(LEFT), END);
333 }
334 break;
335 case SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND:
336 if (record->event.pressed) {
337 return MACRO( T(UP), T(HOME), D(LALT), T(D), U(LALT), END);
338 }
339 break;
340 case SEMICOLON_NEWLINE:
341 if (record->event.pressed) {
342 return MACRO( T(END), T(SCLN), T(ENTER), END);
343 }
344 break;
345 case END_NEWLINE:
346 if (record->event.pressed) {
347 return MACRO( T(END), T(ENTER), END);
348 }
349 break;
350
351 }
352 return MACRO_NONE;
353};
354
355// Runs just one time when the keyboard initializes.
356void matrix_init_user(void) {
357
358 return;
359};
360
361void led_set_user(uint8_t usb_led) {
362 if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
363 ergodox_right_led_1_on();
364 } else {
365 ergodox_right_led_1_off();
366 }
367}
368
369qk_tap_dance_action_t tap_dance_actions[] = {
370 [TD_SHIFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPSLOCK),
371 [TD_BRK_LEFT] = ACTION_TAP_DANCE_DOUBLE (KC_LPRN, KC_LCBR),
372 [TD_BRK_RIGHT] = ACTION_TAP_DANCE_DOUBLE (KC_RPRN, KC_RCBR)
373
374};
375
376
377// Runs constantly in the background, in a loop.
378void matrix_scan_user(void) {
379
380 uint8_t layer = biton32(layer_state);
381
382 ergodox_board_led_off();
383 ergodox_right_led_2_off();
384 ergodox_right_led_3_off();
385 switch (layer) {
386 case NUMBER:
387 case SYMBOL:
388 ergodox_right_led_2_on();
389 break;
390 case KEY_NAV:
391 case KEY_SEL:
392 ergodox_right_led_3_on();
393 break;
394 case SHORTCUTS:
395 ergodox_right_led_2_on();
396 ergodox_right_led_3_on();
397 break;
398 default:
399 // none
400 break;
401 }
402 return;
403};
diff --git a/keyboards/ergodox/keymaps/erez_experimental/keymap.c b/keyboards/ergodox/keymaps/erez_experimental/keymap.c
index 47e40aa55..4804959d6 100644
--- a/keyboards/ergodox/keymaps/erez_experimental/keymap.c
+++ b/keyboards/ergodox/keymaps/erez_experimental/keymap.c
@@ -11,7 +11,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11/* Keymap 0: Basic layer 11/* Keymap 0: Basic layer
12 * 12 *
13 * ,--------------------------------------------------. ,--------------------------------------------------. 13 * ,--------------------------------------------------. ,--------------------------------------------------.
14 * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | 14 * | = | 1 | 2 | 3 | 4 | 5 |Ctrl- | | Ctrl+| 6 | 7 | 8 | 9 | 0 | - |
15 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 15 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
16 * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | 16 * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
17 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 17 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33// Otherwise, it needs KC_* 33// Otherwise, it needs KC_*
34[BASE] = KEYMAP( // layer 0 : default 34[BASE] = KEYMAP( // layer 0 : default
35 // left hand 35 // left hand
36 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, 36 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, LCTL(KC_MINS),
37 KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), 37 KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
38 KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, 38 KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
39 KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC), 39 KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC),
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 KC_HOME, 42 KC_HOME,
43 KC_SPC,KC_LEAD,KC_END, 43 KC_SPC,KC_LEAD,KC_END,
44 // right hand 44 // right hand
45 KC_RGHT, KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS, 45 LCTL(KC_EQL), KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS,
46 TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS, 46 TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS,
47 KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT), 47 KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT),
48 MEH_T(KC_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC, 48 MEH_T(KC_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC,
diff --git a/keyboards/ergodox/keymaps/erez_experimental/readme.md b/keyboards/ergodox/keymaps/erez_experimental/readme.md
index 66acfa187..f0738d9a7 100644
--- a/keyboards/ergodox/keymaps/erez_experimental/readme.md
+++ b/keyboards/ergodox/keymaps/erez_experimental/readme.md
@@ -4,6 +4,10 @@ This is my personal layout which I use to test out ideas which may or may not ma
4 4
5Changelog: 5Changelog:
6 6
7## Nov 1, 2016:
8
9* Adds dedicated text zooming keys in inner corners
10
7## May 24, 2016: 11## May 24, 2016:
8 12
9* Implements Leader key example 13* Implements Leader key example
diff --git a/keyboards/ergodox/keymaps/j3rn/keymap.c b/keyboards/ergodox/keymaps/j3rn/keymap.c
index e6f6cf44e..d913ea4a5 100644
--- a/keyboards/ergodox/keymaps/j3rn/keymap.c
+++ b/keyboards/ergodox/keymaps/j3rn/keymap.c
@@ -36,21 +36,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, 36 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS,
37 CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, 37 CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
38 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), 38 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
39 KC_FN1, KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, 39 MO(SYMB), KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
40 40
41 ALT_T(KC_APP), KC_HOME, 41 ALT_T(KC_APP), KC_HOME,
42 KC_END, 42 KC_END,
43 KC_SPC, KC_LGUI, KC_FN2, 43 KC_SPC,KC_LGUI,MO(MDIA),
44 // right hand 44 // right hand
45 KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 45 KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
46 KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 46 KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
47 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 47 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
48 MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, 48 MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
49 KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, 49 KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB),
50 50
51 KC_PGUP, CTL_T(KC_ESC), 51 KC_PGUP, CTL_T(KC_ESC),
52 KC_PGDN, 52 KC_PGDN,
53 KC_FN1, KC_TAB, KC_ENT 53 MO(SYMB),KC_TAB, KC_ENT
54 ), 54 ),
55/* Keymap 1: Symbol Layer 55/* Keymap 1: Symbol Layer
56 * 56 *
diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.c b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.c
new file mode 100644
index 000000000..c9dc43c56
--- /dev/null
+++ b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.c
@@ -0,0 +1,213 @@
1#include "ergodox.h"
2#include "debug.h"
3#include "action_layer.h"
4#include "version.h"
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7
8
9/* Keymap 0: Basic Dvorak layer
10 *
11 * ,--------------------------------------------------. ,--------------------------------------------------.
12 * | Hebrew | 1 | 2 | 3 | 4 | 5 |ALT+S | |B.tick| 6 | 7 | 8 | 9 | 0 | = |
13 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
14 * | TAB | ' | , | . | P | Y | LCK2 | | | F | G | C | R | L | / |
15 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
16 * | ESC | A | O | E | U | I |------| |------| D | H | T | N | S | - |
17 * |--------+------+------+------+------+------| LCK1 | | |------+------+------+------+------+--------|
18 * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RSHIFT |
19 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
20 * |FN2 | COPY | CUT | PASTE| FN1 | | [ | ] | \ | UNDO | CTRL+A |
21 * `----------------------------------' `------------------------------------'
22 * ,-------------. ,-------------.
23* | DEL | | | END | HOME |
24 * ,------|------|------| |------+--------+------.
25 * | | | SUPER| | PgUp | | |
26 * | BACK | CTRL |------| |------| Enter |SPACE |
27 * | SPACE| | ALT | | PgDn | | |
28 * `--------------------' `----------------------'
29 */
30[0] = KEYMAP(
31 TG(1), KC_1, KC_2, KC_3, KC_4, KC_5, LALT(KC_LSHIFT),
32 KC_TAB, KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, TG(3),
33 KC_ESCAPE, KC_A, KC_O, KC_E, KC_U, KC_I,
34 KC_LSHIFT, KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, TG(2),
35 MO(3), LCTL(KC_C), LCTL(KC_X), LCTL(KC_V), MO(2),
36 KC_DELETE, KC_TRNS,
37 KC_LGUI,
38 KC_BSPACE,CTL_T(KC_NO),KC_LALT,
39
40 KC_TILD, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL,
41 KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH,
42 KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINUS,
43 KC_TRNS, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LSHIFT,
44 KC_LBRACKET, KC_RBRACKET, KC_BSLASH, KC_UNDO, LCTL(KC_A),
45 KC_END, KC_HOME,
46 KC_PGUP,
47 KC_PGDOWN, KC_ENTER, KC_SPACE
48),
49
50 /* Keymap 1: Hebrew layer
51 *
52 * ,--------------------------------------------------. ,--------------------------------------------------.
53 * | | | | | | | | | | | | | | | |
54 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
55 * | | | | | | | | | | | | | | | |
56 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
57 * | | | | | | |------| |------| | | | | | |
58 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
59 * | | | | | | | | | | | | | | | |
60 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
61 * | | | | | | | | | | | |
62 * `----------------------------------' `----------------------------------'
63 * ,-------------. ,-------------.
64 * | | | | | |
65 * ,------|------|------| |------+------+------.
66 * | | | | | | | |
67 * | | |------| |------| | |
68 * | | | | | | | |
69 * `--------------------' `--------------------'
70 */
71[1] = KEYMAP(
72 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
73 KC_TRNS, KC_W, KC_QUOTE, KC_SLASH, KC_R, KC_T, KC_TRNS,
74 KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
75 KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS,
76 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
77 KC_TRNS, KC_TRNS,
78 KC_TRNS,
79 KC_TRNS, KC_TRNS, KC_TRNS,
80
81 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
82 KC_TRNS, KC_Y, KC_U, KC_E, KC_O, KC_P, KC_TRNS,
83 KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_TRNS,
84 KC_TRNS, KC_N, KC_M, KC_COMMA, KC_DOT, KC_I, KC_TRNS,
85 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
86 KC_TRNS, KC_TRNS,
87 KC_TRNS,
88 KC_TRNS, KC_TRNS, KC_TRNS
89),
90
91/* Keymap 2: Arrows ,Mouse Navigation and F Layer
92 *
93 * ,--------------------------------------------------. ,--------------------------------------------------.
94 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
95 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
96 * | | | | MsUp | | | | | F11 | | | UP | | | |
97 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
98 * | | |MsLeft|MsDown|MsRght| |------| |------| | LEFT | DOWN | RIGHT| | |
99 * |--------+------+------+------+------+------| | | F12 |------+------+------+------+------+--------|
100 * | | | | | | | | | | | | | | | |
101 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
102 * | | | | | | | Lclk | Rclk | | | |
103 * `----------------------------------' `----------------------------------'
104 * ,-------------. ,-------------.
105 * | | | | | |
106 * ,------|------|------| |------+------+------.
107 * | | | | | | | |
108 * | | |------| |------| | |
109 * | | | | | | | |
110 * `--------------------' `--------------------'
111 */
112[2] = KEYMAP(
113 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
114 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS,
115 KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS,
116 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
117 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
118 KC_TRNS, KC_TRNS,
119 KC_TRNS,
120 KC_TRNS, KC_TRNS, KC_TRNS,
121
122 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
123 KC_F11, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
124 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS,
125 KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
126 KC_MS_BTN1, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
127 KC_TRNS, KC_TRNS,
128 KC_TRNS,
129 KC_TRNS, KC_TRNS, KC_TRNS
130),
131
132 /* Keymap 3: Numpad Layer
133 *
134 * ,--------------------------------------------------. ,--------------------------------------------------.
135 * | | | | | | | | | | | NMLK | P/ | P* | P- | |
136 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
137 * | | | | | | | | | | | 7 | 8 | 9 | P+ | |
138 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
139 * | | | | | | |------| |------| | 4 | 5 | 6 | P+ | |
140 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
141 * | | | | | | | | | | | 1 | 2 | 3 | ENTER| |
142 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
143 * | | | | | | | 0 | 0 | . | ENTER| |
144 * `----------------------------------' `----------------------------------'
145 * ,-------------. ,-------------.
146 * | | | | | |
147 * ,------|------|------| |------+------+------.
148 * | | | | | | | |
149 * | | |------| |------| | |
150 * | | | | | | | |
151 * `--------------------' `--------------------'
152 */
153[3] = KEYMAP(
154 // Left Hand
155 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
156 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
157 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
158 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
159 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
160 KC_TRNS,KC_TRNS,
161 KC_TRNS,
162 KC_TRNS,KC_TRNS,KC_TRNS,
163 // Right Hand
164 KC_TRNS, KC_TRNS, KC_LOCKING_NUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS,
165 KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS,
166 KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS,
167 KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENTER, KC_TRNS,
168 KC_KP_0, KC_KP_0, KC_KP_DOT, KC_ENTER, KC_TRNS,
169 KC_TRNS, KC_TRNS,
170 KC_TRNS,
171 KC_TRNS, KC_TRNS, KC_TRNS
172),
173
174};
175
176const uint16_t PROGMEM fn_actions[] = {
177 [1] = ACTION_LAYER_TAP_TOGGLE(1)
178};
179
180const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
181{
182 switch(id) {
183 case 0:
184 if (record->event.pressed) {
185 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
186 }
187 break;
188 }
189 return MACRO_NONE;
190};
191
192void matrix_scan_user(void) {
193
194 uint8_t layer = biton32(layer_state);
195
196 ergodox_board_led_off();
197 ergodox_right_led_1_off();
198 ergodox_right_led_2_off();
199 ergodox_right_led_3_off();
200 switch (layer) {
201 case 1:
202 ergodox_right_led_1_on();
203 break;
204 case 2:
205 ergodox_right_led_2_on();
206 break;
207 case 3:
208 ergodox_right_led_3_on();
209 default:
210 break;
211 }
212
213};
diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png
new file mode 100644
index 000000000..82c81dcae
--- /dev/null
+++ b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png
new file mode 100644
index 000000000..ec8e7494d
--- /dev/null
+++ b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md
new file mode 100644
index 000000000..99b8182f5
--- /dev/null
+++ b/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/readme.md
@@ -0,0 +1,10 @@
1#Dvorak-Hebrew
2
3* This layout solves the problem of Dvorak Keyboard with OS QWERTY, which when you change to hebrew all the letters scrumble, the second layer is the Hebrew (top left button), which you can use on any computer, Plug and play.
4
5* The Hebrew layout itself solve another problem with the different locations of punctuation on Dvorak/Hebrew with few minor changes, it's based on Yuval Rabinovich's layout which you can find here : http://heboard.wordpress.com for regular QWERTY keyboards and for other operation systems.
6
7* these are only good when using a public computer or one you can't change settings on, because you need to change both keyboard layout and os layout each time you change language. A better solution is to use [hebrew-hw-dvorak](https://github.com/20lives/hebrew-hw-dvorak) as os layout.
8
9![layout image](https://github.com/20lives/qmk_firmware/blob/master/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap.png)
10![layout image](https://github.com/20lives/qmk_firmware/blob/master/keyboards/ergodox/keymaps/twentylives_dvorak_with_hebrew/keymap2.png)
diff --git a/keyboards/planck/keymaps/priyadi/keymap.c b/keyboards/planck/keymaps/priyadi/keymap.c
index dd8652d34..6e7f4e735 100644
--- a/keyboards/planck/keymaps/priyadi/keymap.c
+++ b/keyboards/planck/keymaps/priyadi/keymap.c
@@ -5,24 +5,24 @@
5#include "action_layer.h" 5#include "action_layer.h"
6#ifdef AUDIO_ENABLE 6#ifdef AUDIO_ENABLE
7 #include "audio.h" 7 #include "audio.h"
8 #include "musical_notes.h"
8#endif 9#endif
9#include "eeconfig.h" 10#include "eeconfig.h"
10#include "process_unicode.h" 11#include "process_unicode.h"
12#include "quantum.h"
11 13
12extern keymap_config_t keymap_config; 14extern keymap_config_t keymap_config;
13 15
14// Each layer gets a name for readability, which is then used in the keymap matrix below. 16enum layers {
15// The underscores don't mean anything - you can have a layer called STUFF or any other name. 17 _QWERTY,
16// Layer names don't all need to be of the same length, obviously, and you can also skip them 18 _COLEMAK,
17// entirely and just use numbers. 19 _WORKMAN,
18#define _QWERTY 0 20 _PUNC,
19#define _COLEMAK 1 21 _NUM,
20#define _WORKMAN 2 22 _FUNC,
21#define _PUNC 9 23 _EMOJI,
22#define _NUM 10 24 _GUI,
23#define _FUNC 11 25};
24#define _EMOJI 12
25#define _ADJUST 16
26 26
27enum planck_keycodes { 27enum planck_keycodes {
28 // layouts 28 // layouts
@@ -35,6 +35,7 @@ enum planck_keycodes {
35 NUM, 35 NUM,
36 FUNC, 36 FUNC,
37 EMOJI, 37 EMOJI,
38 GUI,
38 39
39 // os switchers 40 // os switchers
40 LINUX, 41 LINUX,
@@ -43,10 +44,12 @@ enum planck_keycodes {
43}; 44};
44 45
45// Fillers to make layering clearer 46// Fillers to make layering clearer
47
46#define _______ KC_TRNS 48#define _______ KC_TRNS
47#define XXXXXXX KC_NO 49#define XXXXXXX KC_NO
48 50
49// unicode map 51// unicode map
52
50enum unicode_name { 53enum unicode_name {
51 GRIN, // grinning face 😊 54 GRIN, // grinning face 😊
52 TJOY, // tears of joy 😂 55 TJOY, // tears of joy 😂
@@ -147,6 +150,18 @@ const uint32_t PROGMEM unicode_map[] = {
147 [SKULL] = 0x1F480, 150 [SKULL] = 0x1F480,
148}; 151};
149 152
153
154// hybrid shift - =
155// #undef KC_LSFT
156// #define KC_LSFT MT(MOD_LSFT, KC_MINS)
157// #undef KC_RSFT
158// #define KC_RSFT MT(MOD_LSFT, KC_EQL)
159
160
161// hybrid right-gui & scroll lock (mapped to Compose in OS)
162#undef KC_RCTL
163#define KC_RCTL MT(MOD_LCTL, KC_SLCK)
164
150// keymaps 165// keymaps
151 166
152const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 167const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -189,11 +204,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
189 204
190/* Workman 205/* Workman
191 * ,-----------------------------------------------------------------------------------. 206 * ,-----------------------------------------------------------------------------------.
192 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | 207 * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp |
193 * |------+------+------+------+------+-------------+------+------+------+------+------| 208 * |------+------+------+------+------+-------------+------+------+------+------+------|
194 * | Esc | A | R | S | T | D | H | N | E | I | O |Enter | 209 * | Esc | A | S | H | T | G | Y | N | E | O | I |Enter |
195 * |------+------+------+------+------+------|------+------+------+------+------+------| 210 * |------+------+------+------+------+------|------+------+------+------+------+------|
196 * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift | 211 * | Shift| Z | X | M | C | V | K | K | , | . | / |Shift |
197 * |------+------+------+------+------+------+------+------+------+------+------+------| 212 * |------+------+------+------+------+------+------+------+------+------+------+------|
198 * | Ctrl | GUI | Alt | Punc | Num | Space | Func |Emoji |AltGr | GUI | Ctrl | 213 * | Ctrl | GUI | Alt | Punc | Num | Space | Func |Emoji |AltGr | GUI | Ctrl |
199 * `-----------------------------------------------------------------------------------' 214 * `-----------------------------------------------------------------------------------'
@@ -207,56 +222,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
207 222
208/* Punc 223/* Punc
209 * ,-----------------------------------------------------------------------------------. 224 * ,-----------------------------------------------------------------------------------.
210 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | 225 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | ` |
211 * |------+------+------+------+------+-------------+------+------+------+------+------| 226 * |------+------+------+------+------+-------------+------+------+------+------+------|
212 * | ` | | | | | | | | _ | + | { | } | " | 227 * | | | \ | - | = | < | > | ( | ) | ' | | |
213 * |------+------+------+------+------+------|------+------+------+------+------+------| 228 * |------+------+------+------+------+------|------+------+------+------+------+------|
214 * | | | | | | | \ | - | = | [ | ] | ' | 229 * | | | | | _ | + | { | } | [ | ] | " | | |
215 * |------+------+------+------+------+------+------+------+------+------+------+------| 230 * |------+------+------+------+------+------+------+------+------+------+------+------|
216 * | | | | | | | | | < | > | | 231 * | | | | | | | | | | | |
217 * `-----------------------------------------------------------------------------------' 232 * `-----------------------------------------------------------------------------------'
218 */ 233 */
219[_PUNC] = { 234[_PUNC] = {
220 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, 235 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_GRV },
221 {KC_GRV, _______, _______, _______, _______, _______, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_DQUO}, 236 {XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LABK, KC_RABK, KC_LPRN, KC_RPRN, KC_QUOT, XXXXXXX, XXXXXXX},
222 {_______, _______, _______, _______, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_QUOT}, 237 {XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_DQUO, XXXXXXX, XXXXXXX},
223 {_______, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, _______, KC_LABK, KC_RABK, _______} 238 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
224}, 239},
225 240
226/* Num 241/* Num
227 * ,-----------------------------------------------------------------------------------. 242 * ,-----------------------------------------------------------------------------------.
228 * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | 243 * | ^ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
229 * |------+------+------+------+------+-------------+------+------+------+------+------| 244 * |------+------+------+------+------+-------------+------+------+------+------+------|
230 * | Esc | @ | A | B | C | [ | ] | 4 | 5 | 6 | : |Enter | 245 * | Esc | @ | A | B | C | ( | ) | 4 | 5 | 6 | : |Enter |
231 * |------+------+------+------+------+------|------+------+------+------+------+------| 246 * |------+------+------+------+------+------|------+------+------+------+------+------|
232 * | | | D | E | F | & | # | 1 | 2 | 3 | | | 247 * | & | # | D | E | F | [ | ] | 1 | 2 | 3 | / | * |
233 * |------+------+------+------+------+------+------+------+------+------+------+------| 248 * |------+------+------+------+------+------+------+------+------+------+------+------|
234 * | | | x | | | | 0 | , | . | | | 249 * | | | | x | | | 0 | , | . | + | - |
235 * `-----------------------------------------------------------------------------------' 250 * `-----------------------------------------------------------------------------------'
236 */ 251 */
237[_NUM] = { 252[_NUM] = {
238 {_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 253 {KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
239 { KC_ESC, KC_AT, S(KC_A), S(KC_B), S(KC_C), KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_COLN, KC_BSLS}, 254 { KC_ESC, KC_AT, S(KC_A), S(KC_B), S(KC_C), KC_LPRN, KC_RPRN, KC_4, KC_5, KC_6, KC_COLN, KC_ENT},
240 {_______, _______, S(KC_D), S(KC_E), S(KC_F), KC_AMPR, KC_HASH, KC_1, KC_2, KC_3, _______, _______}, 255 {KC_AMPR, KC_HASH, S(KC_D), S(KC_E), S(KC_F), KC_LBRC, KC_RBRC, KC_1, KC_2, KC_3, KC_SLSH, KC_ASTR},
241 {_______, _______, KC_X, _______, _______, KC_SPC, KC_SPC, KC_0, KC_COMM,KC_KP_DOT,_______, _______} 256 {_______, _______, _______, KC_X, _______, KC_SPC, KC_SPC, KC_0, KC_COMM, KC_DOT, KC_PLUS, KC_MINS}
242}, 257},
243 258
244/* Func 259/* Func
245 * ,-----------------------------------------------------------------------------------. 260 * ,-----------------------------------------------------------------------------------.
246 * | | F1 | F2 | F3 | F4 | | | PgUp | Up | PgDn | PgUp | Bksp | 261 * | | F1 | F2 | F3 | F4 | | | PgUp | Up | PgDn | PgUp | Del |
247 * |------+------+------+------+------+-------------+------+------+------+------+------| 262 * |------+------+------+------+------+-------------+------+------+------+------+------|
248 * | | F5 | F6 | F7 | F8 | | | Left | Down | Right| PgDn | | 263 * | | F5 | F6 | F7 | F8 |PrtSc | | Left | Down | Right| PgDn | Ins |
249 * |------+------+------+------+------+------|------+------+------+------+------+------| 264 * |------+------+------+------+------+------|------+------+------+------+------+------|
250 * | | F9 | F10 | F11 | F12 | | | | Home | End | | | 265 * | | F9 | F10 | F11 | F12 | | | | Home | End | | |
251 * |------+------+------+------+------+------+------+------+------+------+------+------| 266 * |------+------+------+------+------+------+------+------+------+------+------+------|
252 * | | | | | | | | | | |Print | 267 * | | | | | | | | | | | |
253 * `-----------------------------------------------------------------------------------' 268 * `-----------------------------------------------------------------------------------'
254 */ 269 */
255[_FUNC] = { 270[_FUNC] = {
256 {_______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_BSPC}, 271 {XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL},
257 {_______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______}, 272 {XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8,KC_PSCREEN,XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_INS},
258 {_______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_HOME, KC_END, _______, _______}, 273 {_______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______},
259 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,KC_PSCREEN} 274 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
260}, 275},
261 276
262/* Emoji 277/* Emoji
@@ -274,27 +289,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
274 {X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW)}, 289 {X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW)},
275 {X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS)}, 290 {X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS)},
276 {X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH)}, 291 {X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH)},
277 { X(POO), X(EYES),X(HUNRD),X(TONGU),X(SKULL),X(HORNS), X(HALO), X(FEAR), _______,X(YUMMY),X(DISAP),X(NOEVK)} 292 { X(POO), X(EYES),X(HUNRD), _______,X(SKULL),X(HORNS), X(HALO), X(FEAR), _______,X(YUMMY),X(DISAP),X(NOEVK)}
278}, 293},
279 294
280/* Adjust 295/* GUI
281 * ,-----------------------------------------------------------------------------------. 296 * ,-----------------------------------------------------------------------------------.
282 * | | |Linux | Win | OSX | | |Qwerty|Colemk|Workmm| | | 297 * | | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | |
283 * |------+------+------+------+------+-------------+------+------+------+------+------| 298 * |------+------+------+------+------+-------------+------+------+------+------+------|
284 * | | | | | | | | | | | | | 299 * |Linux | | Vol- | Mute | Vol+ | | | D- | | D+ | |Qwerty|
285 * |------+------+------+------+------+------|------+------+------+------+------+------|
286 * | | | | | | | | | | | | |
287 * |------+------+------+------+------+------+------+------+------+------+------+------| 300 * |------+------+------+------+------+------+------+------+------+------+------+------|
288 * | | | | | | | | | | | | 301 * | Win | | Prev | Play | Next | | | | | | |Colmak|
302 * |------+------+------+------+------+------+------+------+------+------+------+------|
303 * | OSX | | | | | BL- | BL+ | | | | |Workmn|
289 * `-----------------------------------------------------------------------------------' 304 * `-----------------------------------------------------------------------------------'
290 */ 305 */
291[_ADJUST] = { 306[_GUI] = {
292 {_______, _______, LINUX, WIN, OSX, _______, _______, QWERTY, COLEMAK, WORKMAN, _______, _______}, 307 {_______, LGUI(KC_1),LGUI(KC_2),LGUI(KC_3),LGUI(KC_4),LGUI(KC_5),LGUI(KC_6),LGUI(KC_7),LGUI(KC_8),LGUI(KC_9),LGUI(KC_0), _______},
293 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 308 { LINUX, _______, KC_VOLD, KC_MUTE, KC_VOLU,_______,_______,KC_WWW_BACK,_______,KC_WWW_FORWARD,_______, QWERTY},
294 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 309 { WIN, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, COLEMAK},
295 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} 310 { OSX, _______, _______, _______, _______, BL_DEC, BL_INC, _______, _______, _______, _______, WORKMAN}
296} 311},
297
298 312
299}; 313};
300 314
@@ -304,6 +318,10 @@ float tone_qwerty[][2] = SONG(QWERTY_SOUND);
304float tone_colemak[][2] = SONG(COLEMAK_SOUND); 318float tone_colemak[][2] = SONG(COLEMAK_SOUND);
305float tone_workman[][2] = SONG(DVORAK_SOUND); 319float tone_workman[][2] = SONG(DVORAK_SOUND);
306float tone_goodbye[][2] = SONG(GOODBYE_SOUND); 320float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
321float tone_linux[][2] = SONG(CAPS_LOCK_ON_SOUND);
322float tone_windows[][2] = SONG(SCROLL_LOCK_ON_SOUND);
323float tone_osx[][2] = SONG(NUM_LOCK_ON_SOUND);
324float tone_click[][2] = SONG(MUSICAL_NOTE(_F3, 2));
307#endif 325#endif
308 326
309void persistant_default_layer_set(uint16_t default_layer) { 327void persistant_default_layer_set(uint16_t default_layer) {
@@ -312,6 +330,9 @@ void persistant_default_layer_set(uint16_t default_layer) {
312} 330}
313 331
314bool process_record_user(uint16_t keycode, keyrecord_t *record) { 332bool process_record_user(uint16_t keycode, keyrecord_t *record) {
333 // faux clicky
334 if (record->event.pressed) PLAY_NOTE_ARRAY(tone_click, false, 0);
335
315 switch (keycode) { 336 switch (keycode) {
316 case QWERTY: 337 case QWERTY:
317 if (record->event.pressed) { 338 if (record->event.pressed) {
@@ -343,20 +364,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
343 case PUNC: 364 case PUNC:
344 if (record->event.pressed) { 365 if (record->event.pressed) {
345 layer_on(_PUNC); 366 layer_on(_PUNC);
346 update_tri_layer(_PUNC, _EMOJI, _ADJUST); 367 update_tri_layer(_PUNC, _EMOJI, _GUI);
347 } else { 368 } else {
348 layer_off(_PUNC); 369 layer_off(_PUNC);
349 update_tri_layer(_PUNC, _EMOJI, _ADJUST); 370 update_tri_layer(_PUNC, _EMOJI, _GUI);
350 } 371 }
351 return false; 372 return false;
352 break; 373 break;
353 case EMOJI: 374 case EMOJI:
354 if (record->event.pressed) { 375 if (record->event.pressed) {
355 layer_on(_EMOJI); 376 layer_on(_EMOJI);
356 update_tri_layer(_PUNC, _EMOJI, _ADJUST); 377 update_tri_layer(_PUNC, _EMOJI, _GUI);
357 } else { 378 } else {
358 layer_off(_EMOJI); 379 layer_off(_EMOJI);
359 update_tri_layer(_PUNC, _EMOJI, _ADJUST); 380 update_tri_layer(_PUNC, _EMOJI, _GUI);
360 } 381 }
361 return false; 382 return false;
362 break; 383 break;
@@ -378,14 +399,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
378 break; 399 break;
379 case LINUX: 400 case LINUX:
380 set_unicode_input_mode(UC_LNX); 401 set_unicode_input_mode(UC_LNX);
402 #ifdef AUDIO_ENABLE
403 PLAY_NOTE_ARRAY(tone_linux, false, 0);
404 #endif
381 return false; 405 return false;
382 break; 406 break;
383 case WIN: 407 case WIN:
384 set_unicode_input_mode(UC_WIN); 408 set_unicode_input_mode(UC_WINC);
409 #ifdef AUDIO_ENABLE
410 PLAY_NOTE_ARRAY(tone_windows, false, 0);
411 #endif
385 return false; 412 return false;
386 break; 413 break;
387 case OSX: 414 case OSX:
388 set_unicode_input_mode(UC_OSX); 415 set_unicode_input_mode(UC_OSX);
416 #ifdef AUDIO_ENABLE
417 PLAY_NOTE_ARRAY(tone_osx, false, 0);
418 #endif
389 return false; 419 return false;
390 break; 420 break;
391 } 421 }
diff --git a/keyboards/planck/keymaps/priyadi/readme.md b/keyboards/planck/keymaps/priyadi/readme.md
index de2f25e53..99bdd9d9b 100644
--- a/keyboards/planck/keymaps/priyadi/readme.md
+++ b/keyboards/planck/keymaps/priyadi/readme.md
@@ -1 +1,11 @@
1# Priyadi's Planck Layout \ No newline at end of file 1# Priyadi's Planck Layout
2
3Features:
4
5- Supports QWERTY, Colemak and Workman layouts.
6- Cursor and nav cluster on home row.
7- Hybrid number row and numpad, located on home row.
8- Number layer supports hexadecimal input.
9- Left and right side modifiers.
10- Emoji layer. An entire layer filled with common emojis.
11- Faux-clickey (poor man's replacement for Cherry blue switches) \ No newline at end of file
diff --git a/readme.md b/readme.md
index 417484778..95c6a5a0b 100644
--- a/readme.md
+++ b/readme.md
@@ -907,7 +907,7 @@ In `quantum/keymap_extras/`, you'll see various language files - these work the
907 907
908## Unicode support 908## Unicode support
909 909
910You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. 910You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout, see [this article](http://www.poynton.com/notes/misc/mac-unicode-hex-input.html) to learn more) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile.
911 911
912## Backlight Breathing 912## Backlight Breathing
913 913