diff options
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 | |||
| 21 | RUN rm -rf /var/lib/apt/lists/* | 21 | RUN rm -rf /var/lib/apt/lists/* |
| 22 | 22 | ||
| 23 | ENV keyboard=ergodox | 23 | ENV keyboard=ergodox |
| 24 | ENV subproject=ez | ||
| 24 | ENV keymap=default | 25 | ENV keymap=default |
| 25 | 26 | ||
| 26 | VOLUME /qmk | 27 | VOLUME /qmk |
| 27 | WORKDIR /qmk | 28 | WORKDIR /qmk |
| 28 | CMD make clean ; make keyboard=${keyboard} keymap=${keymap} \ No newline at end of file | 29 | CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap} |
| @@ -32,7 +32,9 @@ ABS_ROOT_MAKEFILE := $(abspath $(ROOT_MAKEFILE)) | |||
| 32 | ABS_STARTING_DIR := $(dir $(ABS_STARTING_MAKEFILE)) | 32 | ABS_STARTING_DIR := $(dir $(ABS_STARTING_MAKEFILE)) |
| 33 | ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE)) | 33 | ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE)) |
| 34 | STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR)) | 34 | STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR)) |
| 35 | TEST_DIR := $(ROOT_DIR)/.build/test | 35 | BUILD_DIR := $(ROOT_DIR)/.build |
| 36 | TEST_DIR := $(BUILD_DIR)/test | ||
| 37 | ERROR_FILE := $(BUILD_DIR)/error_occured | ||
| 36 | 38 | ||
| 37 | MAKEFILE_INCLUDED=yes | 39 | MAKEFILE_INCLUDED=yes |
| 38 | 40 | ||
| @@ -460,8 +462,21 @@ endef | |||
| 460 | 462 | ||
| 461 | include $(ROOT_DIR)/message.mk | 463 | include $(ROOT_DIR)/message.mk |
| 462 | 464 | ||
| 463 | RUN_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 |
| 467 | define RUN_COMMAND | ||
| 468 | +error_occured=0;\ | ||
| 469 | $(COMMAND_$(SILENT_MODE)_$(COMMAND))\ | ||
| 470 | if [ $$error_occured -gt 0 ]; then echo $$error_occured > $(ERROR_FILE); fi; | ||
| 471 | |||
| 472 | |||
| 473 | endef | ||
| 474 | define RUN_TEST | ||
| 475 | +error_occured=0;\ | ||
| 476 | $($(TEST)_COMMAND))\ | ||
| 477 | if [ $$error_occured -gt 0 ]; then echo $$error_occured > $(ERROR_FILE); fi; | ||
| 478 | |||
| 479 | endef | ||
| 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 |
| 467 | SUBPROJECTS := $(notdir $(patsubst %/Makefile,%,$(wildcard ./*/Makefile))) | 482 | SUBPROJECTS := $(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 | /* | ||
| 2 | Copyright 2012 Jun Wako <wakojun@gmail.com> | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along 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 | |||
| 7 | enum macro_id { | ||
| 8 | TEENSY, | ||
| 9 | }; | ||
| 10 | |||
| 11 | const 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 | |||
| 35 | const uint16_t PROGMEM fn_actions[] = { | ||
| 36 | |||
| 37 | }; | ||
| 38 | |||
| 39 | const 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 @@ | |||
| 1 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | ||
| 2 | MOUSEKEY_ENABLE = no # Mouse keys(+4700) | ||
| 3 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
| 4 | CONSOLE_ENABLE = no # Console for debug(+400) | ||
| 5 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 6 | NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ # nkro-doesnt-work | ||
| 7 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 8 | MIDI_ENABLE = no # MIDI controls | ||
| 9 | AUDIO_ENABLE = no # Audio output on port C6 | ||
| 10 | UNICODE_ENABLE = no # Unicode | ||
| 11 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 12 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. | ||
| 13 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 14 | |||
| 15 | ifndef QUANTUM_DIR | ||
| 16 | include ../../../../Makefile | ||
| 17 | endif | ||
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 | |||
| 9 | enum macro_id { | ||
| 10 | TEENSY, | ||
| 11 | }; | ||
| 12 | |||
| 13 | const 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 | |||
| 76 | const uint16_t PROGMEM fn_actions[] = { | ||
| 77 | }; | ||
| 78 | |||
| 79 | const 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 | |||
| 87 | void matrix_init_user(void) { | ||
| 88 | }; | ||
| 89 | |||
| 90 | void 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. | ||
| 19 | const uint16_t PROGMEM fn_actions[] = { | ||
| 20 | [0] = ACTION_BACKLIGHT_TOGGLE(), | ||
| 21 | [1] = ACTION_BACKLIGHT_INCREASE(), | ||
| 22 | [2] = ACTION_BACKLIGHT_DECREASE() | ||
| 23 | }; | ||
| 24 | |||
| 25 | const 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 | |||
| 69 | const 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 | |||
| 3 | Like the HHKB but with a KC60 PCB :D. | ||
| 4 | |||
| 5 | # Programming Instructions: | ||
| 6 | Enter 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 | |||
| 100 | right half is connected. | 100 | right half is connected. |
| 101 | 101 | ||
| 102 | 102 | ||
| 103 | Notes on Using Pro Micro 3.3V | ||
| 104 | ----------------------------- | ||
| 105 | |||
| 106 | Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects | ||
| 107 | the frequency on the 3.3V board. | ||
| 108 | |||
| 109 | Also, if the slave board is producing weird characters in certain columns, | ||
| 110 | update 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 | ||
| 12 | extern keymap_config_t keymap_config; | 14 | extern keymap_config_t keymap_config; |
| 13 | 15 | ||
| 14 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | 16 | enum 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 | ||
| 27 | enum planck_keycodes { | 27 | enum 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 | |||
| 50 | enum unicode_name { | 53 | enum 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 | ||
| 152 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 167 | const 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); | |||
| 304 | float tone_colemak[][2] = SONG(COLEMAK_SOUND); | 318 | float tone_colemak[][2] = SONG(COLEMAK_SOUND); |
| 305 | float tone_workman[][2] = SONG(DVORAK_SOUND); | 319 | float tone_workman[][2] = SONG(DVORAK_SOUND); |
| 306 | float tone_goodbye[][2] = SONG(GOODBYE_SOUND); | 320 | float tone_goodbye[][2] = SONG(GOODBYE_SOUND); |
| 321 | float tone_linux[][2] = SONG(CAPS_LOCK_ON_SOUND); | ||
| 322 | float tone_windows[][2] = SONG(SCROLL_LOCK_ON_SOUND); | ||
| 323 | float tone_osx[][2] = SONG(NUM_LOCK_ON_SOUND); | ||
| 324 | float tone_click[][2] = SONG(MUSICAL_NOTE(_F3, 2)); | ||
| 307 | #endif | 325 | #endif |
| 308 | 326 | ||
| 309 | void persistant_default_layer_set(uint16_t default_layer) { | 327 | void 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 | ||
| 314 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 332 | bool 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 | |||
| 3 | Features: | ||
| 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 | ||
| 18 | enum preonic_keycodes { | 21 | enum 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 |
| 119 | float tone_startup[][2] = { | 187 | float 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 | ||
| 126 | float tone_qwerty[][2] = SONG(QWERTY_SOUND); | ||
| 127 | |||
| 128 | float tone_goodbye[][2] = SONG(GOODBYE_SOUND); | 194 | float tone_goodbye[][2] = SONG(GOODBYE_SOUND); |
| 129 | 195 | ||
| 130 | float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); | 196 | float 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 | ||
| 3 | Designed for use with a swedish language. | 3 | Designed for use with a swedish language. |
| 4 | |||
| 5 | Version 1.1: | ||
| 6 | |||
| 7 | Added PgUp and PgDn keys. | ||
| 8 | |||
| 9 | Also added "Mac mode". Unsure if it even works. Might however be able to test soon. | ||
| 10 | |||
| 11 | Version 1.2: | ||
| 12 | |||
| 13 | Changed around alt and super keys. | ||
| 14 | |||
| 15 | Made "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)) | |||
| 83 | const uint32_t PROGMEM unicode_map[] = { | 88 | const uint32_t PROGMEM unicode_map[] = { |
| 84 | }; | 89 | }; |
| 85 | 90 | ||
| 86 | // 5 digit max because of linux limitation | ||
| 87 | void register_hex32(uint32_t hex) { | 91 | void 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)) | ||
| 112 | void unicode_map_input_error() {} | ||
| 113 | |||
| 95 | bool process_unicode_map(uint16_t keycode, keyrecord_t *record) { | 114 | bool 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 |
| @@ -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 | ||
| 328 | This allows sending unicode symbols using `X(<unicode>)` in your keymap. Codes | 328 | This allows sending unicode symbols using `X(<unicode>)` in your keymap. Codes |
| 329 | up to 0xFFFFF are supported, including emojis. But you need to maintain a | 329 | up to 0xFFFFFFFF are supported, including emojis. You will need to maintain |
| 330 | separate mapping table in your keymap file. | 330 | a separate mapping table in your keymap file. |
| 331 | |||
| 332 | Known 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 | |||
| 336 | Characters 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 | ||
| 903 | You 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. | 909 | You 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 | ||
