aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIBNobody <protospherex@gmail.com>2016-10-28 09:28:47 -0500
committerIBNobody <protospherex@gmail.com>2016-10-28 09:28:47 -0500
commita0fdb6b81aa33c493bc4fccab178fcbe02231578 (patch)
treeae2eb2212acb86966efefb98fb7f04686c94b7da
parentef8f6180272c3e112f97a6beb9dd90bece3c2131 (diff)
parentf44ead146214381aa78344f1d4fe3e1b24010c95 (diff)
downloadqmk_firmware-a0fdb6b81aa33c493bc4fccab178fcbe02231578.tar.gz
qmk_firmware-a0fdb6b81aa33c493bc4fccab178fcbe02231578.zip
Merge remote-tracking branch 'refs/remotes/jackhumbert/master'
-rw-r--r--Dockerfile3
-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/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.md10
18 files changed, 613 insertions, 51 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/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/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 c460933a7..417484778 100644
--- a/readme.md
+++ b/readme.md
@@ -327,8 +327,14 @@ This allows you to send unicode symbols via `UC(<unicode>)` in your keymap. Only
327`UNICODEMAP_ENABLE` 327`UNICODEMAP_ENABLE`
328 328
329This allows sending unicode symbols using `X(<unicode>)` in your keymap. Codes 329This allows sending unicode symbols using `X(<unicode>)` in your keymap. Codes
330up to 0xFFFFF are supported, including emojis. But you need to maintain a 330up to 0xFFFFFFFF are supported, including emojis. You will need to maintain
331separate mapping table in your keymap file. 331a separate mapping table in your keymap file.
332
333Known limitations:
334- Under Mac OS, only codes up to 0xFFFF are supported.
335- Under Linux ibus, only codes up to 0xFFFFF are supported (but anything important is still under this limit for now).
336
337Characters out of range supported by the OS will be ignored.
332 338
333`BLUETOOTH_ENABLE` 339`BLUETOOTH_ENABLE`
334 340