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/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
21 files changed, 735 insertions, 118 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/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