aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile3
-rw-r--r--Makefile31
-rw-r--r--keyboards/atreus/keymaps/alphadox/config.h80
-rw-r--r--keyboards/atreus/keymaps/alphadox/keymap.c45
-rw-r--r--keyboards/ergodox/keymaps/alphadox/Makefile17
-rw-r--r--keyboards/ergodox/keymaps/alphadox/config.h12
-rw-r--r--keyboards/ergodox/keymaps/alphadox/keymap.c107
-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/ergodox/keymaps/win10_writers-block/config.h72
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/keymap.c648
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/readme.md224
-rw-r--r--keyboards/hhkb/keymaps/dbroqua/keymap.c12
-rw-r--r--keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c73
-rw-r--r--keyboards/kc60/keymaps/dbroqua_hhkb/readme.md9
-rw-r--r--keyboards/lets_split/readme.md13
-rw-r--r--keyboards/planck/keymaps/callum/keymap.c8
-rw-r--r--keyboards/planck/keymaps/priyadi/keymap.c144
-rw-r--r--keyboards/planck/keymaps/priyadi/readme.md12
-rw-r--r--keyboards/preonic/keymaps/jacwib/config.h1
-rw-r--r--keyboards/preonic/keymaps/jacwib/keymap.c132
-rw-r--r--keyboards/preonic/keymaps/jacwib/readme.md12
-rw-r--r--quantum/keymap_extras/keymap_dvp.h82
-rw-r--r--quantum/process_keycode/process_unicode.c39
-rw-r--r--quantum/process_keycode/process_unicode.h9
-rw-r--r--readme.md12
28 files changed, 1430 insertions, 590 deletions
diff --git a/Dockerfile b/Dockerfile
index 578d009dc..744ded857 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -21,8 +21,9 @@ RUN apt-get clean
21RUN rm -rf /var/lib/apt/lists/* 21RUN rm -rf /var/lib/apt/lists/*
22 22
23ENV keyboard=ergodox 23ENV keyboard=ergodox
24ENV subproject=ez
24ENV keymap=default 25ENV keymap=default
25 26
26VOLUME /qmk 27VOLUME /qmk
27WORKDIR /qmk 28WORKDIR /qmk
28CMD make clean ; make keyboard=${keyboard} keymap=${keymap} \ No newline at end of file 29CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap}
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/atreus/keymaps/alphadox/config.h b/keyboards/atreus/keymaps/alphadox/config.h
new file mode 100644
index 000000000..df56849b0
--- /dev/null
+++ b/keyboards/atreus/keymaps/alphadox/config.h
@@ -0,0 +1,80 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24
25#define VENDOR_ID 0xFEED
26#define PRODUCT_ID 0x6060
27#define DEVICE_VER 0x0001
28#define MANUFACTURER Arbitrary Definitions
29#define PRODUCT Planckeus
30#define DESCRIPTION q.m.k. keyboard firmware for Planckeus
31
32/* key matrix size */
33#define MATRIX_ROWS 4
34#define MATRIX_COLS 11
35
36#define MATRIX_ROW_PINS { D0, D1, D2, D3 }
37#define MATRIX_COL_PINS { F6, F5, F4, F1, F0, F7, B0, B1, B2, B3, B7 }
38#define UNUSED_PINS
39
40/* COL2ROW or ROW2COL */
41#define DIODE_DIRECTION COL2ROW
42
43/* define if matrix has ghost */
44//#define MATRIX_HAS_GHOST
45
46/* number of backlight levels */
47//#define BACKLIGHT_LEVELS 3
48
49/* Set 0 if debouncing isn't needed */
50#define DEBOUNCING_DELAY 5
51
52/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
53#define LOCKING_SUPPORT_ENABLE
54/* Locking resynchronize hack */
55#define LOCKING_RESYNC_ENABLE
56
57/* key combination for command */
58#define IS_COMMAND() ( \
59 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
60)
61
62/*
63 * Feature disable options
64 * These options are also useful to firmware size reduction.
65 */
66
67/* disable debug print */
68//#define NO_DEBUG
69
70/* disable print */
71//#define NO_PRINT
72
73/* disable action features */
74//#define NO_ACTION_LAYER
75//#define NO_ACTION_TAPPING
76//#define NO_ACTION_ONESHOT
77//#define NO_ACTION_MACRO
78//#define NO_ACTION_FUNCTION
79
80#endif
diff --git a/keyboards/atreus/keymaps/alphadox/keymap.c b/keyboards/atreus/keymaps/alphadox/keymap.c
new file mode 100644
index 000000000..b8ec0e032
--- /dev/null
+++ b/keyboards/atreus/keymaps/alphadox/keymap.c
@@ -0,0 +1,45 @@
1#include "atreus.h"
2
3#define BASE 0
4#define SYMB 1
5#define ETC 2
6
7enum macro_id {
8 TEENSY,
9};
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12
13[BASE] = KEYMAP(
14 KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN,
15 LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H,
16 SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
17 KC_GRV, KC_DEL, KC_LALT, GUI_T(KC_TAB), LT(SYMB,KC_BSPC), CTL_T(KC_ESC), SFT_T(KC_ENT), LT(SYMB,KC_SPC), GUI_T(KC_LEFT), KC_DOWN, KC_UP, LCAG_T(KC_RGHT)
18),
19
20[SYMB] = KEYMAP(
21 KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS,
22 KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BSLS, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT,
23 KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_ASTR, KC_UNDS, KC_1, KC_2, KC_3, KC_DQUO,
24 KC_TILD, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_NO, KC_DOT, KC_TRNS
25),
26
27[ETC] = KEYMAP(
28 RESET, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_HOME,
29 LT(ETC,KC_A), KC_NO, KC_NO, KC_NO, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_END,
30 KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_INS,
31 KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO
32),
33};
34
35const uint16_t PROGMEM fn_actions[] = {
36
37};
38
39const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
40 switch(id) {
41 case TEENSY:
42 break;
43 }
44 return MACRO_NONE;
45};
diff --git a/keyboards/ergodox/keymaps/alphadox/Makefile b/keyboards/ergodox/keymaps/alphadox/Makefile
new file mode 100644
index 000000000..633499d00
--- /dev/null
+++ b/keyboards/ergodox/keymaps/alphadox/Makefile
@@ -0,0 +1,17 @@
1BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
2MOUSEKEY_ENABLE = no # Mouse keys(+4700)
3EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
4CONSOLE_ENABLE = no # Console for debug(+400)
5COMMAND_ENABLE = no # Commands for debug and configuration
6NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ # nkro-doesnt-work
7BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
8MIDI_ENABLE = no # MIDI controls
9AUDIO_ENABLE = no # Audio output on port C6
10UNICODE_ENABLE = no # Unicode
11BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
12RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
13SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
14
15ifndef QUANTUM_DIR
16 include ../../../../Makefile
17endif
diff --git a/keyboards/ergodox/keymaps/alphadox/config.h b/keyboards/ergodox/keymaps/alphadox/config.h
new file mode 100644
index 000000000..deb218dc0
--- /dev/null
+++ b/keyboards/ergodox/keymaps/alphadox/config.h
@@ -0,0 +1,12 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#define FORCE_NKRO
7#define PREVENT_STUCK_MODIFIERS
8
9#undef TAPPING_TERM
10#undef IGNORE_MOD_TAP_INTERRUPT
11
12#endif
diff --git a/keyboards/ergodox/keymaps/alphadox/keymap.c b/keyboards/ergodox/keymaps/alphadox/keymap.c
new file mode 100644
index 000000000..731e62c0c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/alphadox/keymap.c
@@ -0,0 +1,107 @@
1#include "ergodox.h"
2#include "debug.h"
3#include "action_layer.h"
4
5#define BASE 0 // default layer
6#define SYMB 1 // symbols
7#define ETC 2 // etc
8
9enum macro_id {
10 TEENSY,
11};
12
13const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
14
15[BASE] = KEYMAP(
16 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
17 KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_PGUP,
18 CTL_T(KC_ESC), LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G,
19 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN,
20 KC_GRV, KC_DEL, KC_DEL, KC_LALT, GUI_T(KC_TAB),
21 KC_NO, KC_NO,
22 KC_NO,
23 LT(SYMB,KC_BSPC), CTL_T(KC_ESC), KC_NO,
24
25 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
26 KC_VOLU, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_BSLS,
27 KC_Y, KC_N, KC_I, KC_O, KC_H, KC_QUOT,
28 KC_VOLD, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
29 GUI_T(KC_TAB), KC_LEFT, KC_DOWN, KC_UP, LCAG_T(KC_RGHT),
30 KC_NO, KC_NO,
31 KC_NO,
32 KC_NO, SFT_T(KC_ENT), LT(SYMB,KC_SPC)
33),
34
35[SYMB] = KEYMAP(
36 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
37 KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
38 KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BSLS,
39 KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_ASTR, KC_TRNS,
40 KC_TILD, KC_AMPR, KC_AMPR, KC_TRNS, KC_TRNS,
41 KC_TRNS, KC_TRNS,
42 KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS,
44
45 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
46 KC_TRNS, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS, KC_NO,
47 KC_MINS, KC_4, KC_5, KC_6, KC_QUOT, KC_NO,
48 KC_TRNS, KC_UNDS, KC_1, KC_2, KC_3, KC_DQUO, KC_TRNS,
49 KC_0, KC_NO, KC_DOT, KC_TRNS, KC_TRNS,
50 KC_TRNS, KC_TRNS,
51 KC_TRNS,
52 KC_TRNS, KC_TRNS, KC_TRNS
53),
54
55[ETC] = KEYMAP(
56 RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
57 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_TRNS,
58 KC_TRNS, LT(ETC,KC_A), KC_NO, KC_NO, KC_NO, KC_PGDN,
59 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_TRNS,
60 KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS,
61 KC_TRNS, KC_TRNS,
62 KC_TRNS,
63 KC_TRNS, KC_TRNS, KC_TRNS,
64
65 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
66 KC_TRNS, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_HOME, KC_NO,
67 KC_VOLD, KC_F4, KC_F5, KC_F6, KC_END, KC_NO,
68 KC_TRNS, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_INS, KC_TRNS,
69 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
70 KC_TRNS, KC_TRNS,
71 KC_TRNS,
72 KC_TRNS, KC_TRNS, KC_TRNS
73),
74};
75
76const uint16_t PROGMEM fn_actions[] = {
77};
78
79const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
80 switch(id) {
81 case TEENSY:
82 break;
83 }
84 return MACRO_NONE;
85};
86
87void matrix_init_user(void) {
88};
89
90void matrix_scan_user(void) {
91 uint8_t layer = biton32(layer_state);
92
93 ergodox_board_led_off();
94 ergodox_right_led_1_off();
95 ergodox_right_led_2_off();
96 ergodox_right_led_3_off();
97 switch (layer) {
98 case 1:
99 ergodox_right_led_1_on();
100 break;
101 case 2:
102 ergodox_right_led_2_on();
103 break;
104 default:
105 break;
106 }
107};
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/ergodox/keymaps/win10_writers-block/config.h b/keyboards/ergodox/keymaps/win10_writers-block/config.h
index 568a711a8..43259db08 100644
--- a/keyboards/ergodox/keymaps/win10_writers-block/config.h
+++ b/keyboards/ergodox/keymaps/win10_writers-block/config.h
@@ -1,36 +1,36 @@
1#ifndef KEYBOARDS_ERGODOX_CONFIG_H_ 1#ifndef KEYBOARDS_ERGODOX_CONFIG_H_
2#define KEYBOARDS_ERGODOX_CONFIG_H_ 2#define KEYBOARDS_ERGODOX_CONFIG_H_
3 3
4#define MOUSEKEY_DELAY 100 4#define MOUSEKEY_DELAY 100
5#define MOUSEKEY_INTERVAL 20 5#define MOUSEKEY_INTERVAL 20
6#define MOUSEKEY_MAX_SPEED 3 6#define MOUSEKEY_MAX_SPEED 3
7#define MOUSEKEY_TIME_TO_MAX 10 7#define MOUSEKEY_TIME_TO_MAX 10
8 8
9#define TAPPING_TOGGLE 1 9#define TAPPING_TOGGLE 1
10 10
11/* define if matrix has ghost */ 11/* define if matrix has ghost */
12//#define MATRIX_HAS_GHOST 12//#define MATRIX_HAS_GHOST
13 13
14#define TAPPING_TERM 300 14#define TAPPING_TERM 300
15#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) 15#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.)
16 16
17/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 17/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
18#define LOCKING_SUPPORT_ENABLE 18#define LOCKING_SUPPORT_ENABLE
19/* Locking resynchronize hack */ 19/* Locking resynchronize hack */
20#define LOCKING_RESYNC_ENABLE 20#define LOCKING_RESYNC_ENABLE
21 21
22/* key combination for command */ 22/* key combination for command */
23#define IS_COMMAND() ( \ 23#define IS_COMMAND() ( \
24 keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ 24 keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \
25 keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ 25 keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \
26) 26)
27 27
28#ifdef SUBPROJECT_ez 28#ifdef SUBPROJECT_ez
29 #include "ez/config.h" 29 #include "ez/config.h"
30#endif 30#endif
31#ifdef SUBPROJECT_infinity 31#ifdef SUBPROJECT_infinity
32 #include "infinity/config.h" 32 #include "infinity/config.h"
33#endif 33#endif
34 34
35 35
36#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ 36#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/keymap.c b/keyboards/ergodox/keymaps/win10_writers-block/keymap.c
index ea640ee96..3106b3374 100644
--- a/keyboards/ergodox/keymaps/win10_writers-block/keymap.c
+++ b/keyboards/ergodox/keymaps/win10_writers-block/keymap.c
@@ -1,324 +1,324 @@
1#include "ergodox.h" 1#include "ergodox.h"
2#include "debug.h" 2#include "debug.h"
3#include "action_layer.h" 3#include "action_layer.h"
4#include "version.h" 4#include "version.h"
5#include "wait.h" 5#include "wait.h"
6 6
7#define BASE 0 // default layer - helpful for writing in Office-style word processors. 7#define BASE 0 // default layer - helpful for writing in Office-style word processors.
8#define SYMB 1 // symbol layer - NumPad, etc. - same as Ergodox EZ default but no EEPROM or Version key 8#define SYMB 1 // symbol layer - NumPad, etc. - same as Ergodox EZ default but no EEPROM or Version key
9#define RIMW 2 // rimworld layer - made for the game RimWorld, by Tynan Sylvester | feel free to remap for your favorite game! 9#define RIMW 2 // rimworld layer - made for the game RimWorld, by Tynan Sylvester | feel free to remap for your favorite game!
10#define MDIA 3 // media layer - mouse and music - close to Ergodox EZ default media layer 10#define MDIA 3 // media layer - mouse and music - close to Ergodox EZ default media layer
11 11
12#define CO_PA M(0) // hold copy, tap paste 12#define CO_PA M(0) // hold copy, tap paste
13 13
14#define W_CUT LCTL(KC_X) // C-x Cut 14#define W_CUT LCTL(KC_X) // C-x Cut
15#define W_COPY LCTL(KC_C) // C-c Copy 15#define W_COPY LCTL(KC_C) // C-c Copy
16#define W_PASTE LCTL(KC_V) // C-v Paste 16#define W_PASTE LCTL(KC_V) // C-v Paste
17#define W_UNDO LCTL(KC_Z) // C-z Undo 17#define W_UNDO LCTL(KC_Z) // C-z Undo
18#define W_FIND LCTL(KC_F) // C-v Find 18#define W_FIND LCTL(KC_F) // C-v Find
19#define W_CAD LCTL(LALT(KC_DEL)) // one-tap ctrl-alt-del 19#define W_CAD LCTL(LALT(KC_DEL)) // one-tap ctrl-alt-del
20 20
21 21
22 22
23//Tap Dance Declarations 23//Tap Dance Declarations
24enum { 24enum {
25 CAKEWARP, 25 CAKEWARP,
26 CTRLALTMDIA, 26 CTRLALTMDIA,
27}; 27};
28 28
29void cake_count (qk_tap_dance_state_t *state, void *user_data) { 29void cake_count (qk_tap_dance_state_t *state, void *user_data) {
30 if (state->count == 2) { 30 if (state->count == 2) {
31 layer_on (SYMB); //define double tap here 31 layer_on (SYMB); //define double tap here
32 layer_off (MDIA); 32 layer_off (MDIA);
33 } 33 }
34 else { 34 else {
35 layer_off (SYMB); //define single tap or hold here 35 layer_off (SYMB); //define single tap or hold here
36 layer_off (MDIA); 36 layer_off (MDIA);
37 } 37 }
38 if (state->count == 3) { 38 if (state->count == 3) {
39 layer_on (RIMW); //define triple tap here 39 layer_on (RIMW); //define triple tap here
40 layer_off (MDIA); 40 layer_off (MDIA);
41 } 41 }
42 else { 42 else {
43 layer_off (RIMW); //define single tap or hold here 43 layer_off (RIMW); //define single tap or hold here
44 layer_off (MDIA); 44 layer_off (MDIA);
45 reset_tap_dance (state); 45 reset_tap_dance (state);
46 } 46 }
47} 47}
48 48
49void dance_cad_mdia_fin (qk_tap_dance_state_t *state, void *user_data) { 49void dance_cad_mdia_fin (qk_tap_dance_state_t *state, void *user_data) {
50 if (state->count == 1) { 50 if (state->count == 1) {
51 register_code (KC_LCTL); 51 register_code (KC_LCTL);
52 register_code (KC_LALT); 52 register_code (KC_LALT);
53 register_code (KC_DEL); 53 register_code (KC_DEL);
54 } else { 54 } else {
55 layer_on (MDIA); 55 layer_on (MDIA);
56 } 56 }
57} 57}
58 58
59void dance_cad_mdia_reset (qk_tap_dance_state_t *state, void *user_data) { 59void dance_cad_mdia_reset (qk_tap_dance_state_t *state, void *user_data) {
60 if (state->count == 1) { 60 if (state->count == 1) {
61 unregister_code (KC_DEL); 61 unregister_code (KC_DEL);
62 unregister_code (KC_LALT); 62 unregister_code (KC_LALT);
63 unregister_code (KC_LCTL); 63 unregister_code (KC_LCTL);
64 } else { 64 } else {
65 ; 65 ;
66 } 66 }
67} 67}
68 68
69//Tap Dance Definitions 69//Tap Dance Definitions
70qk_tap_dance_action_t tap_dance_actions[] = { 70qk_tap_dance_action_t tap_dance_actions[] = {
71 // tap for Layer 0, tap twice to switch to symbol layer, and tap three times to switch to rimworld layer. 71 // tap for Layer 0, tap twice to switch to symbol layer, and tap three times to switch to rimworld layer.
72 [CAKEWARP] = ACTION_TAP_DANCE_FN(cake_count) 72 [CAKEWARP] = ACTION_TAP_DANCE_FN(cake_count)
73 // tap for ctrl-alt-del, tap twice for media layer 73 // tap for ctrl-alt-del, tap twice for media layer
74 ,[CTRLALTMDIA] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cad_mdia_fin, dance_cad_mdia_reset) 74 ,[CTRLALTMDIA] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cad_mdia_fin, dance_cad_mdia_reset)
75 // Other declarations would go here, separated by commas, if you have them 75 // Other declarations would go here, separated by commas, if you have them
76}; 76};
77 77
78//In Layer declaration, add tap dance item in place of a key code 78//In Layer declaration, add tap dance item in place of a key code
79 79
80const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 80const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
81/* Keymap 0: Basic layer - TD(one_tap, two_taps, three_taps...) 81/* Keymap 0: Basic layer - TD(one_tap, two_taps, three_taps...)
82 * 82 *
83 * ,--------------------------------------------------. ,--------------------------------------------------. 83 * ,--------------------------------------------------. ,--------------------------------------------------.
84 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = | 84 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = |
85 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 85 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
86 * | F12/L1 | Q | W | E | R | T | {/[ | |TD(L0 | Y | U | I | O | P | \ | 86 * | F12/L1 | Q | W | E | R | T | {/[ | |TD(L0 | Y | U | I | O | P | \ |
87 * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------| 87 * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------|
88 * |Caps/Win| A | S | D | F | G |------| |------| H | J | K | L | ; | ' | 88 * |Caps/Win| A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
89 * |--------+------+------+------+------+------| }/] | TD(ctrl|------+------+------+------+------+--------| 89 * |--------+------+------+------+------+------| }/] | TD(ctrl|------+------+------+------+------+--------|
90 * |LShift/(|Z/Ctrl| X | C | V | B | | |altdel| N | M | , | . | / |RShift/)| 90 * |LShift/(|Z/Ctrl| X | C | V | B | | |altdel| N | M | , | . | / |RShift/)|
91 * `--------+------+------+------+------+-------------' |L3) |------+------+------+------+------+--------' 91 * `--------+------+------+------+------+-------------' |L3) |------+------+------+------+------+--------'
92 * | Undo | Cut |CopyPa| Meh | LGui | '------| | Enter| Left | Up | Down | Right | 92 * | Undo | Cut |CopyPa| Meh | LGui | '------| | Enter| Left | Up | Down | Right |
93 * `----------------------------------' `----------------------------------' 93 * `----------------------------------' `----------------------------------'
94 * ,-------------. ,-------------. 94 * ,-------------. ,-------------.
95 * | Esc | VolUp| | F4 | Mute | 95 * | Esc | VolUp| | F4 | Mute |
96 * ,------|------|------| |------+--------+------. 96 * ,------|------|------| |------+--------+------.
97 * | | | VolDn| | F5 | | | 97 * | | | VolDn| | F5 | | |
98 * |Backsp|Delete|------| |------| Tab / |Space | 98 * |Backsp|Delete|------| |------| Tab / |Space |
99 * |ace | | Find | | Alt | CTRL | | 99 * |ace | | Find | | Alt | CTRL | |
100 * `--------------------' `----------------------' 100 * `--------------------' `----------------------'
101 */ 101 */
102// If it accepts an argument (i.e, is a function), it doesn't need KC_. 102// If it accepts an argument (i.e, is a function), it doesn't need KC_.
103// Otherwise, it needs KC_* 103// Otherwise, it needs KC_*
104[BASE] = KEYMAP( // layer 0 : default 104[BASE] = KEYMAP( // layer 0 : default
105 // left hand 105 // left hand
106 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, 106 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
107LT(SYMB, KC_F12), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, 107LT(SYMB, KC_F12), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
108 GUI_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, 108 GUI_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G,
109 KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_RBRC, 109 KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_RBRC,
110 W_UNDO, W_CUT, CO_PA, MEH_T(KC_NO), KC_LGUI, 110 W_UNDO, W_CUT, CO_PA, MEH_T(KC_NO), KC_LGUI,
111 KC_ESC, KC_VOLU, 111 KC_ESC, KC_VOLU,
112 KC_VOLD, 112 KC_VOLD,
113 KC_BSPC, KC_DELETE, W_FIND, 113 KC_BSPC, KC_DELETE, W_FIND,
114 // right hand 114 // right hand
115 KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 115 KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
116 TD(CAKEWARP), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 116 TD(CAKEWARP), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
117 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 117 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
118 TD(CTRLALTMDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, 118 TD(CTRLALTMDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
119 KC_ENT, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, 119 KC_ENT, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT,
120 KC_F4, KC_MUTE, 120 KC_F4, KC_MUTE,
121 KC_F5, 121 KC_F5,
122 KC_RALT, CTL_T(KC_TAB), KC_SPC 122 KC_RALT, CTL_T(KC_TAB), KC_SPC
123 ), 123 ),
124 124
125/* Keymap 1: Symbol Layer | No EEPROM Or Version keys 125/* Keymap 1: Symbol Layer | No EEPROM Or Version keys
126 * 126 *
127 * ,--------------------------------------------------. ,--------------------------------------------------. 127 * ,--------------------------------------------------. ,--------------------------------------------------.
128 * | | F1 | F2 | F3 | F4 | F5 | xx | | xx | F6 | F7 | F8 | F9 | F10 | F11 | 128 * | | F1 | F2 | F3 | F4 | F5 | xx | | xx | F6 | F7 | F8 | F9 | F10 | F11 |
129 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 129 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
130 * | | ! | @ | { | } | | | | |TD(L0 | Up | 7 | 8 | 9 | * | F12 | 130 * | | ! | @ | { | } | | | | |TD(L0 | Up | 7 | 8 | 9 | * | F12 |
131 * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------| 131 * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------|
132 * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | - | 132 * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | - |
133 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 133 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
134 * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | 134 * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
135 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 135 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
136 * | | | | | | | | . | 0 | = | | 136 * | | | | | | | | . | 0 | = | |
137 * `----------------------------------' `----------------------------------' 137 * `----------------------------------' `----------------------------------'
138 * ,-------------. ,-------------. 138 * ,-------------. ,-------------.
139 * | | | | | | 139 * | | | | | |
140 * ,------|------|------| |------+------+------. 140 * ,------|------|------| |------+------+------.
141 * | | | | | | | | 141 * | | | | | | | |
142 * | | |------| |------| | | 142 * | | |------| |------| | |
143 * | | | | | | | | 143 * | | | | | | | |
144 * `--------------------' `--------------------' 144 * `--------------------' `--------------------'
145 */ 145 */
146// SYMBOLS 146// SYMBOLS
147[SYMB] = KEYMAP( 147[SYMB] = KEYMAP(
148 // left hand 148 // left hand
149 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, 149 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,
150 KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, 150 KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
151 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, 151 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
152 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, 152 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
153 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 153 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
154 KC_TRNS,KC_TRNS, 154 KC_TRNS,KC_TRNS,
155 KC_TRNS, 155 KC_TRNS,
156 KC_TRNS,KC_TRNS,KC_TRNS, 156 KC_TRNS,KC_TRNS,KC_TRNS,
157 // right hand 157 // right hand
158 KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 158 KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
159 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, 159 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
160 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS, 160 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS,
161 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, 161 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
162 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_NO, 162 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_NO,
163 KC_TRNS, KC_TRNS, 163 KC_TRNS, KC_TRNS,
164 KC_TRNS, 164 KC_TRNS,
165 KC_TRNS, KC_TRNS, KC_TRNS 165 KC_TRNS, KC_TRNS, KC_TRNS
166), 166),
167 167
168/* Keymap 2: RimWorld Layer 168/* Keymap 2: RimWorld Layer
169 * 169 *
170 * ,--------------------------------------------------. ,--------------------------------------------------. 170 * ,--------------------------------------------------. ,--------------------------------------------------.
171 * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = | 171 * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = |
172 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 172 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
173 * | TAB | C | ,< | W | >. | R | | |TD(L0 | U | B | N | J | M | PGUP | 173 * | TAB | C | ,< | W | >. | R | | |TD(L0 | U | B | N | J | M | PGUP |
174 * |--------+------+------+------+------+------| F10 | |L1 L2)|------+------+------+------+------+--------| 174 * |--------+------+------+------+------+------| F10 | |L1 L2)|------+------+------+------+------+--------|
175 * | I | F | A | S | D | 8 |------| |------| X | L | P | Y | H | ENTER | 175 * | I | F | A | S | D | 8 |------| |------| X | L | P | Y | H | ENTER |
176 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 176 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
177 * | K | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | PGDN | 177 * | K | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | PGDN |
178 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 178 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
179 * | | | | | | | F | | | | | 179 * | | | | | | | F | | | | |
180 * `----------------------------------' `----------------------------------' 180 * `----------------------------------' `----------------------------------'
181 * ,-------------. ,-------------. 181 * ,-------------. ,-------------.
182 * | | | | | | 182 * | | | | | |
183 * ,------|------|------| |------+------+------. 183 * ,------|------|------| |------+------+------.
184 * | | | | | | | | 184 * | | | | | | | |
185 * |SPACE | C |------| |------| E |SPACE | 185 * |SPACE | C |------| |------| E |SPACE |
186 * | | | Q | | | | | 186 * | | | Q | | | | |
187 * `--------------------' `--------------------' 187 * `--------------------' `--------------------'
188 */ 188 */
189// RIMWORLD 189// RIMWORLD
190[RIMW] = KEYMAP( 190[RIMW] = KEYMAP(
191 // left hand 191 // left hand
192 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, 192 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
193 KC_TAB, KC_C, KC_COMM, KC_W, KC_DOT, KC_R, KC_F10, 193 KC_TAB, KC_C, KC_COMM, KC_W, KC_DOT, KC_R, KC_F10,
194 KC_I, KC_F, KC_A, KC_S, KC_D, KC_8, 194 KC_I, KC_F, KC_A, KC_S, KC_D, KC_8,
195 KC_K, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, 195 KC_K, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
196 KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 196 KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
197 KC_TRNS,KC_TRNS, 197 KC_TRNS,KC_TRNS,
198 KC_TRNS, 198 KC_TRNS,
199 KC_C,KC_Q,KC_TRNS, 199 KC_C,KC_Q,KC_TRNS,
200 // right hand 200 // right hand
201 KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 201 KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
202 KC_TRNS, KC_U, KC_B, KC_N, KC_J, KC_M, KC_PGUP, 202 KC_TRNS, KC_U, KC_B, KC_N, KC_J, KC_M, KC_PGUP,
203 KC_X, KC_L, SFT_T(KC_P), KC_Y, KC_H, KC_ENT, 203 KC_X, KC_L, SFT_T(KC_P), KC_Y, KC_H, KC_ENT,
204 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGDN, 204 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGDN,
205 KC_F, KC_LEFT, KC_UP, KC_DOWN,KC_RIGHT, 205 KC_F, KC_LEFT, KC_UP, KC_DOWN,KC_RIGHT,
206 KC_TRNS, KC_TRNS, 206 KC_TRNS, KC_TRNS,
207 KC_TRNS, 207 KC_TRNS,
208 KC_TRNS, KC_E, KC_TRNS 208 KC_TRNS, KC_E, KC_TRNS
209), 209),
210/* Keymap 3: Media and mouse keys 210/* Keymap 3: Media and mouse keys
211 * 211 *
212 * ,--------------------------------------------------. ,--------------------------------------------------. 212 * ,--------------------------------------------------. ,--------------------------------------------------.
213 * | | | | | | | | | | | | | | | | 213 * | | | | | | | | | | | | | | | |
214 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 214 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
215 * | | | | MsUp | | | | | | | | | | | | 215 * | | | | MsUp | | | | | | | | | | | |
216 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 216 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
217 * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | 217 * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
218 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 218 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
219 * | | | | | | | | | | | | Prev | Next | | | 219 * | | | | | | | | | | | | Prev | Next | | |
220 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 220 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
221 * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | 221 * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
222 * `----------------------------------' `----------------------------------' 222 * `----------------------------------' `----------------------------------'
223 * ,-------------. ,-------------. 223 * ,-------------. ,-------------.
224 * | | | | | | 224 * | | | | | |
225 * ,------|------|------| |------+------+------. 225 * ,------|------|------| |------+------+------.
226 * | | | | | | |Brwser| 226 * | | | | | | |Brwser|
227 * | Lclk | Rclk |------| |------| |Back | 227 * | Lclk | Rclk |------| |------| |Back |
228 * | | | | | | | | 228 * | | | | | | | |
229 * `--------------------' `--------------------' 229 * `--------------------' `--------------------'
230 */ 230 */
231// MEDIA AND MOUSE 231// MEDIA AND MOUSE
232[MDIA] = KEYMAP( 232[MDIA] = KEYMAP(
233 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 233 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
234 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, 234 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
235 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, 235 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
236 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, KC_TRNS, KC_TRNS,
237 KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, 237 KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
238 KC_TRNS, KC_TRNS, 238 KC_TRNS, KC_TRNS,
239 KC_TRNS, 239 KC_TRNS,
240 KC_BTN1, KC_BTN2, KC_TRNS, 240 KC_BTN1, KC_BTN2, KC_TRNS,
241 // right hand 241 // right hand
242 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 242 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
243 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 243 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
244 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, 244 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
245 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, 245 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
246 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, 246 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
247 KC_TRNS, KC_TRNS, 247 KC_TRNS, KC_TRNS,
248 KC_TRNS, 248 KC_TRNS,
249 KC_TRNS, KC_TRNS, KC_WBAK 249 KC_TRNS, KC_TRNS, KC_WBAK
250), 250),
251}; 251};
252 252
253static uint16_t key_timer; 253static uint16_t key_timer;
254 254
255const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 255const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
256{ 256{
257 switch(id) { 257 switch(id) {
258 case 0: { 258 case 0: {
259 if (record->event.pressed) { 259 if (record->event.pressed) {
260 key_timer = timer_read(); // if the key is being pressed, we start the timer. 260 key_timer = timer_read(); // if the key is being pressed, we start the timer.
261 } 261 }
262 else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). 262 else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down").
263 if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap. 263 if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap.
264 return MACRO( D(LCTL), T(C), U(LCTL), END ); 264 return MACRO( D(LCTL), T(C), U(LCTL), END );
265 } 265 }
266 else { 266 else {
267 return MACRO( D(LCTL), T(V), U(LCTL), END ); 267 return MACRO( D(LCTL), T(V), U(LCTL), END );
268 } 268 }
269 } 269 }
270 break; 270 break;
271 } 271 }
272 } 272 }
273 return MACRO_NONE; 273 return MACRO_NONE;
274}; 274};
275 275
276// Anything you want to do once when the keyboard initializes. 276// Anything you want to do once when the keyboard initializes.
277// Tests LED function when the keyboard initializes. 277// Tests LED function when the keyboard initializes.
278void matrix_init_user(void) { 278void matrix_init_user(void) {
279 279
280 wait_ms(500); 280 wait_ms(500);
281 ergodox_board_led_on(); 281 ergodox_board_led_on();
282 wait_ms(200); 282 wait_ms(200);
283 ergodox_right_led_1_on(); 283 ergodox_right_led_1_on();
284 wait_ms(200); 284 wait_ms(200);
285 ergodox_right_led_2_on(); 285 ergodox_right_led_2_on();
286 wait_ms(200); 286 wait_ms(200);
287 ergodox_right_led_3_on(); 287 ergodox_right_led_3_on();
288 wait_ms(200); 288 wait_ms(200);
289 ergodox_board_led_off(); 289 ergodox_board_led_off();
290 wait_ms(200); 290 wait_ms(200);
291 ergodox_right_led_1_off(); 291 ergodox_right_led_1_off();
292 wait_ms(200); 292 wait_ms(200);
293 ergodox_right_led_2_off(); 293 ergodox_right_led_2_off();
294 wait_ms(200); 294 wait_ms(200);
295 ergodox_right_led_3_off(); 295 ergodox_right_led_3_off();
296 296
297}; 297};
298 298
299 299
300// Runs constantly in the background, in a loop. 300// Runs constantly in the background, in a loop.
301void matrix_scan_user(void) { 301void matrix_scan_user(void) {
302 302
303 uint8_t layer = biton32(layer_state); 303 uint8_t layer = biton32(layer_state);
304 304
305 ergodox_board_led_off(); 305 ergodox_board_led_off();
306 ergodox_right_led_1_off(); 306 ergodox_right_led_1_off();
307 ergodox_right_led_2_off(); 307 ergodox_right_led_2_off();
308 ergodox_right_led_3_off(); 308 ergodox_right_led_3_off();
309 switch (layer) { 309 switch (layer) {
310 case 1: 310 case 1:
311 ergodox_right_led_1_on(); 311 ergodox_right_led_1_on();
312 break; 312 break;
313 case 2: 313 case 2:
314 ergodox_right_led_2_on(); 314 ergodox_right_led_2_on();
315 break; 315 break;
316 case 3: 316 case 3:
317 ergodox_right_led_3_on(); 317 ergodox_right_led_3_on();
318 break; 318 break;
319 default: 319 default:
320 // none 320 // none
321 break; 321 break;
322 } 322 }
323 323
324}; 324};
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/readme.md b/keyboards/ergodox/keymaps/win10_writers-block/readme.md
index 66b1aaf40..e51e3c48f 100644
--- a/keyboards/ergodox/keymaps/win10_writers-block/readme.md
+++ b/keyboards/ergodox/keymaps/win10_writers-block/readme.md
@@ -1,113 +1,113 @@
1<!-- -*- mode: markdown; fill-column: 8192 -*- --> 1<!-- -*- mode: markdown; fill-column: 8192 -*- -->
2 2
3Win10 Writer's Block ErgoDox - v1.0 3Win10 Writer's Block ErgoDox - v1.0
4 4
5======================= 5=======================
6 6
7This is a QWERTY layout for QMK. It's designed to work well in MS Office-like environments. It's tested on Windows 7 and 10. 7This is a QWERTY layout for QMK. It's designed to work well in MS Office-like environments. It's tested on Windows 7 and 10.
8 8
9Professional writers may find this layout useful -- copywriters, technical writers, novelists, etc. 9Professional writers may find this layout useful -- copywriters, technical writers, novelists, etc.
10 10
11I use my ErgoDox with this keymap as a daily driver at my office. 11I use my ErgoDox with this keymap as a daily driver at my office.
12 12
13A gaming layer is unobtrusively built into this layout. I use that layer to play RimWorld. 13A gaming layer is unobtrusively built into this layout. I use that layer to play RimWorld.
14 14
15Feel free to modify the gaming layer to your personal taste. 15Feel free to modify the gaming layer to your personal taste.
16 16
17## Table of Contents 17## Table of Contents
18 18
19* [Layouts](#layouts) 19* [Layouts](#layouts)
20 - [Base layer](#base-layer) 20 - [Base layer](#base-layer)
21 - [Symbol layer](#symbol-layer) 21 - [Symbol layer](#symbol-layer)
22 - [Gaming layer](#rimworld-layer) 22 - [Gaming layer](#rimworld-layer)
23 - [Media layer](#media-layer) 23 - [Media layer](#media-layer)
24* [Tools](#tools) 24* [Tools](#tools)
25 - [Layer notification](#layer-notification) 25 - [Layer notification](#layer-notification)
26* [Building](#building) 26* [Building](#building)
27 - [Using on Windows](#using-on-windows) 27 - [Using on Windows](#using-on-windows)
28* [License](#license) 28* [License](#license)
29* [Special Thanks](#special-thanks) 29* [Special Thanks](#special-thanks)
30 30
31# Layouts 31# Layouts
32 32
33* TapDance will teleport you to the layer you want: 33* TapDance will teleport you to the layer you want:
34* One Tap for the Base layer 34* One Tap for the Base layer
35* Two Taps for the Symbol layer 35* Two Taps for the Symbol layer
36* Three Taps for the Rimworld/Gaming layer 36* Three Taps for the Rimworld/Gaming layer
37 37
38* Where the "Meh" key is located on the Ergodox EZ default layout, I've changed it to another tap dance key: 38* Where the "Meh" key is located on the Ergodox EZ default layout, I've changed it to another tap dance key:
39* One Tap for CTRL-ALT-DEL 39* One Tap for CTRL-ALT-DEL
40* Two Taps for the Media/Mouse layer 40* Two Taps for the Media/Mouse layer
41 41
42## Base layer 42## Base layer
43 43
44[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/8fd9bbdd3a23bbb5a8779de3624a3be1) 44[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/8fd9bbdd3a23bbb5a8779de3624a3be1)
45 45
46This is a QWERTY layout with some quirks. 46This is a QWERTY layout with some quirks.
47 47
48* Enter is located on a key that won't cause as much thumb fatigue. 48* Enter is located on a key that won't cause as much thumb fatigue.
49* Copy and Paste work from the same key. Just hold the key to copy and tap the key to paste! 49* Copy and Paste work from the same key. Just hold the key to copy and tap the key to paste!
50* Undo, Find and Cut are also one-touch keys. 50* Undo, Find and Cut are also one-touch keys.
51* F12 is where you would normally find TAB on standard layouts. Quickly save in Word, safely. 51* F12 is where you would normally find TAB on standard layouts. Quickly save in Word, safely.
52* You'll find bracket keys below the "6" key. 52* You'll find bracket keys below the "6" key.
53 53
54* The Meh Key is a single-button CTRL+ALT+SHIFT modifier. 54* The Meh Key is a single-button CTRL+ALT+SHIFT modifier.
55 55
56* Space Cadet Shift: Tap L Shift for "(" and R Shift for ")" -- holding either shift works like a normal shift. 56* Space Cadet Shift: Tap L Shift for "(" and R Shift for ")" -- holding either shift works like a normal shift.
57* Tap "Z" or Tab to use either normally. Hold them for CTRL. 57* Tap "Z" or Tab to use either normally. Hold them for CTRL.
58* Tap Caps Lock to use it normally. Hold it for Win key combinations (Win+D to minimize all programs, etc). 58* Tap Caps Lock to use it normally. Hold it for Win key combinations (Win+D to minimize all programs, etc).
59 59
60## Symbol layer 60## Symbol layer
61 61
62[![Symbol layer](images/symbol-layer.png)](http://www.keyboard-layout-editor.com/#/gists/04eb6458b8b17882e472f64d482f12b4) 62[![Symbol layer](images/symbol-layer.png)](http://www.keyboard-layout-editor.com/#/gists/04eb6458b8b17882e472f64d482f12b4)
63 63
64Your standard Ergodox EZ symbol + numpad layout, minus the Version and EEPROM keys. 64Your standard Ergodox EZ symbol + numpad layout, minus the Version and EEPROM keys.
65 65
66* From the base layer, hold the F12 Key to temporarily access this layer (use for quick access to numpad) 66* From the base layer, hold the F12 Key to temporarily access this layer (use for quick access to numpad)
67* Release F12 to return to the base layer. 67* Release F12 to return to the base layer.
68 68
69## Rimworld layer 69## Rimworld layer
70 70
71[![Rimworld / Gaming Layer](images/rimworld-layer.png)](http://www.keyboard-layout-editor.com/#/gists/d53af8391e6e443ed0a98ccfbdb4eace) 71[![Rimworld / Gaming Layer](images/rimworld-layer.png)](http://www.keyboard-layout-editor.com/#/gists/d53af8391e6e443ed0a98ccfbdb4eace)
72 72
73This layer was made to play RimWorld, a Sci-Fi Colony Survival Game by Tynan Sylvester and Ludeon Studios, available on Steam. 73This layer was made to play RimWorld, a Sci-Fi Colony Survival Game by Tynan Sylvester and Ludeon Studios, available on Steam.
74 74
75* Have fun! 75* Have fun!
76 76
77## Media layer 77## Media layer
78 78
79[![Media layer](images/media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/3209d09ed4bd997e4f49f28c6ada2ab3) 79[![Media layer](images/media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/3209d09ed4bd997e4f49f28c6ada2ab3)
80 80
81This is the standard Ergodox EZ media layout with more options for mouseclick buttons. 81This is the standard Ergodox EZ media layout with more options for mouseclick buttons.
82 82
83* In this layer, your "space" key changes into a back button for your browser. 83* In this layer, your "space" key changes into a back button for your browser.
84 84
85## LED states 85## LED states
86 86
87Your LEDs will change to indicate your layer. You'll know you are in the base layer if all LEDs are off. 87Your LEDs will change to indicate your layer. You'll know you are in the base layer if all LEDs are off.
88 88
89# Building 89# Building
90 90
91To build, you will need the [QMK][qmk] firmware checked out. from there, dive into `keyboards/ergodox/keymaps/win10_writers-block/` 91To build, you will need the [QMK][qmk] firmware checked out. from there, dive into `keyboards/ergodox/keymaps/win10_writers-block/`
92 92
93[qmk]: https://github.com/jackhumbert/qmk_firmware 93[qmk]: https://github.com/jackhumbert/qmk_firmware
94 94
95``` 95```
96$ make keyboard=ergodox keymap=win10_writers-block 96$ make keyboard=ergodox keymap=win10_writers-block
97``` 97```
98 98
99## Using on Windows 99## Using on Windows
100 100
101This layout is tested in Windows 7 Pro and Windows 10 Home environments. 101This layout is tested in Windows 7 Pro and Windows 10 Home environments.
102 102
103# License 103# License
104 104
105GPL 3+ 105GPL 3+
106 106
107# Special Thanks 107# Special Thanks
108 108
109* To algernon for his coding help. I'm a novice but I still made this work (and figured out tap dance) with his help. 109* To algernon for his coding help. I'm a novice but I still made this work (and figured out tap dance) with his help.
110 110
111* To /r/MechanicalKeyboards for being an all-around great community. 111* To /r/MechanicalKeyboards for being an all-around great community.
112 112
113* To /u/profet23 for his amazing custom Ergodox boards. \ No newline at end of file 113* To /u/profet23 for his amazing custom Ergodox boards. \ No newline at end of file
diff --git a/keyboards/hhkb/keymaps/dbroqua/keymap.c b/keyboards/hhkb/keymaps/dbroqua/keymap.c
index 4e907acd8..2b6d3901a 100644
--- a/keyboards/hhkb/keymaps/dbroqua/keymap.c
+++ b/keyboards/hhkb/keymaps/dbroqua/keymap.c
@@ -35,19 +35,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 * |-----------------------------------------------------------------------------------------+ 35 * |-----------------------------------------------------------------------------------------+
36 * | Caps | | | | | | | |PrtSc| Slck| Paus| Up | | | 36 * | Caps | | | | | | | |PrtSc| Slck| Paus| Up | | |
37 * |-----------------------------------------------------------------------------------------+ 37 * |-----------------------------------------------------------------------------------------+
38 * | | Vol-| Vol+| Mute| | | | | Home| PgUp| Left |Right| | 38 * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left |Right| |
39 * |-----------------------------------------------------------------------------------------+ 39 * |-----------------------------------------------------------------------------------------+
40 * | | Prev| Play| Next| | | | | End |PgDwn| Down| | | 40 * | | Prev| Play| Next| | | + | - | End |PgDwn| Down| | |
41 * +-----------------------------------------------------------------------------------------+ 41 * +-----------------------------------------------------------------------------------------+
42 * | | | | | | 42 * | | | | Stop | |
43 * `----------------------------------------------------------------´ 43 * `----------------------------------------------------------------´
44 */ 44 */
45 [FN] = KEYMAP( 45 [FN] = KEYMAP(
46 KC_PWR, 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_INS, KC_DEL, \ 46 KC_PWR, 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_INS, KC_DEL, \
47 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, \ 47 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, \
48 KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, \ 48 KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, \
49 KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ 49 KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 50 KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_TRNS
51 ), 51 ),
52 52
53 /* MOUSE Layer 53 /* MOUSE Layer
diff --git a/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c
new file mode 100644
index 000000000..5d7c7f38a
--- /dev/null
+++ b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c
@@ -0,0 +1,73 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3
4#include "kc60.h"
5
6#define _QWERTY 0
7#define _FN 1
8
9// Fillers to make layering more clear
10#define ______ KC_TRNS
11#define XXXXXXX KC_NO
12
13// Func macro definitions.
14#define S_LED FUNC(0)
15#define S_LEDI FUNC(1)
16#define S_LEDD FUNC(2)
17
18// Enable these functions using FUNC(n) macro.
19const uint16_t PROGMEM fn_actions[] = {
20 [0] = ACTION_BACKLIGHT_TOGGLE(),
21 [1] = ACTION_BACKLIGHT_INCREASE(),
22 [2] = ACTION_BACKLIGHT_DECREASE()
23 };
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26/* Qwerty
27 * ,-----------------------------------------------------------------------------------------.
28 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
29 * |-----------------------------------------------------------------------------------------+
30 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
31 * |-----------------------------------------------------------------------------------------+
32 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
33 * |-----------------------------------------------------------------------------------------+
34 * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
35 * |-----------------------------------------------------------------------------------------+
36 * | LGUI | LAlt | Space | RAlt | RGUI |
37 * `-----------------------------------------------------------------'
38 */
39 [0] = KEYMAP( /* Basic QWERTY */
40 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_BSLS, \
41 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_BSPC, \
42 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
43 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_FN), KC_RSFT, \
44 ______, KC_LGUI, KC_LALT, KC_SPC, KC_GRV, KC_RALT, KC_RGUI, ______, ______ \
45 ),
46
47/* Layer 1
48 * ,-----------------------------------------------------------------------------------------.
49 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
50 * |-----------------------------------------------------------------------------------------+
51 * | | Led | Led-| Led+| | | | | Psc | Slck| Paus| Up | | |
52 * |-----------------------------------------------------------------------------------------+
53 * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
54 * |-----------------------------------------------------------------------------------------+
55 * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | |
56 * |-----------------------------------------------------------------------------------------+
57 * | | | | Stop | |
58 * `-----------------------------------------------------------------'
59 */
60 [_FN] = KEYMAP( /* Layer 1 */
61 ______, 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_INS, \
62 ______, S_LED, S_LEDI, S_LEDD, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \
63 ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, ______, \
64 ______, ______, KC_MPRV, KC_MPLY, KC_MNXT,______,______,KC_PPLS,KC_PMNS,KC_END, KC_PGDN, KC_DOWN, ______,______, \
65 ______, ______, ______, ______, KC_DEL, KC_MSTP, ______, ______, ______ \
66 )
67};
68
69const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
70{
71 // MACRODOWN only works in this function
72 return MACRO_NONE;
73};
diff --git a/keyboards/kc60/keymaps/dbroqua_hhkb/readme.md b/keyboards/kc60/keymaps/dbroqua_hhkb/readme.md
new file mode 100644
index 000000000..be99a3bc7
--- /dev/null
+++ b/keyboards/kc60/keymaps/dbroqua_hhkb/readme.md
@@ -0,0 +1,9 @@
1# Dbroqua HHKB like Layout
2
3Like the HHKB but with a KC60 PCB :D.
4
5# Programming Instructions:
6Enter into programming mode and run the following command.
7```
8$ sudo KEYMAP=dbroqua_hhkb make dfu
9``` \ No newline at end of file
diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md
index 73fdb0f78..6e296737a 100644
--- a/keyboards/lets_split/readme.md
+++ b/keyboards/lets_split/readme.md
@@ -100,3 +100,16 @@ half to a computer by USB the keyboard will use QWERTY and Colemak when the
100right half is connected. 100right half is connected.
101 101
102 102
103Notes on Using Pro Micro 3.3V
104-----------------------------
105
106Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects
107the frequency on the 3.3V board.
108
109Also, if the slave board is producing weird characters in certain columns,
110update the following line in `matrix.c` to the following:
111
112```
113// _delay_us(30); // without this wait read unstable value.
114_delay_us(300); // without this wait read unstable value.
115```
diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c
index c89b485a4..4d0151710 100644
--- a/keyboards/planck/keymaps/callum/keymap.c
+++ b/keyboards/planck/keymaps/callum/keymap.c
@@ -109,15 +109,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
109 * |------+------+------+------+------+------+------+------+------+------+------+------| 109 * |------+------+------+------+------+------+------+------+------+------+------+------|
110 * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | Vol- | 110 * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | Vol- |
111 * |------+------+------+------+------+------+------+------+------+------+------+------| 111 * |------+------+------+------+------+------+------+------+------+------+------+------|
112 * | | F21 | F22 | F23 | F24 | | | Lock | | | | | 112 * | | F21 | F22 | F23 | F24 | | | Power| | | | |
113 * |------+------+------+------+------+------+------+------+------+------+------+------| 113 * |------+------+------+------+------+------+------+------+------+------+------+------|
114 * | | | | | Prev | Mute | Play | Next | | | | | 114 * | | | | | Prev | Mute | Play | Next | | | | |
115 * `-----------------------------------------------------------------------------------' 115 * `-----------------------------------------------------------------------------------'
116 */ 116 */
117[_FUNC] = { 117[_FUNC] = {
118 {RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(LALT(KC_VOLU))}, 118 {RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_VOLU},
119 {XXXXXXX, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, S(LALT(KC_VOLD))}, 119 {XXXXXXX, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_VOLD},
120 {_______, KC_F21, KC_F22, KC_F23, KC_F24, XXXXXXX, XXXXXXX, S(LCTL(KC_POWER)), XXXXXXX, XXXXXXX, XXXXXXX, _______}, 120 {_______, KC_F21, KC_F22, KC_F23, KC_F24, XXXXXXX, XXXXXXX, KC_POWER, XXXXXXX, XXXXXXX, XXXXXXX, _______},
121 {_______, _______, _______, _______, KC_MPRV, KC_MUTE, KC_MPLY, KC_MNXT, _______, _______, _______, _______} 121 {_______, _______, _______, _______, KC_MPRV, KC_MUTE, KC_MPLY, KC_MNXT, _______, _______, _______, _______}
122} 122}
123 123
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/keyboards/preonic/keymaps/jacwib/config.h b/keyboards/preonic/keymaps/jacwib/config.h
index 23e9e0ed2..b98883120 100644
--- a/keyboards/preonic/keymaps/jacwib/config.h
+++ b/keyboards/preonic/keymaps/jacwib/config.h
@@ -4,5 +4,6 @@
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define FORCE_NKRO 1 6#define FORCE_NKRO 1
7#define PREVENT_STUCK_MODIFIERS
7 8
8#endif 9#endif
diff --git a/keyboards/preonic/keymaps/jacwib/keymap.c b/keyboards/preonic/keymaps/jacwib/keymap.c
index cf441bf30..72ccc86cd 100644
--- a/keyboards/preonic/keymaps/jacwib/keymap.c
+++ b/keyboards/preonic/keymaps/jacwib/keymap.c
@@ -13,13 +13,18 @@
13#define _QWERTY 0 13#define _QWERTY 0
14#define _LOWER 3 14#define _LOWER 3
15#define _RAISE 4 15#define _RAISE 4
16#define _MQWERTY 5
17#define _MLOWER 8
18#define _MRAISE 9
16#define _ADJUST 16 19#define _ADJUST 16
17 20
18enum preonic_keycodes { 21enum preonic_keycodes {
19 QWERTY = SAFE_RANGE, 22 QWERTY = SAFE_RANGE,
20 LOWER, 23 LOWER,
21 RAISE, 24 RAISE,
22 BACKLIT 25 MQWERTY,
26 MLOWER,
27 MRAISE
23}; 28};
24 29
25// Fillers to make layering more clear 30// Fillers to make layering more clear
@@ -38,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38 * |------+------+------+------+------+------|------+------+------+------+------+------| 43 * |------+------+------+------+------+------|------+------+------+------+------+------|
39 * | Shift| < | Z | X | C | V | B | N | M | . | , | - | 44 * | Shift| < | Z | X | C | V | B | N | M | . | , | - |
40 * |------+------+------+------+------+------+------+------+------+------+------+------| 45 * |------+------+------+------+------+------+------+------+------+------+------+------|
41 * | Ctrl | GUI | Alt |AltGr |Lower | Space| Enter|Raise | Left | Down | Up |Right | 46 * | Ctrl | Alt | GUI |AltGr |Lower | Space| Enter|Raise | Left | Down | Up |Right |
42 * `-----------------------------------------------------------------------------------' 47 * `-----------------------------------------------------------------------------------'
43 */ 48 */
44[_QWERTY] = { 49[_QWERTY] = {
@@ -46,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AM }, 51 {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AM },
47 {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_AE, NO_OSLH}, 52 {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_AE, NO_OSLH},
48 {KC_LSFT, NO_LESS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, NO_MINS}, 53 {KC_LSFT, NO_LESS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, NO_MINS},
49 {KC_LCTL, KC_LGUI, KC_LALT, NO_ALGR, LOWER, KC_SPC, KC_ENT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 54 {KC_LCTL, KC_LALT, KC_LGUI, NO_ALGR, LOWER, KC_SPC, KC_ENT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
50}, 55},
51 56
52/* Lower 57/* Lower
@@ -59,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
59 * |------+------+------+------+------+------|------+------+------+------+------+------| 64 * |------+------+------+------+------+------|------+------+------+------+------+------|
60 * | | | | | | | | | |VolDwn| | | | 65 * | | | | | | | | | |VolDwn| | | |
61 * |------+------+------+------+------+------+------+------+------+------+------+------| 66 * |------+------+------+------+------+------+------+------+------+------+------+------|
62 * | | | | | | |Bspc | | | | | | 67 * | | | | | | |Bspc | | |PgDn |PgUp | |
63 * `-----------------------------------------------------------------------------------' 68 * `-----------------------------------------------------------------------------------'
64 */ 69 */
65[_LOWER] = { 70[_LOWER] = {
@@ -67,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
67 {_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, NO_TILD}, 72 {_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, NO_TILD},
68 {_______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, LSFT(KC_BSLS)}, 73 {_______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, LSFT(KC_BSLS)},
69 {_______, NO_PIPE, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______}, 74 {_______, NO_PIPE, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______},
70 {_______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, _______, _______} 75 {_______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, KC_PGDN, KC_PGUP, _______}
71}, 76},
72 77
73/* Raise 78/* Raise
@@ -76,11 +81,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
76 * |------+------+------+------+------+------+------+------+------+------+------+------| 81 * |------+------+------+------+------+------+------+------+------+------+------+------|
77 * | | | |Mouse^| | | | |ScrlUp| | | ^ | 82 * | | | |Mouse^| | | | |ScrlUp| | | ^ |
78 * |------+------+------+------+------+-------------+------+------+------+------+------| 83 * |------+------+------+------+------+-------------+------+------+------+------+------|
79 * | | |Mouse<|MouseV|Mouse>| | |MLC |MMC |MRC | ' | " | 84 * | | |Mouse<|MouseV|Mouse>| | |MLC |MMC |MRC | ' | ¨ |
80 * |------+------+------+------+------+------|------+------+------+------+------+------| 85 * |------+------+------+------+------+------|------+------+------+------+------+------|
81 * | | > | | | | | | |ScrlDown| : | ; | _ | 86 * | | > | | | | | | |ScrlDown| : | ; | _ |
82 * |------+------+------+------+------+------+------+------+------+------+------+------| 87 * |------+------+------+------+------+------+------+------+------+------+------+------|
83 * | | | | | |Bspc | | | | | | | 88 * | | | | | |Bspc | | | | PgDn | PgUp | |
84 * `-----------------------------------------------------------------------------------' 89 * `-----------------------------------------------------------------------------------'
85 */ 90 */
86[_RAISE] = { 91[_RAISE] = {
@@ -88,7 +93,70 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
88 {_______, _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, NO_CIRC}, 93 {_______, _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, NO_CIRC},
89 {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, NO_APOS, NO_QUOT}, 94 {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, NO_APOS, NO_QUOT},
90 {_______, NO_GRTR, _______, _______, _______, _______, _______, _______, KC_WH_D, NO_COLN, NO_SCLN, NO_UNDS}, 95 {_______, NO_GRTR, _______, _______, _______, _______, _______, _______, KC_WH_D, NO_COLN, NO_SCLN, NO_UNDS},
91 {_______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, _______, _______, _______} 96 {_______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, KC_PGDN, KC_PGUP, _______}
97},
98
99/* Mac Qwerty
100 * ,-----------------------------------------------------------------------------------.
101 * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | + | Bksp |
102 * |------+------+------+------+------+------+------+------+------+------+------+------|
103 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Ã… |
104 * |------+------+------+------+------+-------------+------+------+------+------+------|
105 * | Tab | A | S | D | F | G | H | J | K | L | Ö | Ä |
106 * |------+------+------+------+------+------|------+------+------+------+------+------|
107 * | Shift| < | Z | X | C | V | B | N | M | . | , | - |
108 * |------+------+------+------+------+------+------+------+------+------+------+------|
109 * | Ctrl | Alt | GUI |AltGr |Lower | Space| Enter|Raise | Left | Down | Up |Right |
110 * `-----------------------------------------------------------------------------------'
111 */
112[_MQWERTY] = {
113 {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS, KC_BSPC},
114 {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AM },
115 {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_AE, NO_OSLH},
116 {KC_LSFT, NO_LESS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, NO_MINS},
117 {KC_LCTL, KC_LALT, KC_LGUI, NO_ALGR, MLOWER, KC_SPC, KC_ENT, MRAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
118},
119
120/* Mac Lower
121 * ,-----------------------------------------------------------------------------------.
122 * | | @ | £ | $ | | | { | [ | ] | } | \ | Del |
123 * |------+------+------+------+------+-------------+------+------+------+------+------|
124 * | | | | | | | | |VolUp | | | ~ |
125 * |------+------+------+------+------+-------------+------+------+------+------+------|
126 * | | | | | | | |LastS |PauseP|NextS | | * |
127 * |------+------+------+------+------+------|------+------+------+------+------+------|
128 * | | | | | | | | | |VolDwn| | | |
129 * |------+------+------+------+------+------+------+------+------+------+------+------|
130 * | | | | | | |Bspc | | |PgDn |PgUp | |
131 * `-----------------------------------------------------------------------------------'
132 */
133[_MLOWER] = {
134 {_______, NO_AT, NO_PND, NO_DLR, _______, _______, LSFT(LALT(KC_8)), NO_LBRC, NO_RBRC, LSFT(LALT(KC_9)), LSFT(LALT(KC_7)), KC_DEL},
135 {_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, NO_TILD},
136 {_______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, LSFT(KC_BSLS)},
137 {_______, NO_LBRC, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______},
138 {_______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______, KC_PGDN, KC_PGUP, _______}
139},
140
141/* Mac Raise
142 * ,-----------------------------------------------------------------------------------.
143 * | ! | " | # | ¤ | % | & | / | ( | ) | = | ? | Ins |
144 * |------+------+------+------+------+------+------+------+------+------+------+------|
145 * | | | |Mouse^| | | | |ScrlUp| | | ^ |
146 * |------+------+------+------+------+-------------+------+------+------+------+------|
147 * | | |Mouse<|MouseV|Mouse>| | |MLC |MMC |MRC | ' | ¨ |
148 * |------+------+------+------+------+------|------+------+------+------+------+------|
149 * | | > | | | | | | |ScrlDown| : | ; | _ |
150 * |------+------+------+------+------+------+------+------+------+------+------+------|
151 * | | | | | |Bspc | | | | PgDn | PgUp | |
152 * `-----------------------------------------------------------------------------------'
153 */
154[_MRAISE] = {
155 {LSFT(KC_1),NO_QUO2,LSFT(KC_3), NO_BULT,LSFT(KC_5), NO_AMPR, NO_SLSH, NO_LPRN, NO_RPRN, NO_EQL, NO_QUES, KC_INS},
156 {_______, _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, NO_CIRC},
157 {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, NO_APOS, NO_QUOT},
158 {_______, NO_GRTR, _______, _______, _______, _______, _______, _______, KC_WH_D, NO_COLN, NO_SCLN, NO_UNDS},
159 {_______, _______, _______, _______, _______, KC_BSPC, _______, _______, _______, KC_PGDN, KC_PGUP, _______}
92}, 160},
93 161
94/* Adjust (Lower + Raise) 162/* Adjust (Lower + Raise)
@@ -97,18 +165,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
97 * |------+------+------+------+------+------+------+------+------+------+------+------| 165 * |------+------+------+------+------+------+------+------+------+------+------+------|
98 * | | | | Reset| | | | | | | | | 166 * | | | | Reset| | | | | | | | |
99 * |------+------+------+------+------+-------------+------+------+------+------+------| 167 * |------+------+------+------+------+-------------+------+------+------+------+------|
100 * | | | | | | | | | | | |Rsft | 168 * | | | | | | | | | | | |Rshift|
101 * |------+------+------+------+------+------|------+------+------+------+------+------| 169 * |------+------+------+------+------+------|------+------+------+------+------+------|
102 * | |MusOn |MusOff| | | | | | | | | Reset| 170 * | |MusOn |MusOff| | | | |NrmMode|MacMode| | | Reset|
103 * |------+------+------+------+------+------+------+------+------+------+------+------| 171 * |------+------+------+------+------+------+------+------+------+------+------+------|
104 * | | | | | | | | | | | | 172 * | | | | | | | | | | | | |
105 * `-----------------------------------------------------------------------------------' 173 * `-----------------------------------------------------------------------------------'
106 */ 174 */
107[_ADJUST] = { 175[_ADJUST] = {
108 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, 176 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
109 {_______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______}, 177 {_______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______},
110 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT}, 178 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT},
111 {_______, MU_ON, MU_OFF, _______, _______, _______, _______, _______, _______, _______, _______, RESET }, 179 {_______, MU_ON, MU_OFF, _______, _______, _______, _______, TO(0), TO(5), _______, _______, RESET },
112 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} 180 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
113} 181}
114 182
@@ -117,14 +185,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
117 185
118#ifdef AUDIO_ENABLE 186#ifdef AUDIO_ENABLE
119float tone_startup[][2] = { 187float tone_startup[][2] = {
120 {NOTE_B5, 20}, 188 {NOTE_D5, 8},
121 {NOTE_B6, 8}, 189 {NOTE_E6, 8},
122 {NOTE_DS6, 20}, 190 {NOTE_D6, 8},
123 {NOTE_B6, 8} 191 {NOTE_E5, 8}
124}; 192};
125 193
126float tone_qwerty[][2] = SONG(QWERTY_SOUND);
127
128float tone_goodbye[][2] = SONG(GOODBYE_SOUND); 194float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
129 195
130float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); 196float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
@@ -139,9 +205,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
139 switch (keycode) { 205 switch (keycode) {
140 case QWERTY: 206 case QWERTY:
141 if (record->event.pressed) { 207 if (record->event.pressed) {
142 #ifdef AUDIO_ENABLE
143 PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
144 #endif
145 persistant_default_layer_set(1UL<<_QWERTY); 208 persistant_default_layer_set(1UL<<_QWERTY);
146 } 209 }
147 return false; 210 return false;
@@ -166,14 +229,29 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
166 } 229 }
167 return false; 230 return false;
168 break; 231 break;
169 case BACKLIT: 232 case MQWERTY:
233 if (record->event.pressed) {
234 persistant_default_layer_set(1UL<<_MQWERTY);
235 }
236 return false;
237 break;
238 case MLOWER:
239 if (record->event.pressed) {
240 layer_on(_MLOWER);
241 update_tri_layer(_MLOWER, _MRAISE, _ADJUST);
242 } else {
243 layer_off(_MLOWER);
244 update_tri_layer(_MLOWER, _MRAISE, _ADJUST);
245 }
246 return false;
247 break;
248 case MRAISE:
170 if (record->event.pressed) { 249 if (record->event.pressed) {
171 register_code(KC_RSFT); 250 layer_on(_MRAISE);
172 #ifdef BACKLIGHT_ENABLE 251 update_tri_layer(_MLOWER, _MRAISE, _ADJUST);
173 backlight_step();
174 #endif
175 } else { 252 } else {
176 unregister_code(KC_RSFT); 253 layer_off(_MRAISE);
254 update_tri_layer(_MLOWER, _MRAISE, _ADJUST);
177 } 255 }
178 return false; 256 return false;
179 break; 257 break;
diff --git a/keyboards/preonic/keymaps/jacwib/readme.md b/keyboards/preonic/keymaps/jacwib/readme.md
index 066031235..8658d6cdd 100644
--- a/keyboards/preonic/keymaps/jacwib/readme.md
+++ b/keyboards/preonic/keymaps/jacwib/readme.md
@@ -1,3 +1,15 @@
1# Jacwib's preonic keymap. 1# Jacwib's preonic keymap.
2 2
3Designed for use with a swedish language. 3Designed for use with a swedish language.
4
5Version 1.1:
6
7Added PgUp and PgDn keys.
8
9Also added "Mac mode". Unsure if it even works. Might however be able to test soon.
10
11Version 1.2:
12
13Changed around alt and super keys.
14
15Made "Mac mode" function, and tested it! (It works)
diff --git a/quantum/keymap_extras/keymap_dvp.h b/quantum/keymap_extras/keymap_dvp.h
new file mode 100644
index 000000000..83f49a52b
--- /dev/null
+++ b/quantum/keymap_extras/keymap_dvp.h
@@ -0,0 +1,82 @@
1#ifndef KEYMAP_DVP_H
2#define KEYMAP_DVP_H
3
4#include "keymap.h"
5
6// Normal characters
7#define DP_DLR KC_GRV
8#define DP_AMPR KC_1
9#define DP_LBRC KC_2
10#define DP_LCBR KC_3
11#define DP_RCBR KC_4
12#define DP_LPRN KC_5
13#define DP_EQL KC_6
14#define DP_ASTR KC_7
15#define DP_RPRN KC_8
16#define DP_PLUS KC_9
17#define DP_RBRC KC_0
18#define DP_EXLM KC_MINS
19#define DP_HASH KC_EQL
20
21#define DP_SCLN KC_Q
22#define DP_COMM KC_W
23#define DP_DOT KC_E
24#define DP_P KC_R
25#define DP_Y KC_T
26#define DP_F KC_Y
27#define DP_G KC_U
28#define DP_C KC_I
29#define DP_R KC_O
30#define DP_L KC_P
31#define DP_SLSH KC_LBRC
32#define DP_AT KC_RBRC
33#define DP_BSLS KC_BSLS
34
35#define DP_A KC_A
36#define DP_O KC_S
37#define DP_E KC_D
38#define DP_U KC_F
39#define DP_I KC_G
40#define DP_D KC_H
41#define DP_H KC_J
42#define DP_T KC_K
43#define DP_N KC_L
44#define DP_S KC_SCLN
45#define DP_MINS KC_QUOT
46
47#define DP_QUOT KC_Z
48#define DP_Q KC_X
49#define DP_J KC_C
50#define DP_K KC_V
51#define DP_X KC_B
52#define DP_B KC_N
53#define DP_M KC_M
54#define DP_W KC_COMM
55#define DP_V KC_DOT
56#define DP_Z KC_SLSH
57
58// Shifted characters
59#define DP_TILD LSFT(DP_DLR)
60#define DP_PERC LSFT(DP_AMPR)
61#define DP_7 LSFT(DP_LBRC)
62#define DP_5 LSFT(DP_LCBR)
63#define DP_3 LSFT(DP_RCBR)
64#define DP_1 LSFT(DP_LPRN)
65#define DP_9 LSFT(DP_EQL)
66#define DP_0 LSFT(DP_ASTR)
67#define DP_2 LSFT(DP_RPRN)
68#define DP_4 LSFT(DP_PLUS)
69#define DP_6 LSFT(DP_RBRC)
70#define DP_8 LSFT(DP_EXLM)
71#define DP_GRV LSFT(DP_HASH)
72
73#define DP_COLN LSFT(DP_SCLN)
74#define DP_LABK LSFT(DP_COMM)
75#define DP_RABK LSFT(DP_DOT)
76#define DP_QUES LSFT(DP_SLSH)
77#define DP_CIRC LSFT(DP_AT)
78#define DP_PIPE LSFT(DP_BSLS)
79#define DP_UNDS LSFT(DP_MINS)
80#define DP_DQUO LSFT(DP_QUOT)
81
82#endif
diff --git a/quantum/process_keycode/process_unicode.c b/quantum/process_keycode/process_unicode.c
index 37dd471ff..cd3a610b4 100644
--- a/quantum/process_keycode/process_unicode.c
+++ b/quantum/process_keycode/process_unicode.c
@@ -42,6 +42,11 @@ void unicode_input_start (void) {
42 register_code(KC_PPLS); 42 register_code(KC_PPLS);
43 unregister_code(KC_PPLS); 43 unregister_code(KC_PPLS);
44 break; 44 break;
45 case UC_WINC:
46 register_code(KC_RALT);
47 unregister_code(KC_RALT);
48 register_code(KC_U);
49 unregister_code(KC_U);
45 } 50 }
46 wait_ms(UNICODE_TYPE_DELAY); 51 wait_ms(UNICODE_TYPE_DELAY);
47} 52}
@@ -83,22 +88,42 @@ __attribute__((weak))
83const uint32_t PROGMEM unicode_map[] = { 88const uint32_t PROGMEM unicode_map[] = {
84}; 89};
85 90
86// 5 digit max because of linux limitation
87void register_hex32(uint32_t hex) { 91void register_hex32(uint32_t hex) {
88 for(int i = 4; i >= 0; i--) { 92 uint8_t onzerostart = 1;
93 for(int i = 7; i >= 0; i--) {
94 if (i <= 3) {
95 onzerostart = 0;
96 }
89 uint8_t digit = ((hex >> (i*4)) & 0xF); 97 uint8_t digit = ((hex >> (i*4)) & 0xF);
90 register_code(hex_to_keycode(digit)); 98 if (digit == 0) {
91 unregister_code(hex_to_keycode(digit)); 99 if (onzerostart == 0) {
100 register_code(hex_to_keycode(digit));
101 unregister_code(hex_to_keycode(digit));
102 }
103 } else {
104 register_code(hex_to_keycode(digit));
105 unregister_code(hex_to_keycode(digit));
106 onzerostart = 0;
107 }
92 } 108 }
93} 109}
94 110
111__attribute__((weak))
112void unicode_map_input_error() {}
113
95bool process_unicode_map(uint16_t keycode, keyrecord_t *record) { 114bool process_unicode_map(uint16_t keycode, keyrecord_t *record) {
96 if ((keycode & QK_UNICODE_MAP) == QK_UNICODE_MAP && record->event.pressed) { 115 if ((keycode & QK_UNICODE_MAP) == QK_UNICODE_MAP && record->event.pressed) {
97 const uint32_t* map = unicode_map; 116 const uint32_t* map = unicode_map;
98 uint16_t index = keycode & 0x7FF; 117 uint16_t index = keycode & 0x7FF;
99 unicode_input_start(); 118 uint32_t code = pgm_read_dword_far(&map[index]);
100 register_hex32(pgm_read_dword_far(&map[index])); 119 if ((code > 0xFFFF && input_mode == UC_OSX) || (code > 0xFFFFF && input_mode == UC_LNX)) {
101 unicode_input_finish(); 120 // when character is out of range supported by the OS
121 unicode_map_input_error();
122 } else {
123 unicode_input_start();
124 register_hex32(code);
125 unicode_input_finish();
126 }
102 } 127 }
103 return true; 128 return true;
104} 129}
diff --git a/quantum/process_keycode/process_unicode.h b/quantum/process_keycode/process_unicode.h
index a6c7e4584..065eeb5f6 100644
--- a/quantum/process_keycode/process_unicode.h
+++ b/quantum/process_keycode/process_unicode.h
@@ -3,10 +3,11 @@
3 3
4#include "quantum.h" 4#include "quantum.h"
5 5
6#define UC_OSX 0 6#define UC_OSX 0 // Mac OS X
7#define UC_LNX 1 7#define UC_LNX 1 // Linux
8#define UC_WIN 2 8#define UC_WIN 2 // Windows 'HexNumpad'
9#define UC_BSD 3 9#define UC_BSD 3 // BSD (not implemented)
10#define UC_WINC 4 // WinCompose https://github.com/samhocevar/wincompose
10 11
11#ifndef UNICODE_TYPE_DELAY 12#ifndef UNICODE_TYPE_DELAY
12#define UNICODE_TYPE_DELAY 10 13#define UNICODE_TYPE_DELAY 10
diff --git a/readme.md b/readme.md
index 62d479ff1..60a94d7d6 100644
--- a/readme.md
+++ b/readme.md
@@ -326,8 +326,14 @@ This allows you to send unicode symbols via `UC(<unicode>)` in your keymap. Only
326`UNICODEMAP_ENABLE` 326`UNICODEMAP_ENABLE`
327 327
328This allows sending unicode symbols using `X(<unicode>)` in your keymap. Codes 328This allows sending unicode symbols using `X(<unicode>)` in your keymap. Codes
329up to 0xFFFFF are supported, including emojis. But you need to maintain a 329up to 0xFFFFFFFF are supported, including emojis. You will need to maintain
330separate mapping table in your keymap file. 330a separate mapping table in your keymap file.
331
332Known limitations:
333- Under Mac OS, only codes up to 0xFFFF are supported.
334- Under Linux ibus, only codes up to 0xFFFFF are supported (but anything important is still under this limit for now).
335
336Characters out of range supported by the OS will be ignored.
331 337
332`BLUETOOTH_ENABLE` 338`BLUETOOTH_ENABLE`
333 339
@@ -900,7 +906,7 @@ In `quantum/keymap_extras/`, you'll see various language files - these work the
900 906
901## Unicode support 907## Unicode support
902 908
903You 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. 909You 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.
904 910
905## Backlight Breathing 911## Backlight Breathing
906 912